Điều này tương tự với câu hỏi này nhưng câu trả lời dường như bị phản đối.
Giả sử tôi đang sử dụng một lớp và muốn hack mã của một gói cụ thể mà lớp đó đang sử dụng. Làm thế nào để tôi đi về nó?
Để minh họa rõ hơn những gì tôi muốn đạt được nói chung, tôi trình bày một ví dụ cụ thể.
Tôi cố gắng để spotify
lớp hoạt động, nhưng master
nhánh hiện tại trong helm-spotify
gói sử dụng API web không dùng nữa. Có một yêu cầu kéo để sửa lỗi này và tôi muốn thử nó và có thể đóng góp một cái gì đó. Vấn đề của tôi là, tôi không thể helm-spotify
tải bản sao cục bộ để tải.
Những gì tôi đã cố gắng là chuyển sang develop
chi nhánh của spacemacs
:
git branch --track develop origin/develop
git checkout develop
Trong ~/.emacs.d/layers/spotify/packages.el
Tôi đã thay đổi từ
(setq spotify-packages '(spotify helm-spotify))
Đến
(setq spotify-packages
'(
spotify
(helm-spotify :location local)
))
Và kéo helm-spotify
kho lưu trữ đến~/.emacs.d/layers/spotify/local/helm-spotify
Khi tôi khởi động lại spacemacs, tôi nhận được
File error: Cannot open load file, no such file or directory, multi
Trong khi tôi nhìn vào helm-spotify.el
đó là:
(require 'multi)
Vì vậy, dự đoán của tôi là, khi cài đặt helm-spotify
từ melpa
phụ thuộc vào multi
được giải quyết trước khi tải helm-spotify
nhưng tất nhiên không còn nữa khi tôi sử dụng bản sao cục bộ helm-spotify
.
Vì vậy, câu hỏi của tôi là :
- Làm thế nào để giải quyết các phụ thuộc khi sử dụng một gói địa phương?
- Hay tôi nên làm điều này hoàn toàn khác với những gì tôi mô tả?
Tôi cũng đã cố gắng, nhưng không thành công, để thêm multi
vào dotspacemacs-additional-packages
và để spotify-packages
:
(setq spotify-packages '(
multi ;; I added this
spotify
(helm-spotify :location local) ;; I modified here
))
;; I added this
(defun spotify/init-multi ()
(use-package multi))
;; the rest is as it was
(defun spotify/init-spotify ()
(use-package spotify
:config (spacemacs/set-leader-keys
"amsp" 'spotify-playpause
"amsn" 'spotify-next
"amsN" 'spotify-previous
"amsQ" 'spotify-quit)))
(when (configuration-layer/layer-usedp 'spacemacs-helm)
(defun spotify/init-helm-spotify ()
(use-package helm-spotify
:config (spacemacs/set-leader-keys
"amsg" 'helm-spotify))))
trong packages.el
. Cũng đã thử mà không cần thêm multi
vào dotspacemacs-additional-packages
.
recipe
thay vì local
. ví dụ(helm-spotify :location (recipe <recipe specs>))
multi
vào dotspacemacs-additional-packages
mà không thành công. Lỗi là như nhau. Tôi đã cập nhật câu hỏi của mình để phản ánh việc packages.el
tôi đang sử dụng. Cảm ơn nỗ lực của bạn!
recipe
thay vì local
(nó sẽ quan tâm đến sự phụ thuộc đa dạng cho bạn), hoặc chuyển multi
cấu hình sang một lớp riêng và đảm bảo rằng lớp đó được liệt kê trước spotify
trong dotspacemacs-configuration-layers
(danh sách lớp)
package.el
(mô-đun Emacs tích hợp) không thực sự được xemlocal/helm-spotify
là một gói. Cách để giải quyết nó là thủ công và bạn đang đi đúng hướng. Bạn có thể thêm chi tiết cách bạn đã cố gắng để thêmmulti
? Không rõ nếu bạn thêm nó vàoadditional-packages
vàspotify-packages
cùng một lúc, hoặc thử riêng chúng. Cómulti
trongspotify-packages
và mộtspotify/init-multi
hàm trongpackages.el
(không sử dụngadditional-packages
) nên là đủ