Danh sách phụ trợ công ty tốt nhất


8

Tôi biết đây không phải là loại câu hỏi hay nhất cho stack ... nhưng tôi không thể nghĩ đến một nơi khác có thể tiếp xúc đủ.

Vì vậy, tôi thực sự thích chế độ công ty, nhưng đôi khi thật khó chịu khi phải tự chuyển sang phần phụ trợ tiếp theo (công ty cố gắng rất khó ở đây). Tôi đã bắt đầu chơi xung quanh với các phụ trợ được nhóm lại và tôi có thể thấy một số tiềm năng tuyệt vời. Thật không may, tôi không hài lòng với bất cứ điều gì tôi đã thử cho đến nay. Tôi nghĩ rằng điều này có thể được thiết lập tốt hơn với móc cho các chế độ khác nhau. Có ai có một số danh sách phụ trợ công ty thú vị mà tôi có thể lấy cảm hứng từ?

Tôi chủ yếu sử dụng python (elpy), javascript (js3-mode), web (chế độ web) và shell script nếu điều đó có ích.

Câu trả lời:


13

Bạn có thể đặt mặc định company-backends, sau đó sử dụng hook để nối các phụ trợ khác nhau vào chế độ khác nhau. Đây là một cách tôi cấu hình trong emacs của tôi.

;; set default `company-backends'
(setq company-backends
      '((company-files          ; files & directory
         company-keywords       ; keywords
         company-capf
         company-yasnippet
         )
        (company-abbrev company-dabbrev)
        ))

(add-hook 'python-mode-hook
          (lambda ()
            (add-to-list (make-local-variable 'company-backends)
                         'company-anaconda)))
(dolist (hook '(js-mode-hook
                js2-mode-hook
                js3-mode-hook
                inferior-js-mode-hook
                ))
  (add-hook hook
            (lambda ()
              (tern-mode t)

              (add-to-list (make-local-variable 'company-backends)
                           'company-tern)
              )))

;;;_. company-mode support like auto-complete in web-mode

;; Enable CSS completion between <style>...</style>
(defadvice company-css (before web-mode-set-up-ac-sources activate)
  "Set CSS completion based on current language before running `company-css'."
  (if (equal major-mode 'web-mode)
      (let ((web-mode-cur-language (web-mode-language-at-pos)))
        (if (string= web-mode-cur-language "css")
            (unless css-mode (css-mode))))))

;; Enable JavaScript completion between <script>...</script> etc.
(defadvice company-tern (before web-mode-set-up-ac-sources activate)
  "Set `tern-mode' based on current language before running `company-tern'."
  (if (equal major-mode 'web-mode)
      (let ((web-mode-cur-language (web-mode-language-at-pos)))
        (if (or (string= web-mode-cur-language "javascript")
               (string= web-mode-cur-language "jsx"))
            (unless tern-mode (tern-mode))
          ;; (if tern-mode (tern-mode))
          ))))
  • đối với chế độ web, bạn cũng có thể sử dụng gói 'company-web'.
  • hoặc shell script, có các gói khác hỗ trợ hoàn thành, bạn có thể tìm kiếm nó.

Thật sự cảm ơn! Điều này đã giúp rất nhiều. Tôi đã tinh chỉnh nó một chút vì tôi thích sử dụng elpy-company-backendvà tôi thích company-yasnippetshợp nhất với các phụ trợ hoàn thành mã khác. Một điều tôi không thể tìm ra là làm thế nào để có được css-modetern-modetắt khi không có trong các thẻ tương ứng của họ.
aiguofer

1
Ngoài ra, câu hỏi bạn nộp cũng khá hữu ích.
aiguofer

Tốt bạn có thể tìm thấy điều đó. grad nó có thể giúp bạn.
stardiviner
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.