2.27.2 • Published 23 days ago

@opensumi/ide-preferences v2.27.2

Weekly downloads
-
License
MIT
Repository
github
Last release
23 days ago

id: main-layout

title: 配置模块

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

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

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

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

针对工作区的配置文件,我们一般是从 ${worksace_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}>;

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

2.27.2

4 months ago

2.26.7

8 months ago

2.26.6

9 months ago

2.26.8

8 months ago

2.26.3

9 months ago

2.26.2

10 months ago

2.26.5

9 months ago

2.26.4

9 months ago

2.26.1

10 months ago

2.26.0

10 months ago

2.27.1

6 months ago

2.27.0

7 months ago

2.25.4

10 months ago

2.25.3

10 months ago

2.25.2

11 months ago

2.25.0

11 months ago

2.25.1

11 months ago

2.24.5

12 months ago

2.24.4

12 months ago

2.24.6

11 months ago

2.24.3

12 months ago

2.24.2

12 months ago

2.23.6

1 year ago

2.23.5

1 year ago

2.23.2

1 year ago

2.23.1

1 year ago

2.23.4

1 year ago

2.23.3

1 year ago

2.22.7

1 year ago

2.22.6

1 year ago

2.22.9

1 year ago

2.22.8

1 year ago

2.22.5

1 year ago

2.22.10

1 year ago

2.22.11

1 year ago

2.24.1

1 year ago

2.24.0

1 year ago

2.23.0

1 year ago

2.22.3

1 year ago

2.22.2

1 year ago

2.22.4

1 year ago

2.22.1

1 year ago

2.22.0

1 year ago

2.21.8

1 year ago

2.21.7

1 year ago

2.21.9

1 year ago

2.21.11

1 year ago

2.21.10

1 year ago

2.21.13

1 year ago

2.21.12

1 year ago

2.21.2

2 years ago

2.21.4

1 year ago

2.21.3

1 year ago

2.21.6

1 year ago

2.21.5

1 year ago

2.20.13

1 year ago

2.20.12

2 years ago

2.21.0

2 years ago

2.21.1

2 years ago

2.20.3

2 years ago

2.20.8

2 years ago

2.20.9

2 years ago

2.20.6

2 years ago

2.20.7

2 years ago

2.20.4

2 years ago

2.20.5

2 years ago

2.20.10

2 years ago

2.20.11

2 years ago

2.20.2

2 years ago

2.20.0

2 years ago

2.20.1

2 years ago

2.19.9

2 years ago

2.19.13

2 years ago

2.19.14

2 years ago

2.19.10

2 years ago

2.19.11

2 years ago

2.19.12

2 years ago

2.19.8

2 years ago

2.19.6

2 years ago

2.19.7

2 years ago

2.19.4

2 years ago

2.19.5

2 years ago

2.19.2

2 years ago

2.19.3

2 years ago

2.19.0

2 years ago

2.19.1

2 years ago

2.18.9

2 years ago

2.18.7

2 years ago

2.18.8

2 years ago

2.18.5

2 years ago

2.18.6

2 years ago

2.18.4

2 years ago

2.18.17

2 years ago

2.18.12

2 years ago

2.18.13

2 years ago

2.18.14

2 years ago

2.18.15

2 years ago

2.18.10

2 years ago

2.18.11

2 years ago

2.17.12

2 years ago

2.18.3

2 years ago

2.18.1

2 years ago

2.18.2

2 years ago

2.18.0

2 years ago

2.16.15

2 years ago

2.16.14

2 years ago

2.16.13

2 years ago

2.17.8

2 years ago

2.17.9

2 years ago

2.17.6

2 years ago

2.17.7

2 years ago

2.17.4

2 years ago

2.17.5

2 years ago

2.17.2

2 years ago

2.17.3

2 years ago

2.17.11

2 years ago

2.17.10

2 years ago

2.14.5

2 years ago

2.16.11

2 years ago

2.16.10

2 years ago

2.16.12

2 years ago

2.17.0

2 years ago

2.17.1

2 years ago

2.16.9

2 years ago

2.16.7

2 years ago

2.16.8

2 years ago

2.16.5

2 years ago

2.16.6

2 years ago

2.16.3

2 years ago

2.16.4

2 years ago

2.16.1

2 years ago

2.16.2

2 years ago

2.15.8

2 years ago

2.15.9

2 years ago

2.15.6

2 years ago

2.15.7

2 years ago

2.15.4

2 years ago

2.15.5

2 years ago

2.15.3

2 years ago

2.16.0

2 years ago

2.13.10

2 years ago

2.13.8

2 years ago

2.13.9

2 years ago

2.13.6

2 years ago

2.13.7

2 years ago

2.15.2

2 years ago

2.13.5

2 years ago

2.15.0

2 years ago

2.15.1

2 years ago

2.14.3

2 years ago

2.14.4

2 years ago

2.14.1

2 years ago

2.14.2

2 years ago

2.14.0

2 years ago

2.13.5-next.0

2 years ago

2.12.1-next.166

2 years ago

2.13.4

2 years ago

2.13.3

2 years ago

2.13.2

2 years ago

2.13.1

2 years ago

2.13.0

2 years ago