add TextEditorSelectionChangeKind when emitting selection change event, #8093
This commit is contained in:
parent
ed3b90a809
commit
ed26ad524e
23
src/vs/vscode.d.ts
vendored
23
src/vs/vscode.d.ts
vendored
|
@ -505,6 +505,24 @@ declare namespace vscode {
|
|||
isReversed: boolean;
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents sources that can cause [selection change events](#window.onDidChangeTextEditorSelection).
|
||||
*/
|
||||
export enum TextEditorSelectionChangeKind {
|
||||
/**
|
||||
* Selection changed due to typing in the editor.
|
||||
*/
|
||||
Keyboard = 1,
|
||||
/**
|
||||
* Selection change due to clicking in the editor.
|
||||
*/
|
||||
Mouse = 2,
|
||||
/**
|
||||
* Selection changed because a command ran.
|
||||
*/
|
||||
Command = 3
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents an event describing the change in a [text editor's selections](#TextEditor.selections).
|
||||
*/
|
||||
|
@ -513,6 +531,11 @@ declare namespace vscode {
|
|||
* The [text editor](#TextEditor) for which the selections have changed.
|
||||
*/
|
||||
textEditor: TextEditor;
|
||||
/**
|
||||
* The [change kind](#TextEditorSelectionChangeKind) which has triggered this
|
||||
* event. Can be `undefined`.
|
||||
*/
|
||||
kind: TextEditorSelectionChangeKind;
|
||||
/**
|
||||
* The new value for the [text editor's selections](#TextEditor.selections).
|
||||
*/
|
||||
|
|
|
@ -11,7 +11,7 @@ import Event, {Emitter} from 'vs/base/common/event';
|
|||
import {TPromise} from 'vs/base/common/winjs.base';
|
||||
import {IThreadService} from 'vs/workbench/services/thread/common/threadService';
|
||||
import {ExtHostDocuments, ExtHostDocumentData} from 'vs/workbench/api/node/extHostDocuments';
|
||||
import {Selection, Range, Position, EditorOptions, EndOfLine, TextEditorRevealType} from './extHostTypes';
|
||||
import {Selection, Range, Position, EditorOptions, EndOfLine, TextEditorRevealType, TextEditorSelectionChangeKind} from './extHostTypes';
|
||||
import {ISingleEditOperation} from 'vs/editor/common/editorCommon';
|
||||
import {IResolvedTextEditorConfiguration, ISelectionChangeEvent} from 'vs/workbench/api/node/mainThreadEditorsTracker';
|
||||
import * as TypeConverters from './extHostTypeConverters';
|
||||
|
@ -103,12 +103,14 @@ export class ExtHostEditors extends ExtHostEditorsShape {
|
|||
}
|
||||
|
||||
$acceptSelectionsChanged(id: string, event: ISelectionChangeEvent): void {
|
||||
let selections = event.selections.map(TypeConverters.toSelection);
|
||||
let editor = this._editors[id];
|
||||
editor._acceptSelections(selections);
|
||||
const kind = TextEditorSelectionChangeKind.fromValue(event.source);
|
||||
const selections = event.selections.map(TypeConverters.toSelection);
|
||||
const textEditor = this._editors[id];
|
||||
textEditor._acceptSelections(selections);
|
||||
this._onDidChangeTextEditorSelection.fire({
|
||||
textEditor: editor,
|
||||
selections: selections
|
||||
textEditor,
|
||||
selections,
|
||||
kind
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -829,6 +829,22 @@ export enum TextEditorRevealType {
|
|||
InCenterIfOutsideViewport = 2
|
||||
}
|
||||
|
||||
export enum TextEditorSelectionChangeKind {
|
||||
Keyboard = 1,
|
||||
Mouse = 2,
|
||||
Command = 3
|
||||
}
|
||||
|
||||
export namespace TextEditorSelectionChangeKind {
|
||||
export function fromValue(s: string) {
|
||||
switch (s) {
|
||||
case 'keyboard': return TextEditorSelectionChangeKind.Keyboard;
|
||||
case 'mouse': return TextEditorSelectionChangeKind.Mouse;
|
||||
case 'api': return TextEditorSelectionChangeKind.Command;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export class DocumentLink {
|
||||
|
||||
range: Range;
|
||||
|
|
Loading…
Reference in a new issue