3.4.5 • Published 8 months ago

@opensumi/ide-preferences v3.4.5

Weekly downloads
-
License
MIT
Repository
github
Last release
8 months ago

id: main-layout

title: 配置模块

Preferences 模块主要用于管理整个 IDE 配置的读取逻辑,

配置文件的目录位置可通过配置 AppConfig 中的 userPreferenceDirNameworkspacePreferenceDirName 分别配置 全局配置 和 工作区配置的 settings.json 读取路径。

下面我们统一将 .sumi 作为我们默认的配置文件读取路径

对于全局配置,我们一般是从 ~/.sumi/settings.json 文件中读取;

针对工作区的配置文件,我们一般是从 ${workspace_path}/.sumi/settings.json 文件中读取,但在存在多个工作区存在的多工作区 项目,我们则是从 ${workspace_name}.sumi-workspace 文件中读取;

你可以简单的通过如下方式来进行配置文件的修改,同时监听其变化:

@Injectable()
export class Demo {

  @Autowired(PreferenceService)
  preferenceService: PreferenceService;
  ...

  // 监听配置变化事件
  this.preferenceService.onPreferencesChanged((changes) => {
    console.log('Preferences Changes: ', changes);
  });

  // 设置全局配置
  this.preferenceService.set('config.id', true, PreferenceScope.User);
  // 设置工作区配置
  this.preferenceService.set('config.id', true, PreferenceScope.Workspace);

  ...
}

贡献点

Contribution Providers

模块定义的用于其他模块贡献的贡献点。

PreferenceContribution

用于在框架中注册配置定义,你可以创建一个贡献点模块,在应用启动时引入该贡献点模块,来实现自定义的配置定义。

Example
// 定义一个 `general.language` 配置项
const preferencesSchema: PreferenceSchema = {
  type: 'object',
  properties: {
    'general.demo': {
      type: 'string',
      default: 'zh-CN',
      description: 'Demo preference%',
    },
  },
};

@Domain(PreferenceContribution)
export class DemoPreferenceContribution implements PreferenceContribution {
  schema: PreferenceSchema = preferencesSchema;
}

SettingContribution

如果你需要让你定义的配置出现在设置面板中,你还可以通过 SettingContribution 贡献点来定义。

Example
// 在 `general`  面板追加一个 `general.demo` 配置项的展示
@Domain(SettingContribution)
export class DemoSettingContribution implements SettingContribution {
  handleSettingSections(settingSections: { [key: string]: ISettingSection[] }) {
    return {
      ...settingSections,
      general: [
        {
          preferences: [
            // 原有配置项
            { id: 'general.theme', localized: 'preference.general.theme' },
            { id: 'general.icon', localized: 'preference.general.icon' },
            { id: 'general.language', localized: 'preference.general.language' },
            // 追加配置项
            { id: 'general.demo', localized: 'preference.demo' },
          ],
        },
      ],
    };
  }
}

模块注册的贡献点。

Command

  • preference.open.user: 打开用户配置文件
  • preference.open.workspace: 打开工作区配置文件
  • core.openpreference: 打开设置面板

KeyBinding

  • ctrlcmd+,: 打开设置面板

PreferenceService

DI token: PreferenceService

一个简易的配置获取服务,能通过该符合获取到某个配置当前的值。

Property

ready

ready: Promise<void>;

通过在模块中 await this.preferenceService.ready 能保障配置模块在被使用时已初始化完毕。

Methods

set()

  /**
   * 设置一个偏好值
   * @param preferenceName 偏好名称
   * @param value 设置值
   * @param scope 目标scope级别 如 User, Workspace
   * @param resourceUri 资源路径
   * @param overrideIdentifier 一般指语言偏好设置
   */
  set(preferenceName: string, value: any, scope?: PreferenceScope, resourceUri?: string, overrideIdentifier?: string): Promise<void>;

用于设置某个配置在不同作用域,不同资源路径下的值

get()

  /**
   *
   * @param preferenceName  配置名称
   * @param defaultValue 默认值
   * @param resourceUri 资源路径
   * @param overrideIdentifier 一般指语言偏好设置
   */
  get<T>(preferenceName: string, defaultValue?: T, resourceUri?: string, overrideIdentifier?: string): T | undefined;

支持获取某个配置在不同作用域,不同资源路径下的值

onPreferencesChanged

  onPreferencesChanged: Event<PreferenceChanges>;

配置变更事件,这里会获取到一个配置变更的集合。

onPreferenceChanged()

  onPreferenceChanged: Event<PreferenceChange>;

配置变更事件,这里会获取到一个配置的变更事件。

onLanguagePreferencesChanged

  onLanguagePreferencesChanged: Event<{overrideIdentifier: string, changes: PreferenceChanges}>;

语言偏好设置的变更事件。

3.4.5

8 months ago

3.4.4

8 months ago

3.4.0

9 months ago

3.4.3

9 months ago

3.4.1

9 months ago

3.3.3

10 months ago

3.3.2

10 months ago

3.3.1

10 months ago

3.3.0

10 months ago

3.2.5

10 months ago

3.1.3

1 year ago

3.1.2

1 year ago

3.1.1

1 year ago

3.1.0

1 year ago

3.1.4

12 months ago

