caption: tm-edit-text-operation
created: 20160424211339792
modified: 20160424230944519
tags: Messages
title: WidgetMessage: tm-edit-text-operation
type: text/vnd.tiddlywiki
\define exciseDescription()
Excises the currently selected text into a new tiddler and replaces it with a link, a macro or a transclude of the new tiddler. Parameters include:
|!Name |!Description |
|title |Title of the new tiddler the selected content is excised to|
|type |Type of the replacement to be inserted: Can be one of <<.value "transclude">>, <<.value "link">> or <<.value "macro">>|
|macro |In case //type=<<.value "macro">>//, specifies the name of the macro to be inserted. The title of the new tiddler is provided as the first parameter to the macro. Defaults to the ''translink'' macro|
|tagnew |If '<<.value "yes">>', will tag the new tiddler with the title of the tiddler currently being edited |
\end
\define undoDescription()
Undoes the last action in the editor. Has no additional parameters.
<<.tip "This directly uses the underlying `execCommand` browser method provided by a document in design mode.">>
\end
\define redoDescription()
Redoes the last action to be undone in the editor. Has no additional parameters.
<<.tip "This directly uses the underlying `execCommand` browser method provided by a document in design mode.">>
\end
\define replaceAllDescription()
Replaces ''all'' contents of the editor with the provided text.
|!Name |!Description |
|text |Text to be inserted|
\end
\define replaceSelectionDescription()
Replaces the current selection with the provided text.
|!Name |!Description |
|text |Text to be inserted|
\end
\define prefixLinesDescription()
Prefixes the currently selected line//(s)// with the provided character. If a line is already prefixed by the provided prefix, the prefix is removed instead.
|!Name |!Description |
|character |Prefix character|
|count |Number of characters that make up the prefix|
''Example'' Setting //character="<<.value "!">>"// and //count="<<.value "3">>"// would insert the prefix "<<.value "!!!" >>", which will resolve to a subheading when parsed as WikiText.
\end
\define wrapLinesDescription()
Surrounds the selected //lines// with the provided <<.param "prefix">> and <<.param "suffix">>.
|!Name |!Description |
|prefix |String to be prefixed to the selected lines|
|suffix |Suffix to be inserted after the selected lines|
\end
\define wrapSelectionDescription()
Surrounds the current //selection// with the provided <<.param "prefix">> and <<.param "suffix">>.
|!Name |!Description |
|prefix |String to be prefixed to the selection|
|suffix |Suffix to be inserted after the selection|
\end
A `tm-edit-text-operation` invokes one of the available operations on a __surrounding__ text editor. Therefore the message has to be dispatched within the editor in order for it to catch it. The following properties on the `event` object are required:
|!Name |!Description |
|param |Name of the operation to be executed, see ''below'' for a list of possible operations |
|paramObject|Hashmap of additional parameters required by the operation top be executed |
The `tm-edit-text-operation` message is usually generated by a ButtonWidget or an ActionWidget and is handled by the surrounding text editor.
! Text Operations
At this point the following text operations have been implemented:
|!Name |!Description |
|<<.def "excise">>|<> |
|<<.def "undo">>|<> |
|<<.def "redo">>|<> |
|<<.def "replace-all">>|<> |
|<<.def "replace-selection">>|<> |
|<<.def "prefix-lines">>|<> |
|<<.def "wrap-lines">>|<> |
|<<.def "wrap-selection">>|<> |
!Example
An example can be seen in [[$:/core/ui/EditorToolbar/bold]]:
```
<$action-sendmessage
$message="tm-edit-text-operation"
$param="wrap-selection"
prefix="''"
suffix="''"
/>
```