Round 213: Forge - Magit GitHub/GitLab integration (20 commands)
ober
5cc7bb894d29c091fd287acd5845345cdeb2fd6a
--- a/docs/jemacs-vs-emacs.md +++ b/docs/jemacs-vs-emacs.md @@ -4583,6 +4583,31 @@ No remaining Tier 1 gaps. All core editing, completion, and navigation features | ebib-import-file | :orange_circle: | Import file into Ebib | | ebib-push-citation | :orange_circle: | Push Ebib citation to buffer | +### Round 213 — Forge (Magit GitHub/GitLab) + +| Command | Status | Description | +|---------|--------|-------------| +| forge-list-pullreqs | :orange_circle: | List pull requests | +| forge-list-issues | :orange_circle: | List issues | +| forge-list-notifications | :orange_circle: | List notifications | +| forge-list-repositories | :orange_circle: | List repositories | +| forge-list-topics | :orange_circle: | List topics | +| forge-pull-pullreq | :orange_circle: | Pull PR data from remote | +| forge-pull-topic | :orange_circle: | Pull topic data from remote | +| forge-create-pullreq | :orange_circle: | Create new pull request | +| forge-create-issue | :orange_circle: | Create new issue | +| forge-create-post | :orange_circle: | Create new post/comment | +| forge-edit-post | :orange_circle: | Edit post/comment | +| forge-delete-post | :orange_circle: | Delete post/comment | +| forge-merge | :orange_circle: | Merge pull request | +| forge-fork | :orange_circle: | Fork repository | +| forge-browse-pullreq | :orange_circle: | Browse PR in browser | +| forge-browse-issue | :orange_circle: | Browse issue in browser | +| forge-browse-commit | :orange_circle: | Browse commit in browser | +| forge-browse-remote | :orange_circle: | Browse remote in browser | +| forge-copy-url-at-point | :orange_circle: | Copy URL at point | +| forge-visit-pullreq | :orange_circle: | Visit pull request | + ### Round 212 — Evil extensions | Command | Status | Description | --- a/src/jerboa-emacs/editor-extra-final.ss +++ b/src/jerboa-emacs/editor-extra-final.ss @@ -18814,3 +18814,45 @@ (def (cmd-evil-quick-diff-cancel app) (let* ((echo (app-state-echo app))) (echo-message! echo "Evil: cancelled quick diff"))) + +;;; Round 213 — Forge (batch 2) + +(def (cmd-forge-edit-post app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Forge: editing post"))) + +(def (cmd-forge-delete-post app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Forge: deleted post"))) + +(def (cmd-forge-merge app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Forge: merging pull request"))) + +(def (cmd-forge-fork app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Forge: forking repository"))) + +(def (cmd-forge-browse-pullreq app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Forge: browsing pull request in browser"))) + +(def (cmd-forge-browse-issue app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Forge: browsing issue in browser"))) + +(def (cmd-forge-browse-commit app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Forge: browsing commit in browser"))) + +(def (cmd-forge-browse-remote app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Forge: browsing remote in browser"))) + +(def (cmd-forge-copy-url-at-point app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Forge: copied URL at point"))) + +(def (cmd-forge-visit-pullreq app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Forge: visiting pull request"))) --- a/src/jerboa-emacs/editor-extra-modes.ss +++ b/src/jerboa-emacs/editor-extra-modes.ss @@ -19431,3 +19431,49 @@ (echo-read-string echo "Chars: " (lambda (chs) (echo-message! echo (str "Evil: owl goto 2-char " chs)))))) + +;;; Round 213 — Forge (batch 1) + +(def (cmd-forge-list-pullreqs app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Forge: listing pull requests"))) + +(def (cmd-forge-list-issues app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Forge: listing issues"))) + +(def (cmd-forge-list-notifications app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Forge: listing notifications"))) + +(def (cmd-forge-list-repositories app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Forge: listing repositories"))) + +(def (cmd-forge-list-topics app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Forge: listing topics"))) + +(def (cmd-forge-pull-pullreq app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Forge: pulling pull request data"))) + +(def (cmd-forge-pull-topic app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Forge: pulling topic data"))) + +(def (cmd-forge-create-pullreq app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "PR title: " + (lambda (title) + (echo-message! echo (str "Forge: creating PR: " title)))))) + +(def (cmd-forge-create-issue app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Issue title: " + (lambda (title) + (echo-message! echo (str "Forge: creating issue: " title)))))) + +(def (cmd-forge-create-post app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Forge: creating new post"))) --- a/src/jerboa-emacs/editor-extra-regs2.ss +++ b/src/jerboa-emacs/editor-extra-regs2.ss @@ -5906,4 +5906,25 @@ (register-command! 'evil-indent-plus-indent-up cmd-evil-indent-plus-indent-up) (register-command! 'evil-quick-diff cmd-evil-quick-diff) (register-command! 'evil-quick-diff-cancel cmd-evil-quick-diff-cancel) + ;; Round 213 + (register-command! 'forge-list-pullreqs cmd-forge-list-pullreqs) + (register-command! 'forge-list-issues cmd-forge-list-issues) + (register-command! 'forge-list-notifications cmd-forge-list-notifications) + (register-command! 'forge-list-repositories cmd-forge-list-repositories) + (register-command! 'forge-list-topics cmd-forge-list-topics) + (register-command! 'forge-pull-pullreq cmd-forge-pull-pullreq) + (register-command! 'forge-pull-topic cmd-forge-pull-topic) + (register-command! 'forge-create-pullreq cmd-forge-create-pullreq) + (register-command! 'forge-create-issue cmd-forge-create-issue) + (register-command! 'forge-create-post cmd-forge-create-post) + (register-command! 'forge-edit-post cmd-forge-edit-post) + (register-command! 'forge-delete-post cmd-forge-delete-post) + (register-command! 'forge-merge cmd-forge-merge) + (register-command! 'forge-fork cmd-forge-fork) + (register-command! 'forge-browse-pullreq cmd-forge-browse-pullreq) + (register-command! 'forge-browse-issue cmd-forge-browse-issue) + (register-command! 'forge-browse-commit cmd-forge-browse-commit) + (register-command! 'forge-browse-remote cmd-forge-browse-remote) + (register-command! 'forge-copy-url-at-point cmd-forge-copy-url-at-point) + (register-command! 'forge-visit-pullreq cmd-forge-visit-pullreq) )