Skip to content

Commit

Permalink
Improves inline completion accessibility. Adresses #176501 (#177082)
Browse files Browse the repository at this point in the history
  • Loading branch information
hediet committed Mar 14, 2023
1 parent 384b03f commit b7df1f8
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -255,7 +255,6 @@ export class ShowNextInlineSuggestionAction extends EditorAction {
const controller = GhostTextController.get(editor);
if (controller) {
controller.showNextInlineCompletion();
editor.focus();
}
}
}
Expand All @@ -279,7 +278,6 @@ export class ShowPreviousInlineSuggestionAction extends EditorAction {
const controller = GhostTextController.get(editor);
if (controller) {
controller.showPreviousInlineCompletion();
editor.focus();
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
*--------------------------------------------------------------------------------------------*/

import * as dom from 'vs/base/browser/dom';
import { Event } from 'vs/base/common/event';
import { MarkdownString } from 'vs/base/common/htmlContent';
import { Disposable, DisposableStore, IDisposable } from 'vs/base/common/lifecycle';
import { ICodeEditor, IEditorMouseEvent, MouseTargetType } from 'vs/editor/browser/editorBrowser';
Expand Down Expand Up @@ -148,7 +149,7 @@ export class InlineCompletionsHoverParticipant implements IEditorHoverParticipan
private renderScreenReaderText(context: IEditorHoverRenderContext, part: InlineCompletionsHover, disposableStore: DisposableStore) {
const $ = dom.$;
const markdownHoverElement = $('div.hover-row.markdown-hover');
const hoverContentsElement = dom.append(markdownHoverElement, $('div.hover-contents'));
const hoverContentsElement = dom.append(markdownHoverElement, $('div.hover-contents', { ['aria-live']: 'assertive' }));
const renderer = disposableStore.add(new MarkdownRenderer({ editor: this._editor }, this._languageService, this._openerService));
const render = (code: string) => {
disposableStore.add(renderer.onDidRenderAsync(() => {
Expand All @@ -161,11 +162,17 @@ export class InlineCompletionsHoverParticipant implements IEditorHoverParticipan
hoverContentsElement.replaceChildren(renderedContents.element);
};

const ghostText = part.controller.activeModel?.inlineCompletionsModel?.ghostText;
if (ghostText) {
const lineText = this._editor.getModel()!.getLineContent(ghostText.lineNumber);
render(ghostText.renderForScreenReader(lineText));
}
disposableStore.add(Event.runAndSubscribe<void>(e => part.onDidChange(e), () => {
const ghostText = part.controller.activeModel?.inlineCompletionsModel?.ghostText;
if (ghostText) {
const lineText = this._editor.getModel()!.getLineContent(ghostText.lineNumber);
render(ghostText.renderForScreenReader(lineText));
} else {
dom.reset(hoverContentsElement);
}
}));


context.fragment.appendChild(markdownHoverElement);
}
}

0 comments on commit b7df1f8

Please sign in to comment.