mirror of
https://github.com/neovim/neovim.git
synced 2026-04-24 16:25:40 +00:00
Problem: If buffer update callbacks poll for uv events during terminal scrollback refresh, new output from PTY process may lead to incorrect scrollback. Solution: Don't poll for output to the same terminal as the one being refreshed.
28 lines
824 B
C
28 lines
824 B
C
#pragma once
|
|
|
|
#include <stdbool.h>
|
|
#include <stddef.h>
|
|
#include <stdint.h>
|
|
|
|
#include "nvim/api/private/defs.h" // IWYU pragma: keep
|
|
#include "nvim/types_defs.h" // IWYU pragma: keep
|
|
|
|
typedef void (*terminal_read_pause_cb)(bool pause, void *data);
|
|
typedef void (*terminal_write_cb)(const char *buffer, size_t size, void *data);
|
|
typedef void (*terminal_resize_cb)(uint16_t width, uint16_t height, void *data);
|
|
typedef void (*terminal_resume_cb)(void *data);
|
|
typedef void (*terminal_close_cb)(void *data);
|
|
|
|
typedef struct {
|
|
void *data; // PTY process channel
|
|
uint16_t width, height;
|
|
terminal_read_pause_cb read_pause_cb;
|
|
terminal_write_cb write_cb;
|
|
terminal_resize_cb resize_cb;
|
|
terminal_resume_cb resume_cb;
|
|
terminal_close_cb close_cb;
|
|
bool force_crlf;
|
|
} TerminalOptions;
|
|
|
|
#include "terminal.h.generated.h"
|