[插件分享] Oh My GitHub

GitHub - jiacai2050/oh-my-github: Oh My GitHub is a delightful, open source tool for managing your GitHub repositories

特点

  • 支持本地存储,只需要在第一次使用时进行网络同步
  • 支持搜索,关键字 or 语言
  • 核心用 GNU99 C 编写,通过 valgrind/ASAN 检测,可作为使用 C 开发 Emacs 动态模块的参考
15 个赞

重新命名下了,之前 stars 格局太小了。

Oh My GitHub is delightful, open source tool for managing your GitHub repositories

发布了 v0.2.0

后续打算把 gist 也加上。

3 个赞

经过一周开发,0.3.0 版本终于算是达到比较满意的地步了。

  • 一共包含 5 个 mode,除了最基本的 stars/owned 仓库列表,增加了 releases/commits 两个 mode,查询当前仓库的最新 release 与 commit
  • 在 releases mode 中,又有一个 assets mode,方便下载本次发布的文件

更多使用截图参考:

emacs安装这个太复杂了,建议模仿 libegit的处理方式。

  • 把 .el文件直接放在主目录下,不需要额外手动添加到load-path
  • 使用make命令直接生成dylib,不要去release下载+加入load-path

将能尤其方便自动化。比如使用borg管理的话只需要加一行build-step即可,供参考

感谢,很中肯的建议。

  • Emacs 相关文件还是放在 emacs 目录内好些,当初的设计理念是 core 部分可以被不同前端使用,Emacs 只是前端之一
  • make 命令其实有,只是没写出来,已经更新到文档上了

期待cli。

make[1]: Entering directory '/Users/ray/.config/emacs'
Initializing drones...done (184 drones in 0.221s)
 Creating /Users/ray/.config/emacs/lib/oh-my-github/emacs/oh-my-github-autoloads.el...

Error: error ("omg-dyn.dylib:0:0: error: scan-error: (Containing expression ends prematurely 82277 82278)")
  debug-early-backtrace()
  debug-early(error (error "omg-dyn.dylib:0:0: error: scan-error: (Containing expression ends prematurely 82277 82278)"))
  error("%s:0:0: error: %s: %s" "omg-dyn.dylib" scan-error ("Containing expression ends prematurely" 82277 82278))
  autoload-generate-file-autoloads("omg-dyn.dylib" nil "/Users/ray/.config/emacs/lib/oh-my-github/emacs/oh-my-github-autoloads.el")
  make-directory-autoloads(("/Users/ray/.config/emacs/lib/oh-my-github/emacs/") "/Users/ray/.config/emacs/lib/oh-my-github/emacs/oh-my-github-autoloads.el")
  borg-update-autoloads("oh-my-github" ("/Users/ray/.config/emacs/lib/oh-my-github/emacs/"))
  borg--build-noninteractive("oh-my-github")
  borg-build("oh-my-github")
  command-line-1(("--eval" "(require 'comp nil t)" "--load" "subr-x" "--eval" "(setq byte-compile-warnings '(not docstrings))" "--eval" "(fset 'original-message (symbol-function 'message))" "--eval" "(fset 'message (lambda (format &rest args) (unless (or (equal format \"pcase-memoize: equal first branch, yet different\") (equal format \"Not registering prefix \\\"%s\\\" from %s.  Affects: %S\") (and (stringp (car args)) (string-match-p \"Scraping files for\" (car args)))) (apply 'original-message format args))))" "-L" "lib/borg/" "--load" "borg" "--funcall" "borg-initialize" "--eval" "(borg-build \"oh-my-github\")"))
  command-line()
  normal-top-level()
omg-dyn.dylib:0:0: error: scan-error: (Containing expression ends prematurely 82277 82278)
make[1]: *** [lib/borg/borg.mk:98: lib/oh-my-github] Error 255
make[1]: Leaving directory '/Users/ray/.config/emacs'
make: *** [Makefile:25: build-update] Error 2
[1]    87022 exit 2     make build-update

已经加入load-path后,生成autoload和elc时报错。

看报错是生成的 dylib 大小为0,可以检查下。

还有你是什么环境下?是 m1嘛?

total 248K
-rwxr-xr-x 1 ray staff  25K 22-04-23 12:16 emacs-module.h
-rw-r--r-- 1 ray staff  20K 22-04-23 12:16 emacs.c
-rw-r--r-- 1 ray staff  66K 22-04-23 12:17 emacs.o
-rw-r--r-- 1 ray staff  18K 22-04-23 12:16 oh-my-github.el
-rwxr-xr-x 1 ray staff 111K 22-04-23 12:35 omg-dyn.dylib

不是,我是先运行过了make emacs-dyn的,只是普通macbook,不是m1

那你把操作方式发下,我看看能否复现

#1 add submodule
git submodule add --name oh-my-github -- https://github.com/jiacai2050/oh-my-github.git 
 lib/oh-my-github

#2 add load-path in .gitmodules
[submodule "oh-my-github"]
     path = lib/oh-my-github
     url = https://github.com/jiacai2050/oh-my-github.git
     load-path = emacs

#3 generate dynamic module
cd lib/oh-my-github 
make emacs-dyn

#4 back to .emacs.d && generate autoload and elc in borg
cd ~/.emacs.d 
make lib/oh-my-github

我这边能够复现,搜了下是动态模块共有的问题,邮件列表有讨论过,但是没有解法,我在想想办法。

BTW:我看生成的 autoloads 没有问题,这个报错按说不影响使用。你可以试试

好的,我试试。

已经修复了,回来再找找根因。感觉是 Emacs 没处理好 dylib 的读取。

确实,解决了。libegit也是用的.so,应该是同样的考虑。期待gist,gist.el 早已经年久失修了。

嗯, roadmap 里还有 trending 与 gist 这两个。不过可能没那么快……

新加了一个 commit,利用多线程机制来同步仓库(需要 Emacs 28 版本),这样 Emacs 就不会再卡住了。:beer:

发布 0.5.0,支持访问 trending repositories,即 Trending repositories on GitHub today · GitHub

3 个赞

把 C 的使用心得整理成文章了,供对 C 感兴趣的同学参考。

4 个赞
  • 支持了 gist
1 个赞