Skip to content

Commit 1b425fc

Browse files
committed
DRY up labels using the new pluralize method
1 parent 9c598c2 commit 1b425fc

File tree

2 files changed

+21
-11
lines changed

2 files changed

+21
-11
lines changed

extensions/ql-vscode/src/history-item-label-provider.ts

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import * as path from 'path';
33
import { QueryHistoryConfig } from './config';
44
import { LocalQueryInfo, QueryHistoryInfo } from './query-results';
55
import { RemoteQueryHistoryItem } from './remote-queries/remote-query-history-item';
6+
import { pluralize } from './helpers';
67

78
interface InterpolateReplacements {
89
t: string; // Start time
@@ -64,17 +65,23 @@ export class HistoryItemLabelProvider {
6465
};
6566
}
6667

67-
private getRemoteInterpolateReplacements(item: RemoteQueryHistoryItem): InterpolateReplacements {
68+
// Return the number of repositories queried if available. Otherwise, use the controller repository name.
69+
private buildRepoLabel(item: RemoteQueryHistoryItem): string {
6870
const numRepositoriesQueried = item.remoteQuery.numRepositoriesQueried;
69-
const numRepositoriesLabel = `${numRepositoriesQueried} ${numRepositoriesQueried === 1 ? 'repository' : 'repositories'}`;
71+
72+
if (numRepositoriesQueried) {
73+
return pluralize(numRepositoriesQueried, 'repository', 'repositories');
74+
}
75+
76+
return `${item.remoteQuery.controllerRepository.owner}/${item.remoteQuery.controllerRepository.name}`;
77+
}
78+
79+
private getRemoteInterpolateReplacements(item: RemoteQueryHistoryItem): InterpolateReplacements {
7080
return {
7181
t: new Date(item.remoteQuery.executionStartTime).toLocaleString(env.language),
7282
q: `${item.remoteQuery.queryName} (${item.remoteQuery.language})`,
73-
74-
// Return the number of repositories queried if available. Otherwise, use the controller repository name.
75-
d: numRepositoriesQueried ? numRepositoriesLabel : `${item.remoteQuery.controllerRepository.owner}/${item.remoteQuery.controllerRepository.name}`,
76-
77-
r: item.resultCount === undefined ? '' : `(${item.resultCount} results)`,
83+
d: this.buildRepoLabel(item),
84+
r: `(${pluralize(item.resultCount, 'result', 'results')})`,
7885
s: item.status,
7986
f: path.basename(item.remoteQuery.queryFilePath),
8087
'%': '%'

extensions/ql-vscode/src/remote-queries/export-results.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,10 @@ import * as fs from 'fs-extra';
44
import { window, commands, Uri, ExtensionContext, QuickPickItem, workspace, ViewColumn } from 'vscode';
55
import { Credentials } from '../authentication';
66
import { UserCancellationException } from '../commandRunner';
7-
import { showInformationMessageWithAction } from '../helpers';
7+
import {
8+
showInformationMessageWithAction,
9+
pluralize
10+
} from '../helpers';
811
import { logger } from '../logging';
912
import { QueryHistoryManager } from '../query-history';
1013
import { createGist } from './gh-actions-api-client';
@@ -106,9 +109,9 @@ export async function exportResultsToGist(
106109
*/
107110
const buildGistDescription = (query: RemoteQuery, analysesResults: AnalysisResults[]) => {
108111
const resultCount = sumAnalysesResults(analysesResults);
109-
const repositoryLabel = `${query.numRepositoriesQueried} ${query.numRepositoriesQueried === 1 ? 'repository' : 'repositories'}`;
110-
const repositoryCount = query.numRepositoriesQueried ? repositoryLabel : '';
111-
return `${query.queryName} (${query.language}) ${resultCount} results (${repositoryCount})`;
112+
const resultLabel = pluralize(resultCount, 'result', 'results');
113+
const repositoryLabel = pluralize(query.numRepositoriesQueried, 'repository', 'repositories');
114+
return `${query.queryName} (${query.language}) ${resultLabel} (${repositoryLabel})`;
112115
};
113116

114117
/**

0 commit comments

Comments
 (0)