twlz0ne / acm-terminal

Patch for LSP bridge acm on Terminal
36 stars 5 forks source link

Which package is acm? #4

Open jgarte opened 1 year ago

jgarte commented 1 year ago

Hi what package does acm come from?

https://github.com/twlz0ne/acm-terminal/blob/master/acm-terminal.el#L58

jgarte commented 1 year ago

Does this cause a circular dependency?

https://github.com/manateelazycat/lsp-bridge/tree/master/acm

twlz0ne commented 1 year ago

Does this cause a circular dependency?

I don't think so.

But there have been breaking changes upstream recently https://github.com/manateelazycat/lsp-bridge/commit/a9b99421382611f99b3ae4bb29e30a2fffcea68e that makes acm-terminal to fail. I'm working on it.

iT-Boyer commented 1 year ago

在doom下配置,编译acm是异常:

(when (package! lsp-bridge :recipe (:host github
                                    :repo "it-boyer/lsp-bridge"
                                    :files ("*.el" "*.py" "acm/*.el" "acm/*.py" "acm/icons/*.svg" "core/*.py" "core/handler/*.py" "langserver/*.json" "multiserver/*.json" "$
  ;; 在终端时,安装
  (unless (display-graphic-p)
    (package! popon
      :recipe (:host nil
               :repo "https://codeberg.org/akib/emacs-popon.git"
               ))

    (package! acm-terminal
      :recipe (:host github                                                                                                                                                                 :repo "twlz0ne/acm-terminal"
               :files ("*.el")))
    )
  )
  > Building acm-terminal...
    x There was an unexpected runtime error
      Message: Could not find package acm. Updating recipe repositories: (org-elpa melpa nongnu-elpa gnu-elpa-mirror el-get emacsmirror-mirror) with ‘straight-pull-recipe-r
epositories’ may fix this
      Backtrace:
        (error "Could not find package %S. Updating recipe repositories: %S with `straight-pull-recipe-repositories' may fix this" acm (org-elpa melpa nongnu-elpa gnu-e...
        (if (straight--package-built-in-p melpa-style-recipe) (throw '--cl-block-straight--convert-recipe-- (list ':type 'built-in ':package (symbol-name melpa-style-re...
        (or (straight-recipes-retrieve melpa-style-recipe nil cause) (if (straight--package-built-in-p melpa-style-recipe) (throw '--cl-block-straight--convert-recipe--...
        (if recipe-specified-p melpa-style-recipe (or (straight-recipes-retrieve melpa-style-recipe nil cause) (if (straight--package-built-in-p melpa-style-recipe) (th...
        (let* ((recipe-specified-p (listp melpa-style-recipe)) (full-melpa-style-recipe (if recipe-specified-p melpa-style-recipe (or (straight-recipes-retrieve melpa-s...
        (or (and (symbolp melpa-style-recipe) (gethash (symbol-name melpa-style-recipe) straight--recipe-cache)) (let* ((recipe-specified-p (listp melpa-style-recipe)) ...
        (catch '--cl-block-straight--convert-recipe-- (if (memq melpa-style-recipe straight-built-in-pseudo-packages) (progn (throw '--cl-block-straight--convert-recipe...
        (straight--convert-recipe acm "Building acm-terminal")
        (let ((recipe (straight--convert-recipe (or (straight--get-overridden-recipe (if (listp melpa-style-recipe) (car melpa-style-recipe) melpa-style-recipe)) melpa-...
        (catch '--cl-block-straight-use-package-- (let ((recipe (straight--convert-recipe (or (straight--get-overridden-recipe (if (listp melpa-style-recipe) (car melpa...
        (straight-use-package acm nil nil "Building acm-terminal")
        (let ((dependency (car --dolist-tail--))) (straight-use-package (intern dependency) nil nil task) (setq --dolist-tail-- (cdr --dolist-tail--)))
twlz0ne commented 1 year ago

@iT-Boyer

  1. 你的代码不完整
  2. 安装 acm-terminal 之前必需确保能找到 acm,我不懂 doom,所以无法给出具体建议。
  3. 不知 doom 是否支持手动加载本地 repo。
twlz0ne commented 1 year ago

@iT-Boyer 删除已经下载文件,然后试试以下配置:

packages.el:

(package! yasnippet)
(when (package! lsp-bridge
                :recipe (:host github
                         :repo "manateelazycat/lsp-bridge"
                         :files ("*.el" "*.py" "acm" "core" "langserver"
                                 "multiserver" "resources")))
  (unless (display-graphic-p)
    (package! popon
              :recipe (:host nil
                       :repo "https://codeberg.org/akib/emacs-popon.git"))

    (package! acm-terminal
              :recipe (:host github
                       :repo "twlz0ne/acm-terminal"
                       :branch "fix-install-error"))))

config.el:

(require 'yasnippet)
(yas-global-mode 1)

(require 'lsp-bridge)
(global-lsp-bridge-mode)

(unless (display-graphic-p)
  (with-eval-after-load 'acm
    (require 'acm-terminal)))
iT-Boyer commented 1 year ago

安装之后出现了启动空白界面: 使用 emacs --debug-init,提示:

Debugger entered--Lisp error: (wrong-number-of-arguments #<subr F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_4> 0)
  #<subr F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_4>()
  acm-frame-color-blend("color-233" "#000000" 0.8)
  acm-terminal-init-colors(t)
  apply(acm-terminal-init-colors t)
  acm-frame-init-colors(t)
  acm-reset-colors(doom-acario-dark t)
  apply(acm-reset-colors (doom-acario-dark t))
  load-theme(doom-acario-dark t)
  (progn (load-theme doom-theme t))
  (if (and doom-theme (not (custom-theme-enabled-p doom-theme))) (progn (load-theme doom-theme t)))
  doom-init-theme-h()
  run-hooks(after-init-hook delayed-warnings-hook)
  command-line()
  normal-top-level()
twlz0ne commented 1 year ago

@iT-Boyer "color-233" 是无效的颜色:

(color-values "color-233") ;; => nil

它是哪里来的?

(let ((force t))
  (if (or force (equal (face-attribute 'acm-frame-default-face :background) 'unspecified))
      (face-attribute 'default :background)
    (face-attribute 'acm-frame-default-face :background)))
;; => "White"            ; emacs -Q
;; => "unspecified-bg"   ; emacs -Q -nw

如果来自 theme,你应该等 theme 加载之后再启动 lsp-bridge。

iT-Boyer commented 1 year ago

确实可以了。谢谢。 在doom 用 使用 after字段,延迟到主题之后加载::after doom-themes

(use-package! lsp-bridge
  :after doom-themes
  :config
  (yas-global-mode 1)
  (setq lsp-bridge-enable-log t)
  (global-lsp-bridge-mode)
  (unless (display-graphic-p)
    (with-eval-after-load 'acm
      (require 'acm-terminal))
    )
)
twlz0ne commented 1 year ago

@iT-Boyer fix-install-error 分支即将删除,请切换到 master