3.2.2

11 months ago

3.2.1

11 months ago

3.2.0

11 months ago

3.2.4

10 months ago

3.2.3

11 months ago

3.0.4

1 year ago

3.0.3

1 year ago

3.0.2

1 year ago

3.0.1

1 year ago

3.0.0

1 year ago

3.0.0-alpha.0

1 year ago

2.27.2

1 year ago

2.26.7

2 years ago

2.26.6

2 years ago

2.26.8

2 years ago

2.26.3

2 years ago

2.26.2

2 years ago

2.26.5

2 years ago

2.26.4

2 years ago

2.26.1

2 years ago

2.26.0

2 years ago

2.27.1

2 years ago

2.27.0

2 years ago

2.25.4

2 years ago

2.25.3

2 years ago

2.25.2

2 years ago

2.25.0

2 years ago

2.25.1

2 years ago

2.24.5

2 years ago

2.24.4

2 years ago

2.24.6

2 years ago

2.24.3

2 years ago

2.24.2

2 years ago

2.23.6

2 years ago

2.23.5

2 years ago

2.23.2

2 years ago

2.23.1

2 years ago

2.23.4

2 years ago

2.23.3

2 years ago

2.22.7

2 years ago

2.22.6

2 years ago

2.22.9

2 years ago

2.22.8

2 years ago

2.22.5

2 years ago

2.22.10

2 years ago

2.22.11

2 years ago

2.24.1

2 years ago

2.24.0

2 years ago

2.23.0

2 years ago

2.22.3

2 years ago

2.22.2

2 years ago

2.22.4

2 years ago

2.22.1

2 years ago

2.22.0

2 years ago

2.21.8

3 years ago

2.21.7

3 years ago

2.21.9

3 years ago

2.21.11

2 years ago

2.21.10

3 years ago

2.21.13

2 years ago

2.21.12

2 years ago

2.21.2

3 years ago

2.21.4

3 years ago

2.21.3

3 years ago

2.21.6

3 years ago

2.21.5

3 years ago

2.20.13

3 years ago

2.20.12

3 years ago

2.21.0

3 years ago

2.21.1

3 years ago

2.20.3

3 years ago

2.20.8

3 years ago

2.20.9

3 years ago

2.20.6

3 years ago

2.20.7

3 years ago

2.20.4

3 years ago

2.20.5

3 years ago

2.20.10

3 years ago

2.20.11

3 years ago

2.20.2

3 years ago

2.20.0

3 years ago

2.20.1

3 years ago

2.19.9

3 years ago

2.19.13

3 years ago

2.19.14

3 years ago

2.19.10

3 years ago

2.19.11

3 years ago

2.19.12

3 years ago

2.19.8

3 years ago

2.19.6

3 years ago

2.19.7

3 years ago

2.19.4

3 years ago

2.19.5

3 years ago

2.19.2

3 years ago

2.19.3

3 years ago

2.19.0

3 years ago

2.19.1

3 years ago

2.18.9

3 years ago

2.18.7

3 years ago

2.18.8

3 years ago

2.18.5

3 years ago

2.18.6

3 years ago

2.18.4

3 years ago

2.18.17

3 years ago

2.18.12

3 years ago

2.18.13

3 years ago

2.18.14

3 years ago

2.18.15

3 years ago

2.18.10

3 years ago

2.18.11

3 years ago

2.17.12

3 years ago

2.18.3

3 years ago

2.18.1

3 years ago

2.18.2

3 years ago

2.18.0

3 years ago

2.16.15

3 years ago

2.16.14

3 years ago

2.16.13

3 years ago

2.17.8

3 years ago

2.17.9

3 years ago

2.17.6

3 years ago

2.17.7

3 years ago

2.17.4

3 years ago

2.17.5

3 years ago

2.17.2

3 years ago

2.17.3

3 years ago

2.17.11

3 years ago

2.17.10

3 years ago

2.14.5

3 years ago

2.16.11

3 years ago

2.16.10

3 years ago

2.16.12

3 years ago

2.17.0

3 years ago

2.17.1

3 years ago

2.16.9

3 years ago

2.16.7

3 years ago

2.16.8

3 years ago

2.16.5

3 years ago

2.16.6

3 years ago

2.16.3

3 years ago

2.16.4

3 years ago

2.16.1

3 years ago

2.16.2

3 years ago

2.15.8

3 years ago

2.15.9

3 years ago

2.15.6

3 years ago

2.15.7

3 years ago

2.15.4

3 years ago

2.15.5

3 years ago

2.15.3

3 years ago

2.16.0

3 years ago

2.13.10

3 years ago

2.13.8

3 years ago

2.13.9

3 years ago

2.13.6

3 years ago

2.13.7

3 years ago

2.15.2

3 years ago

2.13.5

3 years ago

2.15.0

3 years ago

2.15.1

3 years ago

2.14.3

3 years ago

2.14.4

3 years ago

2.14.1

3 years ago

2.14.2

3 years ago

2.14.0

3 years ago

2.13.5-next.0

4 years ago

2.12.1-next.166

4 years ago

2.13.4

4 years ago

2.13.3

4 years ago

2.13.2

4 years ago

2.13.1

4 years ago

2.13.0

4 years ago