Raxol.Terminal.Clipboard (Raxol v0.5.0)

View Source

Provides a high-level interface for clipboard operations.

This module offers a unified API for clipboard operations across different terminal environments. It supports:

  • Copying content to clipboard
  • Pasting content from clipboard
  • Clearing clipboard contents
  • Multiple clipboard formats

Clipboard Formats

The module supports different clipboard formats:

  • "text" - Plain text (default)
  • "html" - HTML content
  • "rtf" - Rich Text Format
  • Custom formats as needed

Usage

# Copy text to clipboard
Clipboard.copy("Hello, World!")

# Copy HTML content
Clipboard.copy("<b>Hello</b>", "html")

# Paste from clipboard
{:ok, content} = Clipboard.paste()

# Clear clipboard
Clipboard.clear()

Summary

Functions

Clears the clipboard contents.

Copies content to the clipboard.

Pastes content from the clipboard.

Functions

clear()

@spec clear() :: :ok

Clears the clipboard contents.

Returns

  • :ok - Clipboard cleared successfully

Examples

iex> Clipboard.copy("Hello, World!")
iex> Clipboard.clear()
iex> Clipboard.paste()
{:error, :empty_clipboard}

copy(content, format \\ "text")

@spec copy(String.t(), String.t()) :: :ok

Copies content to the clipboard.

Parameters

  • content - The content to copy
  • format - The clipboard format (default: "text")

Returns

  • :ok - Content copied successfully

Examples

iex> Clipboard.copy("Hello, World!")
:ok

iex> Clipboard.copy("<b>Hello</b>", "html")
:ok

paste(format \\ "text")

@spec paste(String.t()) :: {:ok, String.t()} | {:error, :empty_clipboard}

Pastes content from the clipboard.

Parameters

  • format - The clipboard format to paste (default: "text")

Returns

  • {:ok, content} - Content pasted successfully
  • {:error, :empty_clipboard} - Clipboard is empty

Examples

iex> Clipboard.copy("Hello, World!")
iex> Clipboard.paste()
{:ok, "Hello, World!"}

iex> Clipboard.clear()
iex> Clipboard.paste()
{:error, :empty_clipboard}