diff options
| author | jixiufeng <jixiufeng@luojilab.com> | 2018-10-25 00:08:23 +0800 |
|---|---|---|
| committer | jixiufeng <jixiufeng@luojilab.com> | 2018-10-25 21:33:44 +0800 |
| commit | a18e037ee61afa5e91e955e26710d068d3ee1f9c (patch) | |
| tree | 95697e12bc66066ee2f57775c4639bd60a065f36 /elisp.c | |
| parent | 319f99f6ecc0babba7257cf9fbd156733dd83f62 (diff) | |
try support scroll
Diffstat (limited to 'elisp.c')
| -rw-r--r-- | elisp.c | 30 |
1 files changed, 30 insertions, 0 deletions
@@ -86,6 +86,35 @@ void goto_char(emacs_env *env, int pos) { env->funcall(env, Fgoto_char, 1, (emacs_value[]){point}); } +void forward_line(emacs_env *env, int n) { + emacs_value nline = env->make_integer(env, n ); + env->funcall(env, Fforward_line, 1, (emacs_value[]){nline}); +} +void goto_line(emacs_env *env, int n) { + emacs_value nline = env->make_integer(env, n ); + env->funcall(env, Fgoto_line, 1, (emacs_value[]){nline}); +} +void delete_lines(emacs_env *env ,int linenum,int count ,bool del_whole_line){ + emacs_value Qlinenum = env->make_integer(env, linenum); + emacs_value Qcount = env->make_integer(env, count); + if(del_whole_line){ + env->funcall(env, Fdelete_lines, 3, (emacs_value[]){Qlinenum,Qcount,Qt}); + }else{ + env->funcall(env, Fdelete_lines, 3, (emacs_value[]){Qlinenum,Qcount,Qnil}); + } +} +void recenter(emacs_env *env, emacs_value pos){ + env->funcall(env, Frecenter, 1, + (emacs_value[]){pos}); +} +void forward_char(emacs_env *env, emacs_value n){ + env->funcall(env, Fforward_char, 1, + (emacs_value[]){n}); +} +emacs_value buffer_line_number(emacs_env *env){ + return env->funcall(env, Fbuffer_line_number, 0, (emacs_value[]){}); +} + void toggle_cursor(emacs_env *env, bool visible) { emacs_value Qvisible = visible ? Qt : Qnil; env->funcall(env, Fset, 2, (emacs_value[]){Qcursor_type, Qvisible}); @@ -100,3 +129,4 @@ emacs_value get_hex_color_bg(emacs_env *env, emacs_value face) { return env->funcall(env, Fvterm_face_color_hex, 2, (emacs_value[]){face, Qbackground}); } + |
