Skip to content

Commit

Permalink
add omg_repo_star interactive method
Browse files Browse the repository at this point in the history
  • Loading branch information
jiacai2050 committed Nov 27, 2022
1 parent f72ee8c commit ae5184f
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 13 deletions.
17 changes: 17 additions & 0 deletions emacs/emacs.c
Original file line number Diff line number Diff line change
Expand Up @@ -310,6 +310,20 @@ emacs_value omg_dyn_unstar_repo(emacs_env *env, ptrdiff_t nargs,
return Qt;
}

emacs_value omg_dyn_star_repo(emacs_env *env, ptrdiff_t nargs,
emacs_value *args, void *data) {
ENSURE_SETUP(env);
omg_auto_char repo_full_name = get_string(env, args[0]);
ENSURE_NONLOCAL_EXIT(env);

omg_error err = omg_star_repo(ctx, repo_full_name);
if (!is_ok(err)) {
return lisp_funcall(env, "error", lisp_string(env, (char *)err.message));
}

return Qt;
}

emacs_value omg_dyn_delete_gist(emacs_env *env, ptrdiff_t nargs,
emacs_value *args, void *data) {
ENSURE_SETUP(env);
Expand Down Expand Up @@ -771,6 +785,9 @@ int emacs_module_init(runtime ert) {
lisp_funcall(env, "fset", lisp_symbol(env, "omg-dyn-unstar-repo"),
env->make_function(env, 1, 1, omg_dyn_unstar_repo,
"Unstar repository", NULL));
lisp_funcall(env, "fset", lisp_symbol(env, "omg-dyn-star-repo"),
env->make_function(env, 1, 1, omg_dyn_star_repo,
"Star repository", NULL));

lisp_funcall(
env, "fset", lisp_symbol(env, "omg-dyn-delete-gist"),
Expand Down
21 changes: 13 additions & 8 deletions emacs/omg-repo.el
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,12 @@
(tabulated-list-print t)
(switch-to-buffer (current-buffer))))

(defun omg-repo-star (full-name)
"Star repository at point."
(interactive (list (omg-repo--get-full-name)))
(omg-dyn-star-repo full-name)
(message "Starred %s" full-name))

(defun omg-repo--revert (&optional revert)
(setq omg-repo--query-keyword "")
(setq omg-repo--query-language ""))
Expand All @@ -102,6 +108,7 @@
(define-key map (kbd "b") 'omg-repo-browse)
(define-key map (kbd "w") 'omg-repo-copy-url)
(define-key map (kbd "s") 'omg-repo-query-repos)
(define-key map (kbd "S") 'omg-repo-star)
(define-key map (kbd "r") 'omg-repo-query-releases)
(define-key map (kbd "RET") 'omg-repo-query-commits)
(define-key map (kbd "s-u") 'tabulated-list-revert)
Expand All @@ -111,15 +118,13 @@
(define-derived-mode omg-repo-mode tabulated-list-mode "omg-repo created repos" "Manage created repositories"
(omg-repo--init-repos-tabulated-list 'omg-repo--query-created))

(defun omg-repo-unstar ()
(defun omg-repo-unstar (full-name)
"Unstar repository at point."
(interactive)
(if-let ((full-name (omg-repo--get-full-name)))
(when (yes-or-no-p (format "Are you really want to unstar %s?" full-name))
(omg-dyn-unstar-repo (string-to-number (tabulated-list-get-id)))
(tabulated-list-delete-entry)
(message "Unstarred %s" full-name))
(user-error "There is no repository at point")))
(interactive (list (omg-repo--get-full-name)))
(when (yes-or-no-p (format "Are you really want to unstar %s?" full-name))
(omg-dyn-unstar-repo (string-to-number (tabulated-list-get-id)))
(tabulated-list-delete-entry)
(message "Unstarred %s" full-name)))

(defvar omg-repo-starred-mode-map
(let ((map (make-sparse-keymap)))
Expand Down
2 changes: 1 addition & 1 deletion tests/build.zig
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ pub fn build(b: *std.build.Builder) void {
exe.addCSourceFile("../core/omg.c", &[_][]const u8{
"-std=gnu99",
"-DOMG_TEST",
"-DVERBOSE",
// "-DVERBOSE",
});
exe.linkSystemLibrary("sqlite3");
exe.linkSystemLibrary("libcurl");
Expand Down
8 changes: 4 additions & 4 deletions tests/main.zig
Original file line number Diff line number Diff line change
Expand Up @@ -142,9 +142,9 @@ pub fn main() anyerror!void {
defer clib.omg_free_context(&ctx);
defer fs.deleteFileAbsolute(db_path[0..std.mem.len(db_path)]) catch {};

// try test_download(ctx);
// try test_created_repos(ctx);
// try test_created_gists(ctx);
// try test_create_pull(ctx);
try test_download(ctx);
try test_created_repos(ctx);
try test_created_gists(ctx);
try test_create_pull(ctx);
try test_star_repo(ctx);
}

0 comments on commit ae5184f

Please sign in to comment.