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.
This commit is contained in:
@@ -1,6 +1,8 @@
|
|||||||
import * as path from 'path';
|
import * as path from 'path';
|
||||||
import { DisposableObject } from '@github/codeql-vscode-utils';
|
import { DisposableObject } from '@github/codeql-vscode-utils';
|
||||||
import { commands, Event, EventEmitter, ExtensionContext, ProviderResult, TreeDataProvider, TreeItem, Uri, window, env } from 'vscode';
|
import { commands, Event, EventEmitter, ExtensionContext, ProviderResult, TreeDataProvider, TreeItem, Uri, window, env } from 'vscode';
|
||||||
|
import * as fs from 'fs-extra';
|
||||||
|
|
||||||
import * as cli from './cli';
|
import * as cli from './cli';
|
||||||
import { DatabaseItem, DatabaseManager, getUpgradesDirectories } from './databases';
|
import { DatabaseItem, DatabaseManager, getUpgradesDirectories } from './databases';
|
||||||
import { getOnDiskWorkspaceFolders, showAndLogErrorMessage } from './helpers';
|
import { getOnDiskWorkspaceFolders, showAndLogErrorMessage } from './helpers';
|
||||||
@@ -9,7 +11,6 @@ import { clearCacheInDatabase, UserCancellationException } from './run-queries';
|
|||||||
import * as qsClient from './queryserver-client';
|
import * as qsClient from './queryserver-client';
|
||||||
import { upgradeDatabase } from './upgrades';
|
import { upgradeDatabase } from './upgrades';
|
||||||
import { importArchiveDatabase, promptImportInternetDatabase, promptImportLgtmDatabase } from './databaseFetcher';
|
import { importArchiveDatabase, promptImportInternetDatabase, promptImportLgtmDatabase } from './databaseFetcher';
|
||||||
import * as fs from 'fs-extra';
|
|
||||||
|
|
||||||
type ThemableIconPath = { light: string; dark: string } | string;
|
type ThemableIconPath = { light: string; dark: string } | string;
|
||||||
|
|
||||||
@@ -98,9 +99,9 @@ class DatabaseTreeDataProvider extends DisposableObject
|
|||||||
return this.databaseManager.databaseItems.slice(0).sort((db1, db2) => {
|
return this.databaseManager.databaseItems.slice(0).sort((db1, db2) => {
|
||||||
switch (this.sortOrder) {
|
switch (this.sortOrder) {
|
||||||
case SortOrder.NameAsc:
|
case SortOrder.NameAsc:
|
||||||
return db1.name.localeCompare(db2.name);
|
return db1.name.localeCompare(db2.name, env.language);
|
||||||
case SortOrder.NameDesc:
|
case SortOrder.NameDesc:
|
||||||
return db2.name.localeCompare(db1.name);
|
return db2.name.localeCompare(db1.name, env.language);
|
||||||
case SortOrder.DateAddedAsc:
|
case SortOrder.DateAddedAsc:
|
||||||
return (db1.dateAdded || 0) - (db2.dateAdded || 0);
|
return (db1.dateAdded || 0) - (db2.dateAdded || 0);
|
||||||
case SortOrder.DateAddedDesc:
|
case SortOrder.DateAddedDesc:
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { commands, Disposable, ExtensionContext, extensions, languages, ProgressLocation, ProgressOptions, Uri, window as Window } from 'vscode';
|
import { commands, Disposable, ExtensionContext, extensions, languages, ProgressLocation, ProgressOptions, Uri, window as Window, env } from 'vscode';
|
||||||
import { LanguageClient } from 'vscode-languageclient';
|
import { LanguageClient } from 'vscode-languageclient';
|
||||||
import { testExplorerExtensionId, TestHub } from 'vscode-test-adapter-api';
|
import { testExplorerExtensionId, TestHub } from 'vscode-test-adapter-api';
|
||||||
import * as archiveFilesystemProvider from './archive-filesystem-provider';
|
import * as archiveFilesystemProvider from './archive-filesystem-provider';
|
||||||
@@ -178,7 +178,7 @@ export async function activate(ctx: ExtensionContext): Promise<void> {
|
|||||||
|
|
||||||
if (e instanceof GithubRateLimitedError) {
|
if (e instanceof GithubRateLimitedError) {
|
||||||
alertFunction(`Rate limited while trying to ${taskDescription}. Please try again after ` +
|
alertFunction(`Rate limited while trying to ${taskDescription}. Please try again after ` +
|
||||||
`your rate limit window resets at ${e.rateLimitResetDate.toLocaleString()}.`);
|
`your rate limit window resets at ${e.rateLimitResetDate.toLocaleString(env.language)}.`);
|
||||||
} else if (e instanceof GithubApiError) {
|
} else if (e instanceof GithubApiError) {
|
||||||
alertFunction(`Encountered GitHub API error while trying to ${taskDescription}. ` + e);
|
alertFunction(`Encountered GitHub API error while trying to ${taskDescription}. ` + e);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,8 +4,9 @@ import * as Sarif from 'sarif';
|
|||||||
import { FivePartLocation, LocationStyle, LocationValue, ResolvableLocationValue, tryGetResolvableLocation, WholeFileLocation } from 'semmle-bqrs';
|
import { FivePartLocation, LocationStyle, LocationValue, ResolvableLocationValue, tryGetResolvableLocation, WholeFileLocation } from 'semmle-bqrs';
|
||||||
import { DisposableObject } from '@github/codeql-vscode-utils';
|
import { DisposableObject } from '@github/codeql-vscode-utils';
|
||||||
import * as vscode from 'vscode';
|
import * as vscode from 'vscode';
|
||||||
import { Diagnostic, DiagnosticRelatedInformation, DiagnosticSeverity, languages, Location, Range, Uri, window as Window, workspace } from 'vscode';
|
import { Diagnostic, DiagnosticRelatedInformation, DiagnosticSeverity, languages, Location, Range, Uri, window as Window, workspace, env } from 'vscode';
|
||||||
import * as cli from './cli';
|
import * as cli from './cli';
|
||||||
|
|
||||||
import { CodeQLCliServer } from './cli';
|
import { CodeQLCliServer } from './cli';
|
||||||
import { DatabaseItem, DatabaseManager } from './databases';
|
import { DatabaseItem, DatabaseManager } from './databases';
|
||||||
import { showAndLogErrorMessage } from './helpers';
|
import { showAndLogErrorMessage } from './helpers';
|
||||||
@@ -108,7 +109,7 @@ function sortInterpretedResults(results: Sarif.Result[], sortState: InterpretedR
|
|||||||
results.sort((a, b) =>
|
results.sort((a, b) =>
|
||||||
a.message.text === undefined ? 0 :
|
a.message.text === undefined ? 0 :
|
||||||
b.message.text === undefined ? 0 :
|
b.message.text === undefined ? 0 :
|
||||||
multiplier * (a.message.text?.localeCompare(b.message.text)));
|
multiplier * (a.message.text?.localeCompare(b.message.text, env.language)));
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
assertNever(sortState.sortBy);
|
assertNever(sortState.sortBy);
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import * as path from 'path';
|
import * as path from 'path';
|
||||||
import { QLPackDiscovery } from './qlpack-discovery';
|
import { QLPackDiscovery } from './qlpack-discovery';
|
||||||
import { Discovery } from './discovery';
|
import { Discovery } from './discovery';
|
||||||
import { EventEmitter, Event, Uri, RelativePattern } from 'vscode';
|
import { EventEmitter, Event, Uri, RelativePattern, env } from 'vscode';
|
||||||
import { MultiFileSystemWatcher } from '@github/codeql-vscode-utils';
|
import { MultiFileSystemWatcher } from '@github/codeql-vscode-utils';
|
||||||
import { CodeQLCliServer } from './cli';
|
import { CodeQLCliServer } from './cli';
|
||||||
|
|
||||||
@@ -55,7 +55,7 @@ export class QLTestDirectory extends QLTestNode {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public finish(): void {
|
public finish(): void {
|
||||||
this._children.sort((a, b) => a.name.localeCompare(b.name));
|
this._children.sort((a, b) => a.name.localeCompare(b.name, env.language));
|
||||||
for (const child of this._children) {
|
for (const child of this._children) {
|
||||||
child.finish();
|
child.finish();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
import { env } from 'vscode';
|
||||||
|
|
||||||
import { QueryWithResults, tmpDir, QueryInfo } from "./run-queries";
|
import { QueryWithResults, tmpDir, QueryInfo } from "./run-queries";
|
||||||
import * as messages from './messages';
|
import * as messages from './messages';
|
||||||
import * as helpers from './helpers';
|
import * as helpers from './helpers';
|
||||||
@@ -43,7 +45,7 @@ export class CompletedQuery implements QueryWithResults {
|
|||||||
this.options = evaluation.options;
|
this.options = evaluation.options;
|
||||||
this.dispose = evaluation.dispose;
|
this.dispose = evaluation.dispose;
|
||||||
|
|
||||||
this.time = new Date().toLocaleString();
|
this.time = new Date().toLocaleString(env.language);
|
||||||
this.sortedResultsInfo = new Map();
|
this.sortedResultsInfo = new Map();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -226,6 +226,7 @@ async function convertToQlPath(filePath: string): Promise<string> {
|
|||||||
const fileName = path.basename(filePath);
|
const fileName = path.basename(filePath);
|
||||||
const fileNames = await promisify<string, string[]>(fs.readdir)(dir);
|
const fileNames = await promisify<string, string[]>(fs.readdir)(dir);
|
||||||
for (const name of fileNames) {
|
for (const name of fileNames) {
|
||||||
|
// leave the locale argument empty so that the default OS locale is used.
|
||||||
if (fileName.localeCompare(name, undefined, { sensitivity: 'accent' }) === 0) {
|
if (fileName.localeCompare(name, undefined, { sensitivity: 'accent' }) === 0) {
|
||||||
return path.join(dir, name);
|
return path.join(dir, name);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user