Acelerando o modo da empresa?

10

Eu mudei de texto sublime para o emacs há um tempo e, embora eu ache o emacs muito mais agradável, seu preenchimento automático está realmente com falta de resposta. Fiz uma customização da empresa para que ela tentasse concluir após a digitação de dois caracteres e, portanto, o atraso seria de apenas 0,1s, mas ele não aparece na metade do tempo e, quando isso acontece, não é realmente útil. Alguém já teve sucesso em fazer com que a empresa fosse tão responsiva quanto o sublime / visual studio / eclipse? Qualquer outro IDE realmente.

m0meni
fonte
2
Com qual idioma você está trabalhando?
abo-abo
Você já tentou o preenchimento automático ? Eu personalizo sem problemas, o manual do usuário é realmente abrangente.
Carlo Rodríguez
1
Eu sugiro que você faça um real M-x report-emacs-bugcom receitas reproduzíveis.
11285 Stefan

Respostas:

13

Eu também tive uma má experiência com a empresa no começo, mas na minha configuração eu apenas coloquei essas linhas.

(setq company-dabbrev-downcase 0)
(setq company-idle-delay 0)

A primeira variável é usada para pular a minúscula que a empresa faz para as variáveis ​​que eu preencho automaticamente, a segunda que acho que você já possui.

(defun tab-indent-or-complete ()
  (interactive)
  (if (minibufferp)
      (minibuffer-complete)
    (if (or (not yas-minor-mode)
            (null (do-yas-expand)))
        (if (check-expansion)
            (company-complete-common)
          (indent-for-tab-command)))))

(global-set-key [backtab] 'tab-indent-or-complete)

Além disso, essas linhas são úteis para acionar a conclusão pressionando a tecla desejada.

Sebas
fonte
Aprecie isso, mas eu meio que desliguei o emacs agora: p. Ainda uso as combinações de teclas.
m0meni
4
"(setq company-idle-delay 0)" Não faça isso, você está desperdiçando muitos relógios de CPU dessa maneira.
Dmitry
Recebo "O valor do símbolo como variável é nulo: do-yas-expand" ao usar sua tab-indent-or-completefunção.
precisa saber é o seguinte