diff options
| author | Orkun Tokdemir <orkun.tokdemir@qt.io> | 2024-11-29 15:53:54 +0100 |
|---|---|---|
| committer | Orkun Tokdemir <orkun.tokdemir@qt.io> | 2024-12-02 09:50:17 +0000 |
| commit | aa67881c5a8878e5621526e9eda1797368468105 (patch) | |
| tree | ce439a568f849528ca9d43acaf511b7e8db53b14 | |
| parent | 28c9812401c972aa806103b9b538b68e7f81fcd4 (diff) | |
qt-core: Set config values for other extensions when a project is added
In the current implementation, when multi-root workspaces are used,
the config values for other extensions are not set when a project is
added. This causes not to generate cmake kits and set wrong qmlls
parameters.
Change-Id: I669406cf304f21e21fce9a6e459285021e467d2f
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
| -rw-r--r-- | qt-core/src/extension.ts | 15 | ||||
| -rw-r--r-- | qt-core/src/project.ts | 20 |
2 files changed, 21 insertions, 14 deletions
diff --git a/qt-core/src/extension.ts b/qt-core/src/extension.ts index 5384c3e..ba151e3 100644 --- a/qt-core/src/extension.ts +++ b/qt-core/src/extension.ts @@ -43,7 +43,7 @@ export async function activate(context: vscode.ExtensionContext) { if (vscode.workspace.workspaceFolders !== undefined) { for (const folder of vscode.workspace.workspaceFolders) { const project = await createCoreProject(folder, context); - projectManager.addProject(project); + projectManager.addProject(project, true); } } context.subscriptions.push(...registerDocumentationCommands()); @@ -90,17 +90,6 @@ export function initCoreValues() { coreAPI?.update(globalUpdateMessage); for (const project of projectManager.getProjects()) { - const folder = project.folder; - const message = new QtWorkspaceConfigMessage(folder); - message.config.set( - QtInsRootConfigName, - CoreProjectManager.getWorkspaceFolderQtInsRoot(folder) - ); - message.config.set( - AdditionalQtPathsName, - CoreProjectManager.getWorkspaceFolderAdditionalQtPaths(folder) - ); - logger.info('Updating coreAPI with message:', message as unknown as string); - coreAPI?.update(message); + project.initConfigValues(); } } diff --git a/qt-core/src/project.ts b/qt-core/src/project.ts index 0a354ca..45f97f5 100644 --- a/qt-core/src/project.ts +++ b/qt-core/src/project.ts @@ -11,7 +11,8 @@ import { GlobalWorkspace, QtInsRootConfigName, QtAdditionalPath, - compareQtAdditionalPath + compareQtAdditionalPath, + QtWorkspaceConfigMessage } from 'qt-lib'; import { Project, ProjectManager } from 'qt-lib'; import { convertAdditionalQtPaths, getConfiguration } from '@/util'; @@ -22,6 +23,7 @@ import { onQtInsRootUpdated, onAdditionalQtPathsUpdated } from '@/installation-root'; +import { coreAPI } from '@/extension'; const logger = createLogger('project'); @@ -92,6 +94,21 @@ export class CoreProject implements Project { this._disposables.push(eventHandler); } + public initConfigValues() { + const folder = this.folder; + const message = new QtWorkspaceConfigMessage(folder); + message.config.set( + QtInsRootConfigName, + CoreProjectManager.getWorkspaceFolderQtInsRoot(folder) + ); + message.config.set( + AdditionalQtPathsName, + CoreProjectManager.getWorkspaceFolderAdditionalQtPaths(folder) + ); + logger.info('Updating coreAPI with message:', message as unknown as string); + coreAPI?.update(message); + } + dispose() { logger.info('Disposing project:', this._folder.uri.fsPath); for (const d of this._disposables) { @@ -110,6 +127,7 @@ export class CoreProjectManager extends ProjectManager<CoreProject> { this.onProjectAdded((project: CoreProject) => { logger.info('Adding project:', project.folder.uri.fsPath); + project.initConfigValues(); }); } private watchGlobalConfig() { |
