ze
Loading...
Searching...
No Matches
plugins.h
Go to the documentation of this file.
1
8#pragma once
9
10#include "ze.h"
11#include <libguile.h>
12
13void initKeyBindings(void);
14void loadPlugins(void);
15SCM scmBindKey(SCM keySpec, SCM proc);
16int pluginsHandleKey(unsigned char code);
17void editorExec(void);
18
19/* Scheme bindings exposed to plugin authors */
20SCM scmBufferToString(void);
21SCM scmBufferLineCount(void);
22SCM scmGetLine(SCM idx_scm);
23SCM scmSetLine(SCM idx_scm, SCM str_scm);
24SCM scmInsertLine(SCM idx_scm, SCM str_scm);
25SCM scmAppendLine(SCM str_scm);
26SCM scmDeleteLine(SCM idx_scm);
27SCM scmInsertText(SCM str_scm);
28SCM scmInsertChar(SCM ch_scm);
29SCM scmInsertNewline(void);
30SCM scmDeleteChar(void);
31SCM scmGetCursor(void);
32SCM scmSetCursor(SCM x_scm, SCM y_scm);
33SCM scmMoveCursor(SCM dir_scm);
34SCM scmScreenSize(void);
35SCM scmOpenFile(SCM path_scm);
36SCM scmSaveFile(void);
37SCM scmGetFilename(void);
38SCM scmSetFilename(SCM path_scm);
39SCM scmPrompt(SCM msg_scm);
40SCM scmRefreshScreen(void);
41SCM scmSearchForward(SCM query_scm);
42SCM scmSelectSyntaxForFilename(SCM path_scm);
43SCM scmGetFiletype(void);
44SCM scmUnbindKey(SCM keySpec);
45SCM scmListBindings(void);
46SCM scmBufferDirty(void);
47SCM scmSetBufferDirty(SCM bool_scm);
48SCM scmCloneTemplate(void);
49
50SCM pluginsGetHook(const char *name);
51
SCM scmSetBufferDirty(SCM bool_scm)
Mark the current buffer dirty/clean.
Definition plugins.c:651
SCM scmListBindings(void)
List all key bindings.
Definition plugins.c:620
void loadPlugins(void)
Load Scheme plugins from "$HOME/.ze/plugins" (all .scm files).
Definition plugins.c:102
SCM scmInsertNewline(void)
Insert a newline at the cursor position.
Definition plugins.c:366
SCM scmRefreshScreen(void)
Force a screen refresh.
Definition plugins.c:523
SCM scmCloneTemplate(void)
Clone a template into the current buffer (interactive selection).
Definition plugins.c:664
SCM scmScreenSize(void)
Get the editor screen size in rows and columns.
Definition plugins.c:440
SCM scmPrompt(SCM msg_scm)
Prompt the user and return their input.
Definition plugins.c:507
SCM scmInsertChar(SCM ch_scm)
Insert a single character at the cursor.
Definition plugins.c:348
SCM scmDeleteLine(SCM idx_scm)
Delete a line by index.
Definition plugins.c:317
SCM scmGetFilename(void)
Get the current filename, if any.
Definition plugins.c:477
SCM scmSaveFile(void)
Save the current buffer to disk.
Definition plugins.c:466
SCM scmBufferDirty(void)
Check whether the current buffer has unsaved changes.
Definition plugins.c:640
SCM scmInsertText(SCM str_scm)
Insert text at the cursor position, interpreting newlines.
Definition plugins.c:331
SCM pluginsGetHook(const char *name)
Fetch a registered hook by name.
Definition plugins.c:45
SCM scmGetCursor(void)
Get current cursor position.
Definition plugins.c:390
SCM scmDeleteChar(void)
Delete the character to the left of the cursor (backspace).
Definition plugins.c:377
SCM scmSelectSyntaxForFilename(SCM path_scm)
Select syntax based on a filename, without opening the file.
Definition plugins.c:570
SCM scmInsertLine(SCM idx_scm, SCM str_scm)
Insert a new line at index.
Definition plugins.c:286
void editorExec(void)
Prompt for and evaluate a single Scheme expression (mini-REPL).
Definition plugins.c:188
SCM scmGetLine(SCM idx_scm)
Get the contents of a line by index.
Definition plugins.c:254
SCM scmSetLine(SCM idx_scm, SCM str_scm)
Replace the contents of a line.
Definition plugins.c:269
SCM scmUnbindKey(SCM keySpec)
Remove a key binding.
Definition plugins.c:601
SCM scmGetFiletype(void)
Get the current filetype name from syntax highlighting.
Definition plugins.c:587
SCM scmSetCursor(SCM x_scm, SCM y_scm)
Set cursor position, clamped to the current buffer.
Definition plugins.c:404
SCM scmBufferLineCount(void)
Get the number of lines in the current buffer.
Definition plugins.c:243
SCM scmSearchForward(SCM query_scm)
Search forward for a substring and jump to the next match.
Definition plugins.c:537
SCM scmAppendLine(SCM str_scm)
Append a new line at the end of the buffer.
Definition plugins.c:303
SCM scmSetFilename(SCM path_scm)
Set the current filename and reselect syntax highlighting.
Definition plugins.c:489
SCM scmOpenFile(SCM path_scm)
Open a file into the editor.
Definition plugins.c:453
SCM scmMoveCursor(SCM dir_scm)
Move the cursor in a direction.
Definition plugins.c:424
SCM scmBufferToString(void)
Return the entire buffer as a Scheme string.
Definition plugins.c:228
SCM scmBindKey(SCM keySpec, SCM proc)
Bind a key specification to a Scheme procedure.
Definition plugins.c:137
void initKeyBindings(void)
Initialize the in-memory key binding table.
Definition plugins.c:91
int pluginsHandleKey(unsigned char code)
If a Scheme binding exists for the key, invoke it.
Definition plugins.c:78
Core editor types, macros, and global state.