最高の企業バックエンドリスト


8

これがスタックの最良のタイプの質問ではないことはわかっています...しかし、十分な露出が得られる可能性のある別の場所は考えられません。

だから私は本当にcompany-modeが好きですが、次のバックエンドに手動で切り替える必要があるのは面倒です(company-try-hardはここでは便利です)。私はグループ化されたバックエンドをいじり始めました、そしていくつかの素晴らしい可能性を見ることができます。残念ながら、これまでに試したものに満足していません。これは、異なるモードのフックで設定する方が良いと思います。誰かが私からいくつかのインスピレーションを得ることができるいくつかの興味深い会社バックエンドのリストを持っていますか?

私は主にpython(elpy)、javascript(js3-mode)、web(web-mode)、シェルスクリプトを使用します。

回答:


13

デフォルトを設定してcompany-backendsから、フックを使用して異なるバックエンドを異なるモードに追加できます。これが、emacsで設定する方法です。

;; 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))
          ))))
  • Webモードの場合は、「company-web」パッケージも使用できます。
  • またはシェルスクリプト、他のパッケージサポートの完了があります。それを検索できます。

素晴らしいです、ありがとう!これは非常に役に立ちました。私は使用elpy-company-backendが好きでcompany-yasnippets、他のコード補完バックエンドとマージするのが好きなので、少し調整しました。私が理解できないことの1つは、それぞれのタグにない場合に取得css-modetern-modeてオフにする方法です。
aiguofer 2015年

1
また、あなたが提出した質問も非常に役に立ちました。
aiguofer 2015年

あなたはそれを見つけることができます。それはあなたを助けることができる卒業生。
stardiviner 2015年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.