manateelazycat / lsp-bridge

A blazingly fast LSP client for Emacs
GNU General Public License v3.0
1.35k stars 197 forks source link

python 缩进问题 #975

Closed nigo81 closed 1 week ago

nigo81 commented 1 week ago

在python中按tab进行缩进时,不能正确按层级缩进。如,示例代码:

for i in range(100):
    if i == 50:
        print(i)
    if i == 90:
        print('hello')

,当选择for循环后面的行,按i,按tab后进行缩进,缩进后的代码为:

    for i in range(100):
        if i == 50:
            print(i)
            if i == 90:
                print('hello')

第二个if会多缩进一个层级。这个问题困扰我很久了,请问可以怎么解决呢?我的lsp-bridge和python的配置如下:

(use-package python-mode
  :ensure t
  :mode ("\\.py\\'" . python-mode)
  :custom
  ;; NOTE: Set these if Python 3 is called "python3" on your system!
  (python-shell-interpreter "python3")
  (dap-python-executable "python3")
  (dap-python-debugger 'debugpy)
)

(add-to-list 'load-path "~/.emacs.d/site-lisp/lsp-bridge")

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

(require 'lsp-bridge)
(global-lsp-bridge-mode)
(setq lsp-bridge-default-mode-hooks
        (remove 'org-mode-hook lsp-bridge-default-mode-hooks))
(evil-define-key 'normal lsp-bridge-mode-map (kbd "g d") 'lsp-bridge-find-def)
(evil-define-key 'normal lsp-bridge-mode-map (kbd "g u") 'lsp-bridge-find-def-return)
(evil-define-key 'normal lsp-bridge-mode-map (kbd "g D") 'lsp-bridge-find-def-other-window)
(evil-define-key 'normal lsp-bridge-mode-map (kbd "g r") 'lsp-bridge-popup-documentation)
(evil-define-key 'normal lsp-bridge-mode-map (kbd "SPC r n") 'lsp-bridge-rename)
(evil-define-key 'normal lsp-bridge-mode-map (kbd "SPC r f") 'lsp-bridge-code-format)
(evil-define-key 'normal lsp-bridge-mode-map (kbd "SPC r l") 'lsp-bridge-diagnostic-list)
(evil-define-key 'normal lsp-bridge-mode-map (kbd "[ q") 'lsp-bridge-diagnostic-jump-prev)
(evil-define-key 'normal lsp-bridge-mode-map (kbd "] q") 'lsp-bridge-diagnostic-jump-next)
(define-key acm-mode-map (kbd "RET") nil)
(define-key acm-mode-map (kbd "C-j") nil)
(define-key evil-insert-state-map (kbd "C-n") nil)
(define-key evil-insert-state-map (kbd "C-p") nil)
(evil-define-key 'insert acm-mode-map (kbd "C-n") 'acm-select-next)
(evil-define-key 'insert acm-mode-map (kbd "C-p") 'acm-select-prev)
(with-eval-after-load 'lsp-bridge
  (setq-default 
   ;; acm-enable-codeium t
   acm-enable-quick-access t
   ;; acm-backend-lsp-candidate-min-length 3
   acm-backend-yas-candidate-min-length 3
   ))
(setq lsp-bridge-python-lsp-server "pylsp")

emacs版本29.3 , 操作系统macOS 14.4.1 23E224 arm64

manateelazycat commented 1 week ago

Python 的缩进要自己控制, lsp-bridge 并不能解决Python这种空格缩进的语言