2024/02/23 更新
パッケージマネージャー straight.el でダウンロードしたパッケージを最新にする方法をちゃんと説明しているサイト(本家github含む)がみあたらないので記事にしたいと思います。
以下を .emacs または init.el に書いてありますが(抜粋)、c-quick パッケージの github リポジトリが更新されても自動的に最新のコードがロードされないのでいろいろ調べたり試行錯誤した結果・・・
(1) M-x straight-pull-all
(2) M-x straight-rebuild-all
(3) Emacs を再起動
の手順で最新のコードがロードできました。
また、時短のため特定のパッケージだけ最新化したい場合は・・・
(1) M-x straight-pull-package RET とし「c-quick」(例えば)を入力後 RET
(2) M-x straight-rebuild-package RET とし「c-quick」(例えば)を入力後 RET
(3) Emacs を再起動
の手順で c-quick の最新のコードがロードできました。
自作のパッケージを github 経由等でインストール・テストしている場合に役立つと思います。
(枯れたパッケージ等は更新(最新化)しなくても、あまり問題ないことが多いとはおもいますが)
ちなみに、stack overflow 等では M-x straight-pull-all または M-x straight-pull-package RET としパッケージ名を入力後、再起動で自動的にリビルドされるように書いてあったりしますが・・・少なくとも私がためしたところではリビルドを明示的に実行しないと:
- ~/.emacs.d/straight/repos/【パッケージ名】・・・は最新の .el が格納されるが
- ~/.emacs.d/straight/build/【パッケージ名】・・・は最新の .el が格納されない
という現象を確認しています。なので straight.el でダウンロードしたパッケージを最新化するには「プル&リビルド」が必要になると理解しています。そもそも「プル」しないといけないと知らなかった方、「プル」してもどうも最新化されないと思っていた方・・・「リビルド」してみてください(~/.emacs.d/straight/build/【パッケージ名】配下のソースを確認してみてください)。
それでは!
(defvar bootstrap-version)
(let ((bootstrap-file
(expand-file-name "straight/repos/straight.el/bootstrap.el" user-emacs-directory))
(bootstrap-version 6))
(unless (file-exists-p bootstrap-file)
(with-current-buffer
(url-retrieve-synchronously
"https://raw.githubusercontent.com/radian-software/straight.el/develop/install.el"
'silent 'inhibit-cookies)
(goto-char (point-max))
(eval-print-last-sexp)))
(load bootstrap-file nil 'nomessage))
;; c-quick
(straight-use-package '(c-quick :type git :host github :repo "emacs-pkg/c-quick"))
(require 'c-quick)
;; company
(straight-use-package 'company)
(require 'company)
(setq company-idle-delay 0) ; デフォルトは0.5
(setq company-minimum-prefix-length 1) ; デフォルトは4
(setq company-selection-wrap-around nil) ; 候補の一番下でさらに下に行こうとすると一番上に戻る
(add-hook 'emacs-lisp-mode-hook '(lambda () (company-mode 1)))
(add-hook 'lisp-interaction-mode-hook '(lambda () (company-mode 1)))
(add-hook 'lisp-mode-hook '(lambda () (company-mode 1)))
c-quick パッケージは以下の記事で説明しています。
よろしくお願いいたします。