Keep Theia config out of home dotfolder
This commit is contained in:
@@ -3,12 +3,14 @@ import { CommonMenus } from '@theia/core/lib/browser/common-menus.js';
|
||||
import { CommandContribution, CommandRegistry } from '@theia/core/lib/common/command.js';
|
||||
import { MenuContribution, MenuModelRegistry } from '@theia/core/lib/common/menu/menu-model-registry.js';
|
||||
import { MessageService } from '@theia/core/lib/common/message-service.js';
|
||||
import { PreferenceConfigurations } from '@theia/core/lib/common/preferences/preference-configurations.js';
|
||||
import { ContainerModule, inject, injectable } from '@theia/core/shared/inversify/index.js';
|
||||
import {
|
||||
GitZoneRemoteServer,
|
||||
gitZoneRemotePath,
|
||||
type IGitZoneRemoteServer,
|
||||
} from '../common/gitzone-remote-protocol.js';
|
||||
import { GitZonePreferenceConfigurations } from '../common/gitzone-preference-configurations.js';
|
||||
|
||||
export const GitZoneRemoteEnvironmentCommand = {
|
||||
id: 'gitzone.remote.environment',
|
||||
@@ -40,7 +42,9 @@ export class GitZoneRemoteContribution implements CommandContribution, MenuContr
|
||||
}
|
||||
}
|
||||
|
||||
export default new ContainerModule((bind) => {
|
||||
export default new ContainerModule((bind, _unbind, isBound, rebind) => {
|
||||
const preferenceBinding = isBound(PreferenceConfigurations) ? rebind(PreferenceConfigurations) : bind(PreferenceConfigurations);
|
||||
preferenceBinding.to(GitZonePreferenceConfigurations).inSingletonScope();
|
||||
bind(GitZoneRemoteServer)
|
||||
.toDynamicValue((context) =>
|
||||
context.container
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
import { PreferenceConfigurations } from '@theia/core/lib/common/preferences/preference-configurations.js';
|
||||
import { injectable } from '@theia/core/shared/inversify/index.js';
|
||||
|
||||
export const gitZoneWorkspacePreferenceFolder = '.git.zone/ide/workspace';
|
||||
|
||||
@injectable()
|
||||
export class GitZonePreferenceConfigurations extends PreferenceConfigurations {
|
||||
getPaths(): string[] {
|
||||
return [gitZoneWorkspacePreferenceFolder, '.vscode'];
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,8 @@
|
||||
import { ConnectionHandler } from '@theia/core/lib/common/messaging/handler.js';
|
||||
import { RpcConnectionHandler } from '@theia/core/lib/common/messaging/proxy-factory.js';
|
||||
import { PreferenceConfigurations } from '@theia/core/lib/common/preferences/preference-configurations.js';
|
||||
import { ContainerModule } from '@theia/core/shared/inversify/index.js';
|
||||
import { GitZonePreferenceConfigurations } from '../common/gitzone-preference-configurations.js';
|
||||
import {
|
||||
GitZoneRemoteServer,
|
||||
gitZoneRemotePath,
|
||||
@@ -8,7 +10,9 @@ import {
|
||||
} from '../common/gitzone-remote-protocol.js';
|
||||
import { GitZoneRemoteNodeService } from './gitzone-remote-node-service.js';
|
||||
|
||||
export default new ContainerModule((bind) => {
|
||||
export default new ContainerModule((bind, _unbind, isBound, rebind) => {
|
||||
const preferenceBinding = isBound(PreferenceConfigurations) ? rebind(PreferenceConfigurations) : bind(PreferenceConfigurations);
|
||||
preferenceBinding.to(GitZonePreferenceConfigurations).inSingletonScope();
|
||||
bind(GitZoneRemoteNodeService).toSelf().inSingletonScope();
|
||||
bind(GitZoneRemoteServer).toService(GitZoneRemoteNodeService);
|
||||
bind(ConnectionHandler)
|
||||
|
||||
Reference in New Issue
Block a user