mirror of
https://github.com/microsoft/vscode.git
synced 2026-02-15 07:28:05 +00:00
Use setupDelayedHover instead of setupManagedHover (#242599)
This commit is contained in:
@@ -33,8 +33,9 @@ import { Disposable, DisposableStore, isDisposable, toDisposable } from '../../.
|
||||
import { isIOS } from '../../../../base/common/platform.js';
|
||||
import { escapeRegExpCharacters } from '../../../../base/common/strings.js';
|
||||
import { isDefined, isUndefinedOrNull } from '../../../../base/common/types.js';
|
||||
import { ILanguageService } from '../../../../editor/common/languages/language.js';
|
||||
import { URI } from '../../../../base/common/uri.js';
|
||||
import { MarkdownRenderer } from '../../../../editor/browser/widget/markdownRenderer/browser/markdownRenderer.js';
|
||||
import { ILanguageService } from '../../../../editor/common/languages/language.js';
|
||||
import { localize } from '../../../../nls.js';
|
||||
import { IClipboardService } from '../../../../platform/clipboard/common/clipboardService.js';
|
||||
import { ICommandService } from '../../../../platform/commands/common/commands.js';
|
||||
@@ -42,6 +43,7 @@ import { ConfigurationTarget, IConfigurationService, getLanguageTagSettingPlainK
|
||||
import { ConfigurationScope } from '../../../../platform/configuration/common/configurationRegistry.js';
|
||||
import { IContextKeyService } from '../../../../platform/contextkey/common/contextkey.js';
|
||||
import { IContextMenuService, IContextViewService } from '../../../../platform/contextview/browser/contextView.js';
|
||||
import { IHoverService } from '../../../../platform/hover/browser/hover.js';
|
||||
import { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';
|
||||
import { IKeybindingService } from '../../../../platform/keybinding/common/keybinding.js';
|
||||
import { IListService, WorkbenchObjectTree } from '../../../../platform/list/browser/listService.js';
|
||||
@@ -55,23 +57,20 @@ import { IThemeService } from '../../../../platform/theme/common/themeService.js
|
||||
import { IUserDataProfilesService } from '../../../../platform/userDataProfile/common/userDataProfile.js';
|
||||
import { getIgnoredSettings } from '../../../../platform/userDataSync/common/settingsMerge.js';
|
||||
import { IUserDataSyncEnablementService, getDefaultIgnoredSettings } from '../../../../platform/userDataSync/common/userDataSync.js';
|
||||
import { APPLICATION_SCOPES, APPLY_ALL_PROFILES_SETTING, IWorkbenchConfigurationService } from '../../../services/configuration/common/configuration.js';
|
||||
import { IWorkbenchEnvironmentService } from '../../../services/environment/common/environmentService.js';
|
||||
import { IExtensionService } from '../../../services/extensions/common/extensions.js';
|
||||
import { ISetting, ISettingsGroup, SETTINGS_AUTHORITY, SettingValueType } from '../../../services/preferences/common/preferences.js';
|
||||
import { getInvalidTypeError } from '../../../services/preferences/common/preferencesValidation.js';
|
||||
import { IExtensionsWorkbenchService } from '../../extensions/common/extensions.js';
|
||||
import { LANGUAGE_SETTING_TAG, SETTINGS_EDITOR_COMMAND_SHOW_CONTEXT_MENU, compareTwoNullableNumbers } from '../common/preferences.js';
|
||||
import { settingsNumberInputBackground, settingsNumberInputBorder, settingsNumberInputForeground, settingsSelectBackground, settingsSelectBorder, settingsSelectForeground, settingsSelectListBorder, settingsTextInputBackground, settingsTextInputBorder, settingsTextInputForeground } from '../common/settingsEditorColorRegistry.js';
|
||||
import { settingsMoreActionIcon } from './preferencesIcons.js';
|
||||
import { SettingsTarget } from './preferencesWidgets.js';
|
||||
import { ISettingOverrideClickEvent, SettingsTreeIndicatorsLabel, getIndicatorsLabelAriaLabel } from './settingsEditorSettingIndicators.js';
|
||||
import { ITOCEntry } from './settingsLayout.js';
|
||||
import { ISettingsEditorViewState, SettingsTreeElement, SettingsTreeGroupChild, SettingsTreeGroupElement, SettingsTreeNewExtensionsElement, SettingsTreeSettingElement, inspectSetting, objectSettingSupportsRemoveDefaultValue, settingKeyToDisplayFormat } from './settingsTreeModels.js';
|
||||
import { ExcludeSettingWidget, IBoolObjectDataItem, IIncludeExcludeDataItem, IListDataItem, IObjectDataItem, IObjectEnumOption, IObjectKeySuggester, IObjectValueSuggester, IncludeSettingWidget, ListSettingWidget, ObjectSettingCheckboxWidget, ObjectSettingDropdownWidget, ObjectValue, SettingListEvent } from './settingsWidgets.js';
|
||||
import { LANGUAGE_SETTING_TAG, SETTINGS_EDITOR_COMMAND_SHOW_CONTEXT_MENU, compareTwoNullableNumbers } from '../common/preferences.js';
|
||||
import { settingsNumberInputBackground, settingsNumberInputBorder, settingsNumberInputForeground, settingsSelectBackground, settingsSelectBorder, settingsSelectForeground, settingsSelectListBorder, settingsTextInputBackground, settingsTextInputBorder, settingsTextInputForeground } from '../common/settingsEditorColorRegistry.js';
|
||||
import { APPLICATION_SCOPES, APPLY_ALL_PROFILES_SETTING, IWorkbenchConfigurationService } from '../../../services/configuration/common/configuration.js';
|
||||
import { IWorkbenchEnvironmentService } from '../../../services/environment/common/environmentService.js';
|
||||
import { IExtensionService } from '../../../services/extensions/common/extensions.js';
|
||||
import { ISetting, ISettingsGroup, SETTINGS_AUTHORITY, SettingValueType } from '../../../services/preferences/common/preferences.js';
|
||||
import { getInvalidTypeError } from '../../../services/preferences/common/preferencesValidation.js';
|
||||
import { getDefaultHoverDelegate } from '../../../../base/browser/ui/hover/hoverDelegateFactory.js';
|
||||
import { IHoverService } from '../../../../platform/hover/browser/hover.js';
|
||||
import { URI } from '../../../../base/common/uri.js';
|
||||
|
||||
const $ = DOM.$;
|
||||
|
||||
@@ -875,7 +874,9 @@ export abstract class AbstractSettingRenderer extends Disposable implements ITre
|
||||
|
||||
const descriptionElement = DOM.append(container, $('.setting-item-description'));
|
||||
const modifiedIndicatorElement = DOM.append(container, $('.setting-item-modified-indicator'));
|
||||
toDispose.add(this._hoverService.setupManagedHover(getDefaultHoverDelegate('mouse'), modifiedIndicatorElement, () => localize('modified', "The setting has been configured in the current scope.")));
|
||||
toDispose.add(this._hoverService.setupDelayedHover(modifiedIndicatorElement, {
|
||||
content: localize('modified', "The setting has been configured in the current scope.")
|
||||
}));
|
||||
|
||||
const valueElement = DOM.append(container, $('.setting-item-value'));
|
||||
const controlElement = DOM.append(valueElement, $('div.setting-item-control'));
|
||||
@@ -962,7 +963,7 @@ export abstract class AbstractSettingRenderer extends Disposable implements ITre
|
||||
|
||||
const titleTooltip = setting.key + (element.isConfigured ? ' - Modified' : '');
|
||||
template.categoryElement.textContent = element.displayCategory ? (element.displayCategory + ': ') : '';
|
||||
template.elementDisposables.add(this._hoverService.setupManagedHover(getDefaultHoverDelegate('mouse'), template.categoryElement, titleTooltip));
|
||||
template.elementDisposables.add(this._hoverService.setupDelayedHover(template.categoryElement, { content: titleTooltip }));
|
||||
|
||||
template.labelElement.text = element.displayLabel;
|
||||
template.labelElement.title = titleTooltip;
|
||||
@@ -1994,7 +1995,9 @@ class SettingBoolRenderer extends AbstractSettingRenderer implements ITreeRender
|
||||
const controlElement = DOM.append(descriptionAndValueElement, $('.setting-item-bool-control'));
|
||||
const descriptionElement = DOM.append(descriptionAndValueElement, $('.setting-item-description'));
|
||||
const modifiedIndicatorElement = DOM.append(container, $('.setting-item-modified-indicator'));
|
||||
toDispose.add(this._hoverService.setupManagedHover(getDefaultHoverDelegate('mouse'), modifiedIndicatorElement, localize('modified', "The setting has been configured in the current scope.")));
|
||||
toDispose.add(this._hoverService.setupDelayedHover(modifiedIndicatorElement, {
|
||||
content: localize('modified', "The setting has been configured in the current scope.")
|
||||
}));
|
||||
|
||||
const deprecationWarningElement = DOM.append(container, $('.setting-item-deprecation-message'));
|
||||
|
||||
|
||||
@@ -8,30 +8,28 @@ import * as DOM from '../../../../base/browser/dom.js';
|
||||
import { StandardKeyboardEvent } from '../../../../base/browser/keyboardEvent.js';
|
||||
import { ActionBar } from '../../../../base/browser/ui/actionbar/actionbar.js';
|
||||
import { Button } from '../../../../base/browser/ui/button/button.js';
|
||||
import { Toggle, unthemedToggleStyles } from '../../../../base/browser/ui/toggle/toggle.js';
|
||||
import { InputBox } from '../../../../base/browser/ui/inputbox/inputBox.js';
|
||||
import { SelectBox } from '../../../../base/browser/ui/selectBox/selectBox.js';
|
||||
import { Toggle, unthemedToggleStyles } from '../../../../base/browser/ui/toggle/toggle.js';
|
||||
import { IAction } from '../../../../base/common/actions.js';
|
||||
import { disposableTimeout } from '../../../../base/common/async.js';
|
||||
import { Codicon } from '../../../../base/common/codicons.js';
|
||||
import { Emitter, Event } from '../../../../base/common/event.js';
|
||||
import { MarkdownString } from '../../../../base/common/htmlContent.js';
|
||||
import { KeyCode } from '../../../../base/common/keyCodes.js';
|
||||
import { Disposable, DisposableStore } from '../../../../base/common/lifecycle.js';
|
||||
import { isIOS } from '../../../../base/common/platform.js';
|
||||
import { ThemeIcon } from '../../../../base/common/themables.js';
|
||||
import { isDefined, isUndefinedOrNull } from '../../../../base/common/types.js';
|
||||
import './media/settingsWidgets.css';
|
||||
import { localize } from '../../../../nls.js';
|
||||
import { IContextViewService } from '../../../../platform/contextview/browser/contextView.js';
|
||||
import { IThemeService } from '../../../../platform/theme/common/themeService.js';
|
||||
import { ThemeIcon } from '../../../../base/common/themables.js';
|
||||
import { settingsDiscardIcon, settingsEditIcon, settingsRemoveIcon } from './preferencesIcons.js';
|
||||
import { settingsSelectBackground, settingsSelectBorder, settingsSelectForeground, settingsSelectListBorder, settingsTextInputBackground, settingsTextInputBorder, settingsTextInputForeground } from '../common/settingsEditorColorRegistry.js';
|
||||
import { defaultButtonStyles, getInputBoxStyle, getSelectBoxStyles } from '../../../../platform/theme/browser/defaultStyles.js';
|
||||
import { getDefaultHoverDelegate } from '../../../../base/browser/ui/hover/hoverDelegateFactory.js';
|
||||
import { IHoverService } from '../../../../platform/hover/browser/hover.js';
|
||||
import { MarkdownString } from '../../../../base/common/htmlContent.js';
|
||||
import { IManagedHoverTooltipMarkdownString } from '../../../../base/browser/ui/hover/hover.js';
|
||||
import { defaultButtonStyles, getInputBoxStyle, getSelectBoxStyles } from '../../../../platform/theme/browser/defaultStyles.js';
|
||||
import { IThemeService } from '../../../../platform/theme/common/themeService.js';
|
||||
import { SettingValueType } from '../../../services/preferences/common/preferences.js';
|
||||
import { settingsSelectBackground, settingsSelectBorder, settingsSelectForeground, settingsSelectListBorder, settingsTextInputBackground, settingsTextInputBorder, settingsTextInputForeground } from '../common/settingsEditorColorRegistry.js';
|
||||
import './media/settingsWidgets.css';
|
||||
import { settingsDiscardIcon, settingsEditIcon, settingsRemoveIcon } from './preferencesIcons.js';
|
||||
|
||||
const $ = DOM.$;
|
||||
|
||||
@@ -736,7 +734,7 @@ export class ListSettingWidget<TListDataItem extends IListDataItem> extends Abst
|
||||
: localize('listSiblingHintLabel', "List item `{0}` with sibling `${1}`", value.data, sibling);
|
||||
|
||||
const { rowElement } = rowElementGroup;
|
||||
this.listDisposables.add(this.hoverService.setupManagedHover(getDefaultHoverDelegate('mouse'), rowElement, title));
|
||||
this.listDisposables.add(this.hoverService.setupDelayedHover(rowElement, { content: title }));
|
||||
rowElement.setAttribute('aria-label', title);
|
||||
}
|
||||
|
||||
@@ -802,7 +800,7 @@ export class ExcludeSettingWidget extends ListSettingWidget<IIncludeExcludeDataI
|
||||
const markdownTitle = new MarkdownString().appendMarkdown(title);
|
||||
|
||||
const { rowElement } = rowElementGroup;
|
||||
this.listDisposables.add(this.hoverService.setupManagedHover(getDefaultHoverDelegate('mouse'), rowElement, { markdown: markdownTitle, markdownNotSupportedFallback: title }));
|
||||
this.listDisposables.add(this.hoverService.setupDelayedHover(rowElement, { content: markdownTitle }));
|
||||
rowElement.setAttribute('aria-label', title);
|
||||
}
|
||||
|
||||
@@ -838,7 +836,7 @@ export class IncludeSettingWidget extends ListSettingWidget<IIncludeExcludeDataI
|
||||
const markdownTitle = new MarkdownString().appendMarkdown(title);
|
||||
|
||||
const { rowElement } = rowElementGroup;
|
||||
this.listDisposables.add(this.hoverService.setupManagedHover(getDefaultHoverDelegate('mouse'), rowElement, { markdown: markdownTitle, markdownNotSupportedFallback: title }));
|
||||
this.listDisposables.add(this.hoverService.setupDelayedHover(rowElement, { content: markdownTitle }));
|
||||
rowElement.setAttribute('aria-label', title);
|
||||
}
|
||||
|
||||
@@ -1276,13 +1274,13 @@ export class ObjectSettingDropdownWidget extends AbstractListSettingWidget<IObje
|
||||
accessibleDescription = localize('objectPairHintLabel', "The property `{0}` is set to `{1}`.", item.key.data, item.value.data);
|
||||
}
|
||||
|
||||
const markdownString = { markdown: new MarkdownString().appendMarkdown(accessibleDescription), markdownNotSupportedFallback: accessibleDescription };
|
||||
const markdownString = new MarkdownString().appendMarkdown(accessibleDescription);
|
||||
|
||||
const keyDescription: string | IManagedHoverTooltipMarkdownString = this.getEnumDescription(item.key) ?? item.keyDescription ?? markdownString;
|
||||
this.listDisposables.add(this.hoverService.setupManagedHover(getDefaultHoverDelegate('mouse'), keyElement, keyDescription));
|
||||
const keyDescription: string | MarkdownString = this.getEnumDescription(item.key) ?? item.keyDescription ?? markdownString;
|
||||
this.listDisposables.add(this.hoverService.setupDelayedHover(keyElement, { content: keyDescription }));
|
||||
|
||||
const valueDescription: string | IManagedHoverTooltipMarkdownString = this.getEnumDescription(item.value) ?? markdownString;
|
||||
this.listDisposables.add(this.hoverService.setupManagedHover(getDefaultHoverDelegate('mouse'), valueElement!, valueDescription));
|
||||
const valueDescription: string | MarkdownString = this.getEnumDescription(item.value) ?? markdownString;
|
||||
this.listDisposables.add(this.hoverService.setupDelayedHover(valueElement!, { content: valueDescription }));
|
||||
|
||||
rowElement.setAttribute('aria-label', accessibleDescription);
|
||||
}
|
||||
@@ -1452,7 +1450,7 @@ export class ObjectSettingCheckboxWidget extends AbstractListSettingWidget<IBool
|
||||
const title = item.keyDescription ?? accessibleDescription;
|
||||
const { rowElement, keyElement, valueElement } = rowElementGroup;
|
||||
|
||||
this.listDisposables.add(this.hoverService.setupManagedHover(getDefaultHoverDelegate('mouse'), keyElement, title));
|
||||
this.listDisposables.add(this.hoverService.setupDelayedHover(keyElement, { content: title }));
|
||||
valueElement!.setAttribute('aria-label', accessibleDescription);
|
||||
rowElement.setAttribute('aria-label', accessibleDescription);
|
||||
}
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
|
||||
import * as DOM from '../../../../base/browser/dom.js';
|
||||
import * as domStylesheetsJs from '../../../../base/browser/domStylesheets.js';
|
||||
import { getDefaultHoverDelegate } from '../../../../base/browser/ui/hover/hoverDelegateFactory.js';
|
||||
import { IListVirtualDelegate } from '../../../../base/browser/ui/list/list.js';
|
||||
import { DefaultStyleController, IListAccessibilityProvider } from '../../../../base/browser/ui/list/listWidget.js';
|
||||
import { RenderIndentGuides } from '../../../../base/browser/ui/tree/abstractTree.js';
|
||||
@@ -20,10 +19,10 @@ import { IInstantiationService } from '../../../../platform/instantiation/common
|
||||
import { IListService, IWorkbenchObjectTreeOptions, WorkbenchObjectTree } from '../../../../platform/list/browser/listService.js';
|
||||
import { getListStyles } from '../../../../platform/theme/browser/defaultStyles.js';
|
||||
import { editorBackground, focusBorder } from '../../../../platform/theme/common/colorRegistry.js';
|
||||
import { IWorkbenchEnvironmentService } from '../../../services/environment/common/environmentService.js';
|
||||
import { settingsHeaderForeground, settingsHeaderHoverForeground } from '../common/settingsEditorColorRegistry.js';
|
||||
import { SettingsTreeFilter } from './settingsTree.js';
|
||||
import { ISettingsEditorViewState, SearchResultModel, SettingsTreeElement, SettingsTreeGroupElement, SettingsTreeSettingElement } from './settingsTreeModels.js';
|
||||
import { settingsHeaderForeground, settingsHeaderHoverForeground } from '../common/settingsEditorColorRegistry.js';
|
||||
import { IWorkbenchEnvironmentService } from '../../../services/environment/common/environmentService.js';
|
||||
|
||||
const $ = DOM.$;
|
||||
|
||||
@@ -132,7 +131,7 @@ export class TOCRenderer implements ITreeRenderer<SettingsTreeGroupElement, neve
|
||||
const label = element.label;
|
||||
|
||||
template.labelElement.textContent = label;
|
||||
template.elementDisposables.add(this._hoverService.setupManagedHover(getDefaultHoverDelegate('mouse'), template.labelElement, label));
|
||||
template.elementDisposables.add(this._hoverService.setupDelayedHover(template.labelElement, { content: label }));
|
||||
|
||||
if (count) {
|
||||
template.countElement.textContent = ` (${count})`;
|
||||
|
||||
Reference in New Issue
Block a user