aboutsummaryrefslogtreecommitdiff
path: root/elisp.c
diff options
context:
space:
mode:
authorjixiufeng <jixiufeng@luojilab.com>2018-10-25 00:08:23 +0800
committerjixiufeng <jixiufeng@luojilab.com>2018-10-25 21:33:44 +0800
commita18e037ee61afa5e91e955e26710d068d3ee1f9c (patch)
tree95697e12bc66066ee2f57775c4639bd60a065f36 /elisp.c
parent319f99f6ecc0babba7257cf9fbd156733dd83f62 (diff)
try support scroll
Diffstat (limited to 'elisp.c')
-rw-r--r--elisp.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/elisp.c b/elisp.c
index df71327..1313f06 100644
--- a/elisp.c
+++ b/elisp.c
@@ -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});
}
+