summaryrefslogtreecommitdiffstats
path: root/linenoise/linenoise.h
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2017-06-16 23:14:50 -0700
committerKaz Kylheku <kaz@kylheku.com>2017-06-16 23:14:50 -0700
commit5da101a52afd8d99f7ede8ef8fbf61afbd52cb02 (patch)
treee663431bf9b64cfe714241cc69fdbf2a880b38a9 /linenoise/linenoise.h
parent308a431b217b39cdd636a7424579e74f8e1ee7ff (diff)
downloadtxr-5da101a52afd8d99f7ede8ef8fbf61afbd52cb02.tar.gz
txr-5da101a52afd8d99f7ede8ef8fbf61afbd52cb02.tar.bz2
txr-5da101a52afd8d99f7ede8ef8fbf61afbd52cb02.zip
linenoise: callback for checking syntax completeness.
The idea is that when the user types Enter to submit a line, it can be checked whether it is complete syntax using a callback. If the callback indicates that the syntax is incomplete (there are open expressions, string literals or whatever), then Enter is inserted verbatim. This is active in multi-line mode only. * linenoise.c (struct lino_state): New members, enter_callback and ce_ctx. (lino_set_enter_cb): New function. (edit): If enter is issued, and multi-line mode is in effect, and there is an enter callback, then call it. If the callback returns false, then just insert the character. * linenoise.h (lino_enter_cb_t): New typedef. (lino_set_enter_cb): Declared.
Diffstat (limited to 'linenoise/linenoise.h')
-rw-r--r--linenoise/linenoise.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/linenoise/linenoise.h b/linenoise/linenoise.h
index 28b304a4..b07b15ea 100644
--- a/linenoise/linenoise.h
+++ b/linenoise/linenoise.h
@@ -80,3 +80,6 @@ int lino_get_noninteractive(lino_t *);
typedef char *lino_atom_cb_t(lino_t *, const char *line, int n, void *ctx);
void lino_set_atom_cb(lino_t *, lino_atom_cb_t *, void *ctx);
+
+typedef int lino_enter_cb_t(const char *line, void *ctx);
+void lino_set_enter_cb(lino_t *, lino_enter_cb_t *, void *ctx);