# TextBox | Basalt
A UI Framework made for CC:Tweaked

Skip to content

# TextBox ​

A multi-line text editor component with cursor support and text manipulation features

Extends: `VisualElement`

## Properties ​

Property | Type | Default | Description
--- | --- | --- | ---
lines | table | {} | Array of text lines
cursorX | number | 1 | Cursor X position
cursorY | number | 1 | Cursor Y position (line number)
scrollX | number | 0 | Horizontal scroll offset
scrollY | number | 0 | Vertical scroll offset
editable | boolean | true | Whether text can be edited
syntaxPatterns | table | {} | Syntax highlighting patterns
cursorColor | number | nil | Color of the cursor

## Functions ​

Method | Returns | Description
--- | --- | ---
TextBox:addSyntaxPattern | TextBox | Adds a new syntax highlighting pattern
TextBox:removeSyntaxPattern | TextBox | Removes a syntax pattern by index (1-based)
TextBox:clearSyntaxPatterns | TextBox | Clears all syntax highlighting patterns
TextBox:updateViewport | TextBox | Updates the viewport to keep the cursor in view
TextBox:setText | TextBox | Sets the text of the TextBox
TextBox:getText | string | Gets the text of the TextBox

## TextBox:addSyntaxPattern(pattern, color) ​

Adds a new syntax highlighting pattern

### Parameters ​

- `pattern` `string` The regex pattern to match
- `color` `number` The color to apply

### Returns ​

- `TextBox` `self` The TextBox instance

## TextBox:removeSyntaxPattern(index) ​

Removes a syntax pattern by index (1-based)

### Parameters ​

- `index` `number` The index of the pattern to remove

### Returns ​

- `TextBox` self

## TextBox:clearSyntaxPatterns() ​

Clears all syntax highlighting patterns

### Returns ​

- `TextBox` self

## TextBox:updateViewport() ​

Updates the viewport to keep the cursor in view

### Returns ​

- `TextBox` `self` The TextBox instance

## TextBox:setText(text) ​

Sets the text of the TextBox

### Parameters ​

- `text` `string` The text to set

### Returns ​

- `TextBox` `self` The TextBox instance

## TextBox:getText() ​

Gets the text of the TextBox

### Returns ​

- `string` `text` The text of the TextBox