Le migliori liste di back-end aziendali


9

So che questo non è il miglior tipo di domanda per lo stack ... ma non riesco a pensare a un altro posto in cui potrebbe essere abbastanza esposto.

Quindi mi piace molto la modalità azienda, ma a volte è fastidioso dover passare manualmente al prossimo backend (la società prova qui è utile qui). Ho iniziato a giocare con backend raggruppati e posso vedere un potenziale eccezionale. Sfortunatamente, non sono contento di qualcosa che ho provato finora. Penso che questo potrebbe essere meglio impostato con ganci per diverse modalità. Qualcuno ha alcune liste di back-end aziendali interessanti da cui potrei trarre ispirazione?

Uso principalmente python (elpy), javascript (js3-mode), web (web-mode) e script di shell se questo aiuta.

Risposte:


14

È possibile impostare un valore predefinito company-backends, quindi utilizzare hook per aggiungere diversi backend a modalità diversa. Ecco un modo in cui configuro i miei 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))
          ))))
  • per la modalità web, puoi anche usare il pacchetto `company-web '.
  • o shell script, ci sono altri pacchetti che supportano il completamento, puoi cercarlo.

Fantastico grazie! questo ha aiutato molto. L'ho modificato un po 'poiché mi piace usare elpy-company-backende mi piace company-yasnippetsunirmi ad altri backend di completamento del codice. L'unica cosa che non riesco a capire è come ottenere css-modee tern-modedisattivare quando non nei rispettivi tag.
aiguofer,

1
Inoltre, la domanda che hai presentato è stata anche molto utile.
aiguofer,

Bene, puoi trovarlo. grad può aiutarti.
Stardiviner,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.