Skip to main content

Interface: Target

typings/target.types.Target

Implemented by

Properties

contentRange

Readonly contentRange: Range

The range of the content

Defined in

typings/target.types.ts:33


contentSelection

Readonly contentSelection: Selection

The content range and is reversed turned into a selection

Defined in

typings/target.types.ts:114


contentText

Readonly contentText: string

The text contained in the content range

Defined in

typings/target.types.ts:111


editor

Readonly editor: TextEditor

The text editor used for all ranges

Defined in

typings/target.types.ts:27


hasExplicitRange

Readonly hasExplicitRange: boolean

If true, then this target has an explicit range. This attribute is used by "every" to determine whether to return all scopes in the iteration scope or just the ones that overlap with the given target's contentRange.

Most targets have explicit ranges. As of writing this comment, the only targets that don't are as follows:

  • a decorated mark ("air"), or
  • an empty cursor mark ("this" with an empty selection), or
  • an empty "that" mark (eg after saying "chuck air").

For example, when the user says "change every state air", we clear every statement in the function, but "change every state this" with a non-empty selection will only target statements overlapping the cursor.

Defined in

typings/target.types.ts:94


hasExplicitScopeType

Readonly hasExplicitScopeType: boolean

If true, then this target has an explicit scope type, and so should never be automatically expanded to a containing scope.

Examples of targets that have explicit scopes are ScopeTypeTarget (eg "funk"), TokenTarget (eg "token"), etc.

As of writing this comment, the only target type that doesn't have an explicit scope type is UntypedTarget, which can be constructed by

  • using a decorated mark ("air"), or
  • using any cursor mark ("this"), or
  • using a range between decorated marks or cursor marks (eg "past air" or "air past bat"), or
  • using any "that" mark (eg after saying "copy air"), though this final behaviour will change with #466.

The primary consumer of this attribute is ModifyIfUntypedStage, which is used in the following situations to automatically expand to a particular scope type when hasExplicitScopeType is false:

  • To expand to "line" for "pour", "clone", and "breakpoint"
  • To expand to "token" for "leading" and "trailing"
  • To expand to nearest containing pair for "inside", "bounds", and "rewrap"
  • To expand to SnippetVariable.wrapperScopeType for snippet wrapping
  • To expand to Snippet.insertionScopeTypes for snippet insertion

For example, when the user says "pour air", the {@link DecoratedSymbolStage} will return an UntypedTarget, which has hasExplicitScopeType=false, so "pour" will expand to the line containining the air token and insert a newline after it.

Defined in

typings/target.types.ts:75


insertionDelimiter

Readonly insertionDelimiter: string

If this selection has a delimiter use it for inserting before or after the target. For example, new line for a line or paragraph and comma for a list or argument

Defined in

typings/target.types.ts:36


isImplicit

Readonly isImplicit: boolean

If true, this target was not explicitly spoken by the user. For example:

  • The implicit destination in the command "bring air"
  • The implicit anchor in the range "take past air"

Defined in

typings/target.types.ts:105


isLine

Readonly isLine: boolean

If true this target should be treated as a line

Defined in

typings/target.types.ts:39


isNotebookCell

Readonly isNotebookCell: boolean

If true this target is a notebook cell

Defined in

typings/target.types.ts:108


isRaw

Readonly isRaw: boolean

If true this target is a raw selection and its insertion delimiter should not be used on bring action

Defined in

typings/target.types.ts:97


isReversed

Readonly isReversed: boolean

If true active is before anchor

Defined in

typings/target.types.ts:30


thatTarget

Readonly thatTarget: Target

Internal target that should be used for the that mark

Defined in

typings/target.types.ts:117

Methods

constructChangeEdit

constructChangeEdit(text): EditWithRangeUpdater

Constructs change/insertion edit. Adds delimiter before/after if needed

Parameters

NameType
textstring

Returns

EditWithRangeUpdater

Defined in

typings/target.types.ts:137


constructRemovalEdit

constructRemovalEdit(): EditWithRangeUpdater

Constructs removal edit

Returns

EditWithRangeUpdater

Defined in

typings/target.types.ts:139


createContinuousRangeTarget

createContinuousRangeTarget(isReversed, endTarget, includeStart, includeEnd): Target

Parameters

NameType
isReversedboolean
endTargetTarget
includeStartboolean
includeEndboolean

Returns

Target

Defined in

typings/target.types.ts:130


getBoundaryStrict

getBoundaryStrict(): Target[]

Returns

Target[]

Defined in

typings/target.types.ts:120


getEditNewActionType

getEditNewActionType(): EditNewActionType

Returns

EditNewActionType

Defined in

typings/target.types.ts:127


getInteriorStrict

getInteriorStrict(): Target[]

Returns

Target[]

Defined in

typings/target.types.ts:119


getLeadingDelimiterTarget

getLeadingDelimiterTarget(): undefined | Target

The range of the delimiter before the content selection

Returns

undefined | Target

Defined in

typings/target.types.ts:122


getRemovalHighlightRange

getRemovalHighlightRange(): undefined | Range

Returns

undefined | Range

Defined in

typings/target.types.ts:126


getRemovalRange

getRemovalRange(): Range

Returns

Range

Defined in

typings/target.types.ts:125


getTrailingDelimiterTarget

getTrailingDelimiterTarget(): undefined | Target

The range of the delimiter after the content selection

Returns

undefined | Target

Defined in

typings/target.types.ts:124


isEqual

isEqual(target): boolean

Parameters

NameType
targetTarget

Returns

boolean

Defined in

typings/target.types.ts:140


toPositionTarget

toPositionTarget(position): Target

Construct a position target with the given position.

Parameters

NameTypeDescription
positionPositionThe position to use, eg start, end, before, after

Returns

Target

Defined in

typings/target.types.ts:145


withContentRange

withContentRange(contentRange): Target

Parameters

NameType
contentRangeRange

Returns

Target

Defined in

typings/target.types.ts:129


withThatTarget

withThatTarget(thatTarget): Target

Parameters

NameType
thatTargetTarget

Returns

Target

Defined in

typings/target.types.ts:128