# `gradio_highlightedcode` A variant of the Code component that supports highlighting lines of code. ## Installation ```bash pip install gradio_highlightedcode ``` ## Usage ```python import time import gradio as gr from gradio_highlightedcode import HighlightedCode example = HighlightedCode().example_inputs() initial_value = """import random def scramble_name(name): name_list = list(name) """ completion = """ random.shuffle(name_list) return ''.join(name_list) # Example usage: print(scramble_name("Python")) """ def generate_code(): for i in range(len(completion)): time.sleep(0.03) yield HighlightedCode(initial_value + completion[:i], highlights=[(5, "rgb(255 254 213)")]) with gr.Blocks() as demo: code = HighlightedCode(initial_value, language="python") btn = gr.Button("Generate", variant="primary") btn.click(generate_code, outputs=code) if __name__ == "__main__": demo.launch() ``` ## `HighlightedCode` ### Initialization
name | type | default | description |
---|---|---|---|
value |
```python str | tuple[str] | None ``` | None |
Default value to show in the code editor. If callable, the function will be called whenever the app loads to set the initial value of the component. |
language |
```python typing.Optional[ typing.Literal[ "python", "markdown", "json", "html", "css", "javascript", "typescript", "yaml", "dockerfile", "shell", "r", ] ][ "python" | "markdown" | "json" | "html" | "css" | "javascript" | "typescript" | "yaml" | "dockerfile" | "shell" | "r", None, ] ``` | None |
The language to display the code as. Supported languages listed in `gr.Code.languages`. |
highlights |
```python list[tuple[int, str]] | None ``` | None |
A list of tuples indicating lines to highlight. The first element of the tuple is the starting line number (1-indexed) and the second element is the highlight color (as a CSS hex string). The highlights are applied in order, with later highlights taking precedence over earlier ones. |
every |
```python float | None ``` | None |
If `value` is a callable, run the function 'every' number of seconds while the client connection is open. Has no effect otherwise. The event can be accessed (e.g. to cancel it) via this component's .load_event attribute. |
lines |
```python int ``` | 5 |
None |
label |
```python str | None ``` | None |
The label for this component. Appears above the component and is also used as the header if there are a table of examples for this component. If None and used in a `gr.Interface`, the label will be the name of the parameter this component is assigned to. |
interactive |
```python bool | None ``` | None |
Whether user should be able to enter code or only view it. |
show_label |
```python bool | None ``` | None |
if True, will display label. |
container |
```python bool ``` | True |
If True, will place the component in a container - providing some extra padding around the border. |
scale |
```python int | None ``` | None |
relative width compared to adjacent Components in a Row. For example, if Component A has scale=2, and Component B has scale=1, A will be twice as wide as B. Should be an integer. |
min_width |
```python int ``` | 160 |
minimum pixel width, will wrap if not sufficient screen space to satisfy this value. If a certain scale value results in this Component being narrower than min_width, the min_width parameter will be respected first. |
visible |
```python bool ``` | True |
If False, component will be hidden. |
elem_id |
```python str | None ``` | None |
An optional string that is assigned as the id of this component in the HTML DOM. Can be used for targeting CSS styles. |
elem_classes |
```python list[str] | str | None ``` | None |
An optional list of strings that are assigned as the classes of this component in the HTML DOM. Can be used for targeting CSS styles. |
render |
```python bool ``` | True |
If False, component will not render be rendered in the Blocks context. Should be used if the intention is to assign event listeners now but render the component later. |