Skip to content

Commit 7fae9ee

Browse files
committed
Explicitly use the workspace-configured locale
When the `env.language` value is not passed as the locale, OS-default locale is used. This change ensures that we use the workspace locale where we want and explicitly calls out where we should continue to use the OS-default.
1 parent 058c891 commit 7fae9ee

File tree

6 files changed

+15
-10
lines changed

6 files changed

+15
-10
lines changed

extensions/ql-vscode/src/databases-ui.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import * as path from 'path';
22
import { DisposableObject } from '@github/codeql-vscode-utils';
33
import { commands, Event, EventEmitter, ExtensionContext, ProviderResult, TreeDataProvider, TreeItem, Uri, window, env } from 'vscode';
4+
import * as fs from 'fs-extra';
5+
46
import * as cli from './cli';
57
import { DatabaseItem, DatabaseManager, getUpgradesDirectories } from './databases';
68
import { getOnDiskWorkspaceFolders, showAndLogErrorMessage } from './helpers';
@@ -9,7 +11,6 @@ import { clearCacheInDatabase, UserCancellationException } from './run-queries';
911
import * as qsClient from './queryserver-client';
1012
import { upgradeDatabase } from './upgrades';
1113
import { importArchiveDatabase, promptImportInternetDatabase, promptImportLgtmDatabase } from './databaseFetcher';
12-
import * as fs from 'fs-extra';
1314

1415
type ThemableIconPath = { light: string; dark: string } | string;
1516

@@ -98,9 +99,9 @@ class DatabaseTreeDataProvider extends DisposableObject
9899
return this.databaseManager.databaseItems.slice(0).sort((db1, db2) => {
99100
switch (this.sortOrder) {
100101
case SortOrder.NameAsc:
101-
return db1.name.localeCompare(db2.name);
102+
return db1.name.localeCompare(db2.name, env.language);
102103
case SortOrder.NameDesc:
103-
return db2.name.localeCompare(db1.name);
104+
return db2.name.localeCompare(db1.name, env.language);
104105
case SortOrder.DateAddedAsc:
105106
return (db1.dateAdded || 0) - (db2.dateAdded || 0);
106107
case SortOrder.DateAddedDesc:

extensions/ql-vscode/src/extension.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { commands, Disposable, ExtensionContext, extensions, languages, ProgressLocation, ProgressOptions, Uri, window as Window } from 'vscode';
1+
import { commands, Disposable, ExtensionContext, extensions, languages, ProgressLocation, ProgressOptions, Uri, window as Window, env } from 'vscode';
22
import { LanguageClient } from 'vscode-languageclient';
33
import { testExplorerExtensionId, TestHub } from 'vscode-test-adapter-api';
44
import * as archiveFilesystemProvider from './archive-filesystem-provider';
@@ -178,7 +178,7 @@ export async function activate(ctx: ExtensionContext): Promise<void> {
178178

179179
if (e instanceof GithubRateLimitedError) {
180180
alertFunction(`Rate limited while trying to ${taskDescription}. Please try again after ` +
181-
`your rate limit window resets at ${e.rateLimitResetDate.toLocaleString()}.`);
181+
`your rate limit window resets at ${e.rateLimitResetDate.toLocaleString(env.language)}.`);
182182
} else if (e instanceof GithubApiError) {
183183
alertFunction(`Encountered GitHub API error while trying to ${taskDescription}. ` + e);
184184
}

extensions/ql-vscode/src/interface.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@ import * as Sarif from 'sarif';
44
import { FivePartLocation, LocationStyle, LocationValue, ResolvableLocationValue, tryGetResolvableLocation, WholeFileLocation } from 'semmle-bqrs';
55
import { DisposableObject } from '@github/codeql-vscode-utils';
66
import * as vscode from 'vscode';
7-
import { Diagnostic, DiagnosticRelatedInformation, DiagnosticSeverity, languages, Location, Range, Uri, window as Window, workspace } from 'vscode';
7+
import { Diagnostic, DiagnosticRelatedInformation, DiagnosticSeverity, languages, Location, Range, Uri, window as Window, workspace, env } from 'vscode';
88
import * as cli from './cli';
9+
910
import { CodeQLCliServer } from './cli';
1011
import { DatabaseItem, DatabaseManager } from './databases';
1112
import { showAndLogErrorMessage } from './helpers';
@@ -108,7 +109,7 @@ function sortInterpretedResults(results: Sarif.Result[], sortState: InterpretedR
108109
results.sort((a, b) =>
109110
a.message.text === undefined ? 0 :
110111
b.message.text === undefined ? 0 :
111-
multiplier * (a.message.text?.localeCompare(b.message.text)));
112+
multiplier * (a.message.text?.localeCompare(b.message.text, env.language)));
112113
break;
113114
default:
114115
assertNever(sortState.sortBy);

extensions/ql-vscode/src/qltest-discovery.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import * as path from 'path';
22
import { QLPackDiscovery } from './qlpack-discovery';
33
import { Discovery } from './discovery';
4-
import { EventEmitter, Event, Uri, RelativePattern } from 'vscode';
4+
import { EventEmitter, Event, Uri, RelativePattern, env } from 'vscode';
55
import { MultiFileSystemWatcher } from '@github/codeql-vscode-utils';
66
import { CodeQLCliServer } from './cli';
77

@@ -55,7 +55,7 @@ export class QLTestDirectory extends QLTestNode {
5555
}
5656

5757
public finish(): void {
58-
this._children.sort((a, b) => a.name.localeCompare(b.name));
58+
this._children.sort((a, b) => a.name.localeCompare(b.name, env.language));
5959
for (const child of this._children) {
6060
child.finish();
6161
}

extensions/ql-vscode/src/query-results.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import { env } from 'vscode';
2+
13
import { QueryWithResults, tmpDir, QueryInfo } from "./run-queries";
24
import * as messages from './messages';
35
import * as helpers from './helpers';
@@ -43,7 +45,7 @@ export class CompletedQuery implements QueryWithResults {
4345
this.options = evaluation.options;
4446
this.dispose = evaluation.dispose;
4547

46-
this.time = new Date().toLocaleString();
48+
this.time = new Date().toLocaleString(env.language);
4749
this.sortedResultsInfo = new Map();
4850
}
4951

extensions/ql-vscode/src/run-queries.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,7 @@ async function convertToQlPath(filePath: string): Promise<string> {
226226
const fileName = path.basename(filePath);
227227
const fileNames = await promisify<string, string[]>(fs.readdir)(dir);
228228
for (const name of fileNames) {
229+
// leave the locale argument empty so that the default OS locale is used.
229230
if (fileName.localeCompare(name, undefined, { sensitivity: 'accent' }) === 0) {
230231
return path.join(dir, name);
231232
}

0 commit comments

Comments
 (0)