特点
- 支持本地存储,只需要在第一次使用时进行网络同步
- 支持搜索,关键字 or 语言
- 核心用 GNU99 C 编写,通过 valgrind/ASAN 检测,可作为使用 C 开发 Emacs 动态模块的参考
重新命名下了,之前 stars 格局太小了。
Oh My GitHub is delightful, open source tool for managing your GitHub repositories
发布了 v0.2.0
后续打算把 gist 也加上。
经过一周开发,0.3.0 版本终于算是达到比较满意的地步了。
更多使用截图参考:
emacs安装这个太复杂了,建议模仿 libegit的处理方式。
将能尤其方便自动化。比如使用borg管理的话只需要加一行build-step即可,供参考
感谢,很中肯的建议。
期待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 的读取。
嗯, roadmap 里还有 trending 与 gist 这两个。不过可能没那么快……
新加了一个 commit,利用多线程机制来同步仓库(需要 Emacs 28 版本),这样 Emacs 就不会再卡住了。
把 C 的使用心得整理成文章了,供对 C 感兴趣的同学参考。