@sussudio/platform
Version:
Internal APIs for VS Code's service injection the base services.
32 lines (31 loc) • 1.39 kB
JavaScript
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { basename } from '@sussudio/base/common/resources.mjs';
import { localize } from 'vscode-nls.mjs';
import { createDecorator } from '../../instantiation/common/instantiation.mjs';
export const IDialogService = createDecorator('dialogService');
export const IFileDialogService = createDecorator('fileDialogService');
const MAX_CONFIRM_FILES = 10;
export function getFileNamesMessage(fileNamesOrResources) {
const message = [];
message.push(
...fileNamesOrResources
.slice(0, MAX_CONFIRM_FILES)
.map((fileNameOrResource) =>
typeof fileNameOrResource === 'string' ? fileNameOrResource : basename(fileNameOrResource),
),
);
if (fileNamesOrResources.length > MAX_CONFIRM_FILES) {
if (fileNamesOrResources.length - MAX_CONFIRM_FILES === 1) {
message.push(localize('moreFile', '...1 additional file not shown'));
} else {
message.push(
localize('moreFiles', '...{0} additional files not shown', fileNamesOrResources.length - MAX_CONFIRM_FILES),
);
}
}
message.push('');
return message.join('\n');
}