LINUX.ORG.RU

История изменений

Исправление Nervous, (текущая версия) :

Как отдебажить?

Можно развернуть макрос и посмотреть, что на самом деле будет происходить: поставить курсор перед открывающей скобкой формы и M-x emacs-lisp-macroexpand. Для первого вызова use-package получается что-то вроде

(progn
  (straight-use-package 'python)
  (defvar use-package--warning85
    #'(lambda
        (keyword err)
        (let
            ((msg
              (format "%s/%s: %s" 'python keyword
                      (error-message-string err))))
          (display-warning 'use-package msg :error))))
  (condition-case-unless-debug err
      (progn
        (unless
            (fboundp 'eglot-ensure)
          (autoload #'eglot-ensure "python" nil t))
        (unless
            (fboundp 'company-mode)
          (autoload #'company-mode "python" nil t))
        (unless
            (fboundp 'python-ts-mode)
          (autoload #'python-ts-mode "python" nil t))
        (add-hook 'python-ts-mode-hook #'eglot-ensure)
        (add-hook 'python-ts-mode-hook #'company-mode)
        (add-to-list 'auto-mode-alist
                     '("\\.py\\'" . python-ts-mode)))
    (error
     (funcall use-package--warning85 :catch err))))

Хуки добавляются оба, догадку с alist можно исключить.

(По M-. на символе функции/макроса можно провалиться в его определение, почитать докстринг. По M-, вернуться обратно. Конечно, документацию на всё, что угодно, можно получить по C-h, но это больше клавиш клацать.)

Исправление Nervous, :

Как отдебажить?

Можно развернуть макрос и посмотреть, что на самом деле будет происходить: поставить курсор перед открывающей скобкой формы и M-x emacs-lisp-macroexpand. Для первого вызова use-package получается что-то вроде

(progn
  (straight-use-package 'python)
  (defvar use-package--warning85
    #'(lambda
        (keyword err)
        (let
            ((msg
              (format "%s/%s: %s" 'python keyword
                      (error-message-string err))))
          (display-warning 'use-package msg :error))))
  (condition-case-unless-debug err
      (progn
        (unless
            (fboundp 'eglot-ensure)
          (autoload #'eglot-ensure "python" nil t))
        (unless
            (fboundp 'company-mode)
          (autoload #'company-mode "python" nil t))
        (unless
            (fboundp 'python-ts-mode)
          (autoload #'python-ts-mode "python" nil t))
        (add-hook 'python-ts-mode-hook #'eglot-ensure)
        (add-hook 'python-ts-mode-hook #'company-mode)
        (add-to-list 'auto-mode-alist
                     '("\\.py\\'" . python-ts-mode)))
    (error
     (funcall use-package--warning85 :catch err))))

Хуки добавляются оба, догадку с alist можно исключить.

(По M-. на символе функции/макроса можно провалиться в его определение, почитать докстринг. По M-, вернуться обратно.)

Исправление Nervous, :

Как отдебажить?

Можно развернуть макрос и посмотреть, что на самом деле будет происходить: поставить курсор перед открывающей скобкой формы и M-x emacs-lisp-macroexpand. Для первого вызова use-package получается что-то вроде

(progn
  (straight-use-package 'python)
  (defvar use-package--warning85
    #'(lambda
        (keyword err)
        (let
            ((msg
              (format "%s/%s: %s" 'python keyword
                      (error-message-string err))))
          (display-warning 'use-package msg :error))))
  (condition-case-unless-debug err
      (progn
        (unless
            (fboundp 'eglot-ensure)
          (autoload #'eglot-ensure "python" nil t))
        (unless
            (fboundp 'company-mode)
          (autoload #'company-mode "python" nil t))
        (unless
            (fboundp 'python-ts-mode)
          (autoload #'python-ts-mode "python" nil t))
        (add-hook 'python-ts-mode-hook #'eglot-ensure)
        (add-hook 'python-ts-mode-hook #'company-mode)
        (add-to-list 'auto-mode-alist
                     '("\\.py\\'" . python-ts-mode)))
    (error
     (funcall use-package--warning85 :catch err))))

Хуки добавляются оба, догадку с alist можно исключить.

Исходная версия Nervous, :

Как отдебажить?

Можно развернуть макрос и посмотреть, что на самом деле будет происходить: поставить курсор перед открывающей скобкой формы и M-x emacs-lisp-macroexpand. Для первого вызова use-package получается что-то вроде

(progn
  (straight-use-package 'python)
  (defvar use-package--warning85
    #'(lambda
        (keyword err)
        (let
            ((msg
              (format "%s/%s: %s" 'python keyword
                      (error-message-string err))))
          (display-warning 'use-package msg :error))))
  (condition-case-unless-debug err
      (progn
        (unless
            (fboundp 'eglot-ensure)
          (autoload #'eglot-ensure "python" nil t))
        (unless
            (fboundp 'company-mode)
          (autoload #'company-mode "python" nil t))
        (unless
            (fboundp 'python-ts-mode)
          (autoload #'python-ts-mode "python" nil t))
        (add-hook 'python-ts-mode-hook #'eglot-ensure)
        (add-hook 'python-ts-mode-hook #'company-mode)
        (add-to-list 'auto-mode-alist
                     '("\\.py\\'" . python-ts-mode)))
    (error
     (funcall use-package--warning85 :catch err))))

Хуки добавляются оба, догадку с alist можно исключить.