Skip to content

Latest commit

 

History

History
145 lines (95 loc) · 4.76 KB

api.md

File metadata and controls

145 lines (95 loc) · 4.76 KB

Scinterm API Documentation

A curses platform for Scintilla that supports curses platforms like ncurses.

scintilla_delete(sci)

Deletes the given Scintilla window.

Parameters:

  • sci: The Scintilla window returned by scintilla_new().

Returns: void

scintilla_get_clipboard(sci, len)

Returns a null-terminated copy of the text on Scintilla's internal clipboard (not the primary and/or secondary X selections) and stores its length in len.

The caller is responsible for freeing the returned text. Keep in mind clipboard text may contain null bytes.

Parameters:

  • sci: The Scintilla window returned by scintilla_new().
  • len: (int *) The length of the returned text.

Returns: char * clipboard text (caller is responsible for freeing it)

scintilla_get_window(sci)

Returns the curses WINDOW associated with the given Scintilla window.

Parameters:

  • sci: The Scintilla window returned by scintilla_new().

Returns: curses WINDOW.

scintilla_new(callback, userdata)

Creates a new Scintilla curses window.

Parameters:

  • callback: SCNotification callback function of the form: void callback(Scintilla *, int, void *, void *).
  • userdata: (void *) Userdata to pass to callback.

Returns: Scintilla *

scintilla_noutrefresh(sci)

Refreshes the Scintilla window on the virtual screen.

This should be done along with the normal curses noutrefresh(). Note: the terminal cursor may be hidden if Scintilla thinks this window has focus (e.g. SCI_SETFOCUS) and Scintilla's caret is out of view. If another non-Scintilla window has the real focus, call curs_set(1) in order to show the terminal cursor for that window.

Parameters:

  • sci: The Scintilla window returned by scintilla_new().

scintilla_refresh(sci)

Refreshes the Scintilla window on the physical screen.

This should be done along with the normal curses refresh(). Note: the terminal cursor may be hidden if Scintilla thinks this window has focus (e.g. SCI_SETFOCUS) and Scintilla's caret is out of view. If another non-Scintilla window has the real focus, call curs_set(1) in order to show the terminal cursor for that window.

Parameters:

  • sci: The Scintilla window returned by scintilla_new().

Returns: void

scintilla_send_key(sci, key, modifiers)

Sends the specified key to the given Scintilla window for processing.

If it is not consumed, an SCNotification will be emitted.

Parameters:

  • sci: The Scintilla window returned by scintilla_new().
  • key: (int) The keycode of the key, or, if Scintilla's code page is UTF-8, the UTF-8 code point of the key.
  • modifiers: (int) Bit-mask of SCMOD_* modifier keys.

Returns: void

scintilla_send_message(sci, iMessage, wParam, lParam)

Sends the given message with parameters to the given Scintilla window.

Parameters:

  • sci: The Scintilla window returned by scintilla_new().
  • iMessage: (int) The Scintilla message ID.
  • wParam: (uptr_t) The first parameter.
  • lParam: (sptr_t) The second parameter.

Returns: sptr_t

scintilla_send_mouse(sci, event, button, modifiers, y, x)

Sends the specified mouse event to the given Scintilla window for processing.

Parameters:

  • sci: The Scintilla window returned by scintilla_new().
  • event: (int) The mouse event (SCM_CLICK, SCM_DRAG, or SCM_RELEASE).
  • button: (int) The button number pressed, or 0 if none.
  • modifiers: (int) Bit-mask of SCMOD_* modifier keys.
  • y: (int) The absolute y coordinate of the mouse event.
  • x: (int) The absolute x coordinate of the mouse event.

Returns: bool whether or not Scintilla handled the mouse event.

scintilla_update_cursor(sci)

Updates the curses window cursor for the Scintilla window so the terminal draws the cursor in the correct position.

This only needs to be called when scintilla_refresh() or scintilla_noutrefresh() is not the last curses draw command issued (for any window, not just the Scintilla window). Note: the terminal cursor may be hidden if Scintilla thinks this window has focus (e.g. SCI_SETFOCUS) and Scintilla's caret is out of view. If another non-Scintilla window has the real focus, call curs_set(1) in order to show the terminal cursor for that window.

Parameters:

  • sci: The Scintilla window returned by scintilla_new().

Returns: void