/* oxlint-disable no-template-curly-in-string -- descriptor data contains literal GitLens format tokens */
import type { SettingsCategory } from '../model.js';

export const viewsCategories: SettingsCategory[] = [
	{
		id: 'commit-graph',
		settingsSearch: 'gitlens.graph',
		name: 'Commit Graph',
		group: 'Views',
		icon: 'gl-graph',
		hint: 'Adds a [Commit Graph](command:gitlens.showGraph) to visualize, explore, and manage a Git repository',
		pro: true,
		learnMoreUrl: 'https://help.gitkraken.com/gitlens/gitlens-plus/#commit-graph',
		preview: 'graph',
		controls: [
			{
				kind: 'segmented',
				key: 'graph.layout',
				label: 'Prefer showing the Commit Graph in the',
				options: [
					{ value: 'editor', label: 'editor area' },
					{ value: 'panel', label: 'bottom panel' },
				],
			},
			{
				kind: 'number',
				key: 'graph.defaultItemLimit',
				label: 'Show this many rows at first',
				placeholder: '500',
				defaultValue: '500',
			},
			{
				kind: 'number',
				key: 'graph.pageItemLimit',
				label: 'Then page in this many more rows when scrolling',
				placeholder: '200',
				defaultValue: '200',
			},
			{
				kind: 'number',
				key: 'graph.searchItemLimit',
				label: 'Show this many search results at first and when paging',
				placeholder: '0',
				defaultValue: '0',
			},
			{
				kind: 'number',
				key: 'graph.scrollRowPadding',
				label: 'Start scrolling at this many rows from the edge',
				placeholder: '0',
				defaultValue: '0',
			},
			{
				kind: 'check',
				key: 'graph.scrollMarkers.enabled',
				label: 'Show markers on the Commit Graph scrollbar',
			},
			{
				kind: 'check',
				key: 'graph.showGhostRefsOnRowHover',
				label: 'Show ghost branch / tag when hovering over or selecting a commit',
			},
			{
				kind: 'check',
				key: 'graph.highlightRowsOnRefHover',
				label: 'Highlight associated rows when hovering over a branch',
			},
			{
				kind: 'check',
				key: 'graph.dimMergeCommits',
				label: 'Dim merge commit rows',
			},
			{
				kind: 'check',
				key: 'graph.showRemoteNames',
				label: 'Show remote names on remote branches',
			},
			{
				kind: 'check',
				key: 'graph.showUpstreamStatus',
				label: 'Show upstream status on local branches with remotes',
			},
			{
				kind: 'check',
				key: 'graph.issues.enabled',
				label: 'Show associated issues on branches',
				hint: 'Requires a connection to a supported issue service (e.g. GitHub)',
			},
			{
				kind: 'check',
				key: 'graph.pullRequests.enabled',
				label: 'Show associated pull requests on remote branches',
				hint: 'Requires a connection to a supported remote service (e.g. GitHub)',
			},
			{
				kind: 'check',
				key: 'graph.avatars',
				label: 'Use author and remote avatars',
			},
			{
				kind: 'check',
				key: 'graph.dateStyle',
				label: 'Allow relative date formatting',
				valueOn: 'relative',
				valueOff: 'absolute',
			},
			// Mirrors the effective date style — explicit `graph.dateStyle`, or the
			// inherited `defaultDateStyle` when it's left unset (null)
			{
				kind: 'info',
				text: 'Shows some dates relatively, e.g. 1 day ago',
				visibleWhen: 'graph.dateStyle =relative',
			},
			{
				kind: 'info',
				text: 'Shows some dates relatively, e.g. 1 day ago',
				visibleWhen: 'graph.dateStyle =null & defaultDateStyle =relative',
			},
			{
				kind: 'info',
				text: 'Shows dates absolutely, using the date format below',
				visibleWhen: 'graph.dateStyle =absolute',
			},
			{
				kind: 'info',
				text: 'Shows dates absolutely, using the date format below',
				visibleWhen: 'graph.dateStyle =null & defaultDateStyle =absolute',
			},
			{
				kind: 'text',
				key: 'graph.dateFormat',
				label: 'Date format',
				placeholder: 'defaults to `defaultDateFormat` value',
				preview: { type: 'date', default: 'MMMM Do, YYYY h:mma', defaultLookup: 'defaultDateFormat' },
			},
		],
	},
	{
		id: 'commits-view',
		settingsSearch: 'gitlens.views.commits or gitlens.views',
		name: 'Commits view',
		group: 'Views',
		icon: 'gl-commits-view',
		hint: 'Adds a [Commits view](command:gitlens.showCommitsView) to visualize, explore, and manage Git commits',
		learnMoreUrl: 'https://help.gitkraken.com/gitlens/side-bar/#commits-view',
		controls: [
			{
				kind: 'check',
				key: 'views.commits.showBranchComparison',
				label: 'Show a comparison of the current branch or working tree with a user-selected reference (branch, tag, etc)',
				valueOn: 'working',
			},
			{
				kind: 'segmented',
				key: 'views.commits.showBranchComparison',
				label: 'Compare the',
				options: [
					{ value: 'branch', label: 'current branch' },
					{ value: 'working', label: 'working tree' },
				],
				enabledWhen: 'views.commits.showBranchComparison !false',
				indent: true,
			},
			{
				kind: 'check',
				key: 'views.commits.pullRequests.enabled',
				label: 'Show associated pull requests',
				hint: 'Requires a connection to a supported remote service (e.g. GitHub)',
			},
			{
				kind: 'check',
				key: 'views.commits.pullRequests.showForBranches',
				label: 'Show the pull request associated with the current branch',
				enabledWhen: 'views.commits.pullRequests.enabled',
				indent: true,
			},
			{
				kind: 'check',
				key: 'views.commits.pullRequests.showForCommits',
				label: 'Show the pull request that introduced each commit',
				enabledWhen: 'views.commits.pullRequests.enabled',
				indent: true,
			},
			{
				kind: 'segmented',
				key: 'views.commits.files.layout',
				label: 'Layout files',
				options: [
					{ value: 'auto', label: 'automatically' },
					{ value: 'list', label: 'as a list' },
					{ value: 'tree', label: 'as a tree' },
				],
				hint: 'Chooses the best layout based on the number of files at each nesting level',
			},
			{
				kind: 'select',
				key: 'views.commits.files.icon',
				label: 'File icons',
				options: [
					{ value: 'type', label: 'show file type (default)' },
					{ value: 'status', label: 'show file status' },
				],
			},
			{
				kind: 'check',
				key: 'views.commits.files.compact',
				label: 'Use compact file layout',
				hint: 'Compacts (flattens) unnecessary nesting when using a tree layouts',
			},
			{
				kind: 'check',
				key: 'views.commits.avatars',
				label: 'Use author avatars',
			},
			{
				kind: 'text',
				key: 'views.formats.commits.label',
				label: 'Commit label format',
				placeholder: '${❰ tips ❱➤  }${message}',
				defaultValue: '${❰ tips ❱➤  }${message}',
				preview: { type: 'commit', default: '${❰ tips ❱➤  }${message}' },
				tokens: true,
			},
			{
				kind: 'text',
				key: 'views.formats.commits.description',
				label: 'Commit description format',
				placeholder: '${author, }${agoOrDate}',
				defaultValue: '${author, }${agoOrDate}',
				preview: { type: 'commit', default: '${author, }${agoOrDate}' },
				tokens: true,
			},
		],
	},
	{
		id: 'repositories-view',
		settingsSearch: 'gitlens.views.repositories or gitlens.views',
		name: 'Repositories view',
		group: 'Views',
		icon: 'gl-repositories-view',
		hint: 'Adds a [Repositories view](command:gitlens.showRepositoriesView), hidden by default, to visualize, explore, and manage Git repositories',
		learnMoreUrl: 'https://help.gitkraken.com/gitlens/side-bar/#repositories-view',
		controls: [
			{
				kind: 'info',
				text: 'Show the following sections under each repository',
			},
			{
				kind: 'check',
				key: 'views.repositories.showBranchComparison',
				label: 'Comparison of the current branch or working tree with a user-selected reference (branch, tag, etc)',
				valueOn: 'working',
			},
			{
				kind: 'segmented',
				key: 'views.repositories.showBranchComparison',
				label: 'Compare the',
				options: [
					{ value: 'branch', label: 'current branch' },
					{ value: 'working', label: 'working tree' },
				],
				enabledWhen: 'views.repositories.showBranchComparison !false',
				indent: true,
			},
			{
				kind: 'check',
				key: 'views.repositories.showUpstreamStatus',
				label: 'Current branch status',
			},
			{
				kind: 'check',
				key: 'views.repositories.includeWorkingTree',
				label: 'Working tree file changes',
			},
			{
				kind: 'check',
				key: 'views.repositories.pullRequests.enabled',
				label: 'Associated pull requests',
				hint: 'Requires a connection to a supported remote service (e.g. GitHub)',
			},
			{
				kind: 'check',
				key: 'views.repositories.pullRequests.showForBranches',
				label: 'Show the pull request associated with each branch',
				enabledWhen: 'views.repositories.pullRequests.enabled',
				indent: true,
			},
			{
				kind: 'check',
				key: 'views.repositories.pullRequests.showForCommits',
				label: 'Show the pull request that introduced each commit',
				enabledWhen: 'views.repositories.pullRequests.enabled',
				indent: true,
			},
			{
				kind: 'check',
				key: 'views.repositories.showCommits',
				label: 'Commits',
			},
			{
				kind: 'check',
				key: 'views.repositories.showBranches',
				label: 'Branches',
			},
			{
				kind: 'check',
				key: 'views.repositories.showRemotes',
				label: 'Remotes',
			},
			{
				kind: 'check',
				key: 'views.repositories.showStashes',
				label: 'Stashes',
			},
			{
				kind: 'check',
				key: 'views.repositories.showTags',
				label: 'Tags',
			},
			{
				kind: 'check',
				key: 'views.repositories.showContributors',
				label: 'Contributors',
			},
			{
				kind: 'check',
				key: 'views.repositories.showIncomingActivity',
				label: 'Incoming Activity (Experimental)',
			},
			{
				kind: 'check',
				key: 'views.repositories.autoRefresh',
				label: 'Automatically refresh when a repository or the file system changes',
			},
			{
				kind: 'check',
				key: 'views.repositories.autoReveal',
				label: 'Automatically reveal repository when opening files',
			},
			{
				kind: 'check',
				key: 'views.repositories.avatars',
				label: 'Use author avatars',
			},
			{
				kind: 'segmented',
				key: 'views.repositories.branches.layout',
				label: 'Layout branches',
				options: [
					{ value: 'list', label: 'as a list' },
					{ value: 'tree', label: 'as a tree' },
				],
			},
			{
				kind: 'segmented',
				key: 'views.repositories.files.layout',
				label: 'Layout files',
				options: [
					{ value: 'auto', label: 'automatically' },
					{ value: 'list', label: 'as a list' },
					{ value: 'tree', label: 'as a tree' },
				],
				hint: 'Chooses the best layout based on the number of files at each nesting level',
			},
			{
				kind: 'select',
				key: 'views.repositories.files.icon',
				label: 'File icons',
				options: [
					{ value: 'type', label: 'show file type (default)' },
					{ value: 'status', label: 'show file status' },
				],
			},
			{
				kind: 'check',
				key: 'views.repositories.files.compact',
				label: 'Use compact file layout',
				hint: 'Compacts (flattens) unnecessary nesting when using a tree layouts',
			},
		],
	},
	{
		id: 'branches-view',
		settingsSearch: 'gitlens.views.branches or gitlens.views',
		name: 'Branches view',
		group: 'Views',
		icon: 'gl-branches-view',
		hint: 'Adds a [Branches view](command:gitlens.showBranchesView) to visualize, explore, and manage Git branches',
		learnMoreUrl: 'https://help.gitkraken.com/gitlens/side-bar/#branches-view',
		controls: [
			{
				kind: 'check',
				key: 'views.branches.showBranchComparison',
				label: 'Show a comparison of the branch with a user-selected reference (branch, tag, etc)',
				valueOn: 'branch',
			},
			{
				kind: 'check',
				key: 'views.branches.pullRequests.enabled',
				label: 'Show associated pull requests',
				hint: 'Requires a connection to a supported remote service (e.g. GitHub)',
			},
			{
				kind: 'check',
				key: 'views.branches.pullRequests.showForBranches',
				label: 'Show the pull request associated with each branch',
				enabledWhen: 'views.branches.pullRequests.enabled',
				indent: true,
			},
			{
				kind: 'check',
				key: 'views.branches.pullRequests.showForCommits',
				label: 'Show the pull request that introduced each commit',
				enabledWhen: 'views.branches.pullRequests.enabled',
				indent: true,
			},
			{
				kind: 'segmented',
				key: 'views.branches.branches.layout',
				label: 'Layout branches',
				options: [
					{ value: 'list', label: 'as a list' },
					{ value: 'tree', label: 'as a tree' },
				],
			},
			{
				kind: 'segmented',
				key: 'views.branches.files.layout',
				label: 'Layout files',
				options: [
					{ value: 'auto', label: 'automatically' },
					{ value: 'list', label: 'as a list' },
					{ value: 'tree', label: 'as a tree' },
				],
				hint: 'Chooses the best layout based on the number of files at each nesting level',
			},
			{
				kind: 'select',
				key: 'views.branches.files.icon',
				label: 'File icons',
				options: [
					{ value: 'type', label: 'show file type (default)' },
					{ value: 'status', label: 'show file status' },
				],
			},
			{
				kind: 'check',
				key: 'views.branches.files.compact',
				label: 'Use compact file layout',
				hint: 'Compacts (flattens) unnecessary nesting when using a tree layouts',
			},
			{
				kind: 'check',
				key: 'views.branches.avatars',
				label: 'Use author avatars',
			},
		],
	},
	{
		id: 'remotes-view',
		settingsSearch: 'gitlens.views.remotes or gitlens.views',
		name: 'Remotes view',
		group: 'Views',
		icon: 'gl-remotes-view',
		hint: 'Adds a [Remotes view](command:gitlens.showRemotesView) to visualize, explore, and manage Git remotes and remote branches',
		learnMoreUrl: 'https://help.gitkraken.com/gitlens/side-bar/#remotes-view',
		controls: [
			{
				kind: 'check',
				key: 'views.remotes.pullRequests.enabled',
				label: 'Show associated pull requests',
				hint: 'Requires a connection to a supported remote service (e.g. GitHub)',
			},
			{
				kind: 'check',
				key: 'views.remotes.pullRequests.showForBranches',
				label: 'Show the pull request associated with each branch',
				enabledWhen: 'views.remotes.pullRequests.enabled',
				indent: true,
			},
			{
				kind: 'check',
				key: 'views.remotes.pullRequests.showForCommits',
				label: 'Show the pull request that introduced each commit',
				enabledWhen: 'views.remotes.pullRequests.enabled',
				indent: true,
			},
			{
				kind: 'segmented',
				key: 'views.remotes.branches.layout',
				label: 'Layout branches',
				options: [
					{ value: 'list', label: 'as a list' },
					{ value: 'tree', label: 'as a tree' },
				],
			},
			{
				kind: 'segmented',
				key: 'views.remotes.files.layout',
				label: 'Layout files',
				options: [
					{ value: 'auto', label: 'automatically' },
					{ value: 'list', label: 'as a list' },
					{ value: 'tree', label: 'as a tree' },
				],
				hint: 'Chooses the best layout based on the number of files at each nesting level',
			},
			{
				kind: 'select',
				key: 'views.remotes.files.icon',
				label: 'File icons',
				options: [
					{ value: 'type', label: 'show file type (default)' },
					{ value: 'status', label: 'show file status' },
				],
			},
			{
				kind: 'check',
				key: 'views.remotes.files.compact',
				label: 'Use compact file layout',
				hint: 'Compacts (flattens) unnecessary nesting when using a tree layouts',
			},
			{
				kind: 'check',
				key: 'views.remotes.avatars',
				label: 'Use author avatars',
			},
		],
	},
	{
		id: 'stashes-view',
		settingsSearch: 'gitlens.views.stashes or gitlens.views',
		name: 'Stashes view',
		group: 'Views',
		icon: 'gl-stashes-view',
		hint: 'Adds a [Stashes view](command:gitlens.showStashesView) to visualize, explore, and manage Git stashes',
		learnMoreUrl: 'https://help.gitkraken.com/gitlens/side-bar/#stashes-view',
		controls: [
			{
				kind: 'segmented',
				key: 'views.stashes.files.layout',
				label: 'Layout files',
				options: [
					{ value: 'auto', label: 'automatically' },
					{ value: 'list', label: 'as a list' },
					{ value: 'tree', label: 'as a tree' },
				],
				hint: 'Chooses the best layout based on the number of files at each nesting level',
			},
			{
				kind: 'select',
				key: 'views.stashes.files.icon',
				label: 'File icons',
				options: [
					{ value: 'type', label: 'show file type (default)' },
					{ value: 'status', label: 'show file status' },
				],
			},
			{
				kind: 'check',
				key: 'views.stashes.files.compact',
				label: 'Use compact file layout',
				hint: 'Compacts (flattens) unnecessary nesting when using a tree layouts',
			},
			{
				kind: 'text',
				key: 'views.formats.stashes.label',
				label: 'Stash label format',
				placeholder: '${message}',
				defaultValue: '${message}',
				preview: { type: 'commit', default: '${message}' },
				tokens: true,
			},
			{
				kind: 'text',
				key: 'views.formats.stashes.description',
				label: 'Stash description format',
				placeholder: '${stashOnRef, }${agoOrDate}',
				defaultValue: '${stashOnRef, }${agoOrDate}',
				preview: { type: 'commit', default: '${stashOnRef, }${agoOrDate}' },
				tokens: true,
			},
		],
	},
	{
		id: 'tags-view',
		settingsSearch: 'gitlens.views.tags or gitlens.views',
		name: 'Tags view',
		group: 'Views',
		icon: 'gl-tags-view',
		hint: 'Adds a [Tags view](command:gitlens.showTagsView) to visualize, explore, and manage Git tags',
		learnMoreUrl: 'https://help.gitkraken.com/gitlens/side-bar/#tags-view',
		controls: [
			{
				kind: 'segmented',
				key: 'views.tags.branches.layout',
				label: 'Layout tags',
				options: [
					{ value: 'list', label: 'as a list' },
					{ value: 'tree', label: 'as a tree' },
				],
			},
			{
				kind: 'segmented',
				key: 'views.tags.files.layout',
				label: 'Layout files',
				options: [
					{ value: 'auto', label: 'automatically' },
					{ value: 'list', label: 'as a list' },
					{ value: 'tree', label: 'as a tree' },
				],
				hint: 'Chooses the best layout based on the number of files at each nesting level',
			},
			{
				kind: 'select',
				key: 'views.tags.files.icon',
				label: 'File icons',
				options: [
					{ value: 'type', label: 'show file type (default)' },
					{ value: 'status', label: 'show file status' },
				],
			},
			{
				kind: 'check',
				key: 'views.tags.files.compact',
				label: 'Use compact file layout',
				hint: 'Compacts (flattens) unnecessary nesting when using a tree layouts',
			},
			{
				kind: 'check',
				key: 'views.tags.avatars',
				label: 'Use author avatars',
			},
		],
	},
	{
		id: 'worktrees-view',
		settingsSearch: 'gitlens.views.worktrees or gitlens.views',
		name: 'Worktrees view',
		group: 'Views',
		icon: 'gl-worktrees-view',
		hint: 'Adds a [Worktrees view](command:gitlens.showWorktreesView) to visualize, explore, and manage Git worktrees',
		pro: true,
		learnMoreUrl: 'https://help.gitkraken.com/gitlens/gitlens-plus/#worktrees',
		controls: [
			{
				kind: 'check',
				key: 'worktrees.promptForLocation',
				label: 'Always ask where to put new worktrees',
			},
			{
				kind: 'text',
				key: 'worktrees.defaultLocation',
				label: 'Default worktree location',
				placeholder: 'absolute path to put new worktrees into',
				hint: 'Can be configured on a per-workspace or per-folder basis',
			},
			{
				kind: 'check',
				key: 'views.worktrees.showBranchComparison',
				label: 'Show a comparison of the worktree branch with a user-selected reference (branch, tag, etc)',
				valueOn: 'branch',
			},
			{
				kind: 'check',
				key: 'views.worktrees.pullRequests.enabled',
				label: 'Show associated pull requests',
				hint: 'Requires a connection to a supported remote service (e.g. GitHub)',
			},
			{
				kind: 'check',
				key: 'views.worktrees.pullRequests.showForBranches',
				label: 'Show the pull request associated with the worktree branch',
				enabledWhen: 'views.worktrees.pullRequests.enabled',
				indent: true,
			},
			{
				kind: 'check',
				key: 'views.worktrees.pullRequests.showForCommits',
				label: 'Show the pull request that introduced each commit',
				enabledWhen: 'views.worktrees.pullRequests.enabled',
				indent: true,
			},
			{
				kind: 'segmented',
				key: 'views.worktrees.files.layout',
				label: 'Layout files',
				options: [
					{ value: 'auto', label: 'automatically' },
					{ value: 'list', label: 'as a list' },
					{ value: 'tree', label: 'as a tree' },
				],
				hint: 'Chooses the best layout based on the number of files at each nesting level',
			},
			{
				kind: 'select',
				key: 'views.worktrees.files.icon',
				label: 'File icons',
				options: [
					{ value: 'type', label: 'show file type (default)' },
					{ value: 'status', label: 'show file status' },
				],
			},
			{
				kind: 'check',
				key: 'views.worktrees.files.compact',
				label: 'Use compact file layout',
				hint: 'Compacts (flattens) unnecessary nesting when using a tree layouts',
			},
			{
				kind: 'check',
				key: 'views.worktrees.avatars',
				label: 'Use author avatars',
			},
		],
	},
	{
		id: 'commit-details-view',
		settingsSearch: 'gitlens.views.commitDetails or gitlens.views',
		name: 'Inspect view',
		group: 'Views',
		icon: 'gl-commit-view',
		hint: 'Adds an [Inspect view](command:gitlens.showCommitDetailsView) to see rich details for a commit',
		learnMoreUrl: 'https://help.gitkraken.com/gitlens/gitlens-features/#commit-details-view',
		controls: [
			{
				kind: 'check',
				key: 'views.commitDetails.autolinks.enabled',
				label: 'Show autolinks in commit messages',
			},
			{
				kind: 'check',
				key: 'views.commitDetails.autolinks.enhanced',
				label: 'Enhance autolinks with remote details',
				hint: 'Requires a connection to a supported remote service (e.g. GitHub)',
				enabledWhen: 'views.commitDetails.autolinks.enabled',
				indent: true,
			},
			{
				kind: 'check',
				key: 'views.commitDetails.pullRequests.enabled',
				label: 'Show the Pull Request (if any) that introduced the commit',
				hint: 'Requires a connection to a supported remote service (e.g. GitHub)',
			},
			{
				kind: 'select',
				key: 'views.commitDetails.files.layout',
				label: 'Layout files',
				hint: 'Chooses the best layout based on the number of files at each nesting level',
				options: [
					{ value: 'auto', label: 'automatically' },
					{ value: 'list', label: 'as a list' },
					{ value: 'tree', label: 'as a tree' },
				],
			},
			{
				kind: 'check',
				key: 'views.commitDetails.files.compact',
				label: 'Use compact file layout',
				hint: 'Compacts (flattens) unnecessary nesting when using a tree layouts',
			},
			{
				kind: 'check',
				key: 'views.commitDetails.avatars',
				label: 'Use author avatars',
			},
		],
	},
	{
		id: 'contributors-view',
		settingsSearch: 'gitlens.views.contributors or gitlens.views',
		name: 'Contributors view',
		group: 'Views',
		icon: 'gl-contributors-view',
		hint: 'Adds a [Contributors view](command:gitlens.showContributorsView), hidden by default, to visualize, navigate, and explore contributors',
		learnMoreUrl: 'https://help.gitkraken.com/gitlens/side-bar/#contributors-view',
		controls: [
			{
				kind: 'check',
				key: 'views.contributors.showAllBranches',
				label: 'Show commits from all branches',
			},
			{
				kind: 'check',
				key: 'views.contributors.pullRequests.enabled',
				label: 'Show associated pull requests',
				hint: 'Requires a connection to a supported remote service (e.g. GitHub)',
			},
			{
				kind: 'check',
				key: 'views.contributors.pullRequests.showForCommits',
				label: 'Show the pull request that introduced each commit',
				enabledWhen: 'views.contributors.pullRequests.enabled',
				indent: true,
			},
			{
				kind: 'select',
				key: 'views.contributors.files.layout',
				label: 'Layout files',
				hint: 'Chooses the best layout based on the number of files at each nesting level',
				options: [
					{ value: 'auto', label: 'automatically' },
					{ value: 'list', label: 'as a list' },
					{ value: 'tree', label: 'as a tree' },
				],
			},
			{
				kind: 'select',
				key: 'views.contributors.files.icon',
				label: 'File icons',
				options: [
					{ value: 'type', label: 'show file type (default)' },
					{ value: 'status', label: 'show file status' },
				],
			},
			{
				kind: 'check',
				key: 'views.contributors.files.compact',
				label: 'Use compact file layout',
				hint: 'Compacts (flattens) unnecessary nesting when using a tree layouts',
			},
			{
				kind: 'check',
				key: 'views.contributors.avatars',
				label: 'Use author avatars',
			},
		],
	},
	{
		id: 'file-history-view',
		settingsSearch: 'gitlens.views.fileHistory or gitlens.views',
		name: 'File History view',
		group: 'Views',
		icon: 'gl-history-view',
		hint: 'Adds a [File History view](command:gitlens.showFileHistoryView) to visualize, navigate, and explore the revision history of the current file, a specified file or folder, or just the selected lines of the current file',
		learnMoreUrl: 'https://help.gitkraken.com/gitlens/side-bar/#file-history-view',
		controls: [
			{
				kind: 'check',
				key: 'views.fileHistory.avatars',
				label: 'Use author avatars',
			},
			{
				kind: 'info',
				text: 'Applies only when showing folder history:',
			},
			{
				kind: 'check',
				key: 'views.fileHistory.pullRequests.enabled',
				label: 'Show associated pull requests',
				hint: 'Requires a connection to a supported remote service (e.g. GitHub)',
				indent: true,
			},
			{
				kind: 'check',
				key: 'views.fileHistory.pullRequests.showForCommits',
				label: 'Show the pull request that introduced each commit',
				enabledWhen: 'views.fileHistory.pullRequests.enabled',
				indent: true,
			},
			{
				kind: 'select',
				key: 'views.fileHistory.files.layout',
				label: 'Layout files',
				hint: 'Chooses the best layout based on the number of files at each nesting level',
				options: [
					{ value: 'auto', label: 'automatically' },
					{ value: 'list', label: 'as a list' },
					{ value: 'tree', label: 'as a tree' },
				],
				indent: true,
			},
			{
				kind: 'select',
				key: 'views.fileHistory.files.icon',
				label: 'File icons',
				options: [
					{ value: 'type', label: 'show file type (default)' },
					{ value: 'status', label: 'show file status' },
				],
				indent: true,
			},
			{
				kind: 'check',
				key: 'views.fileHistory.files.compact',
				label: 'Use compact file layout',
				hint: 'Compacts (flattens) unnecessary nesting when using a tree layouts',
				indent: true,
			},
		],
	},
	{
		id: 'line-history-view',
		settingsSearch: 'gitlens.views.lineHistory or gitlens.views',
		name: 'Line History view',
		group: 'Views',
		icon: 'gl-history-view',
		hint: 'Adds a [Line History view](command:gitlens.showLineHistoryView), hidden by default, to visualize, navigate, and explore the revision history of the selected lines of current file',
		learnMoreUrl: 'https://help.gitkraken.com/gitlens/side-bar/#line-history-view',
		controls: [
			{
				kind: 'check',
				key: 'views.lineHistory.avatars',
				label: 'Use author avatars',
			},
		],
	},
	{
		id: 'search-compare-view',
		settingsSearch: 'gitlens.views.searchAndCompare or gitlens.views',
		name: 'Search & Compare view',
		group: 'Views',
		icon: 'gl-search-view',
		hint: 'Adds a [Search & Compare view](command:gitlens.showSearchAndCompareView) to search and explore commit histories by message, author, files, id, etc, or visualize comparisons between branches, tags, commits, and more',
		learnMoreUrl: 'https://help.gitkraken.com/gitlens/side-bar/#search-compare-view',
		controls: [
			{
				kind: 'check',
				key: 'views.searchAndCompare.pullRequests.enabled',
				label: 'Show associated pull requests',
				hint: 'Requires a connection to a supported remote service (e.g. GitHub)',
			},
			{
				kind: 'check',
				key: 'views.searchAndCompare.pullRequests.showForCommits',
				label: 'Show the pull request that introduced each commit',
				enabledWhen: 'views.searchAndCompare.pullRequests.enabled',
				indent: true,
			},
			{
				kind: 'select',
				key: 'views.searchAndCompare.files.layout',
				label: 'Layout files',
				options: [
					{ value: 'auto', label: 'automatically' },
					{ value: 'list', label: 'as a list' },
					{ value: 'tree', label: 'as a tree' },
				],
			},
			{
				kind: 'select',
				key: 'views.searchAndCompare.files.icon',
				label: 'File icons',
				options: [
					{ value: 'type', label: 'show file type (default)' },
					{ value: 'status', label: 'show file status' },
				],
			},
			{
				kind: 'check',
				key: 'views.searchAndCompare.files.compact',
				label: 'Use compact file layout',
				hint: 'Compacts (flattens) unnecessary nesting when using a tree layouts',
			},
			{
				kind: 'check',
				key: 'views.searchAndCompare.avatars',
				label: 'Use author avatars',
			},
		],
	},
];
