Skip to content
This repository has been archived by the owner on Dec 13, 2018. It is now read-only.

Commit

Permalink
Add logger to project manager
Browse files Browse the repository at this point in the history
Summary: I have noticed some strange behavior regarding diagnostics with cquery and multiple different but related projects open. I have the impression different cquery processes could be sending diagnostics on files they do not directly compile. I think adding some logging will help me debug the issue.

Reviewed By: a20012251

Differential Revision: D6451984

fbshipit-source-id: ec1a8088e96870059f608de20d56be6979475cd7
  • Loading branch information
pelmers authored and facebook-github-bot committed Dec 1, 2017
1 parent cab0618 commit f8c05db
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 2 deletions.
3 changes: 2 additions & 1 deletion pkg/nuclide-cquery-lsp-rpc/lib/CqueryLanguageServer.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ export default class CqueryLanguageServer extends MultiProjectLanguageService<
CqueryLanguageClient,
> implements CqueryLanguageService {
// Maps clang settings => settings metadata with same key as _processes field.
_projectManager: CqueryProjectManager = new CqueryProjectManager();
_projectManager: CqueryProjectManager;
_fileCache: FileCache;
_command: string;
_host: HostServices;
Expand All @@ -53,6 +53,7 @@ export default class CqueryLanguageServer extends MultiProjectLanguageService<
this._host = host;
this._languageId = languageId;
this._logger = logger;
this._projectManager = new CqueryProjectManager(logger);

this._processes = new Cache(
(projectKey: CqueryProjectKey) =>
Expand Down
6 changes: 6 additions & 0 deletions pkg/nuclide-cquery-lsp-rpc/lib/CqueryProjectManager.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,11 @@ import fsPromise from 'nuclide-commons/fsPromise';
export class CqueryProjectManager {
_keyToProject: Map<CqueryProjectKey, CqueryProject> = new Map();
_fileToProjectKey: Map<string, CqueryProjectKey> = new Map();
_logger: log4js$Logger;

constructor(logger: log4js$Logger) {
this._logger = logger;
}

getProjectKey(project: CqueryProject): CqueryProjectKey {
return JSON.stringify(project);
Expand All @@ -35,6 +40,7 @@ export class CqueryProjectManager {

async getProjectForFile(file: string): Promise<?CqueryProject> {
const key = this._fileToProjectKey.get(await fsPromise.realpath(file));
this._logger.debug('key for', file, ':', key);
return key == null ? null : this._keyToProject.get(key);
}

Expand Down
2 changes: 1 addition & 1 deletion pkg/nuclide-cquery-lsp-rpc/lib/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -200,7 +200,7 @@ export async function createCqueryService(params: {|
invariant(fileCache instanceof FileCache);

return new CqueryLanguageServer(
'cquery', // id
languageId, // id
command, // command
logger,
fileCache,
Expand Down

0 comments on commit f8c05db

Please sign in to comment.