| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- /*---------------------------------------------------------------------------------------------
- * Copyright (c) Microsoft Corporation. All rights reserved.
- * Licensed under the MIT License. See License.txt in the project root for license information.
- *--------------------------------------------------------------------------------------------*/
- import { Disposable } from '../../../../base/common/lifecycle.js';
- import { registerEditorContribution } from '../../../browser/editorExtensions.js';
- import { Range } from '../../../common/core/range.js';
- import { ColorDecorationInjectedTextMarker } from './colorDetector.js';
- import { ColorHoverParticipant } from './colorHoverParticipant.js';
- import { ModesHoverController } from '../../hover/browser/hover.js';
- import { HoverParticipantRegistry } from '../../hover/browser/hoverTypes.js';
- export class ColorContribution extends Disposable {
- constructor(_editor) {
- super();
- this._editor = _editor;
- this._register(_editor.onMouseDown((e) => this.onMouseDown(e)));
- }
- dispose() {
- super.dispose();
- }
- onMouseDown(mouseEvent) {
- const target = mouseEvent.target;
- if (target.type !== 6 /* MouseTargetType.CONTENT_TEXT */) {
- return;
- }
- if (!target.detail.injectedText) {
- return;
- }
- if (target.detail.injectedText.options.attachedData !== ColorDecorationInjectedTextMarker) {
- return;
- }
- if (!target.range) {
- return;
- }
- const hoverController = this._editor.getContribution(ModesHoverController.ID);
- if (!hoverController) {
- return;
- }
- if (!hoverController.isColorPickerVisible()) {
- const range = new Range(target.range.startLineNumber, target.range.startColumn + 1, target.range.endLineNumber, target.range.endColumn + 1);
- hoverController.showContentHover(range, 1 /* HoverStartMode.Immediate */, false);
- }
- }
- }
- ColorContribution.ID = 'editor.contrib.colorContribution'; // ms
- registerEditorContribution(ColorContribution.ID, ColorContribution);
- HoverParticipantRegistry.register(ColorHoverParticipant);
|