La réponse de @ Doug est un peu dépassée et il se concentre sur l'expansion du code en utilisant des extraits de code prédéfinis.
Je pense que la question de l'OP concerne l'intellisense (nom de méthode de remplissage automatique d'une classe, par exemple).
hippie expand était populaire, l'analyseur de syntaxe est des balises emacs . Il prend donc en charge toutes les langues prises en charge par ctags (y compris C ++ , Java). Mais le résultat n'est pas parfait car ctags n'utilise que l'expression régulière pour analyser le code. Voir mon init-hippie-expand.el pour plus de détails. Vous pouvez commencer par vérifier la valeur dehippie-expand-try-functions-list
l'auto-complétion est moderne avec une interface utilisateur sophistiquée (menu déroulant, même dans la fenêtre de la console). Si vous utilisez clang comme backend. L'intellisense est bien meilleur. Pour faire fonctionner le clang, vous devez installer auto-complete-clang qui est le plugin de l'auto-complétion. Il ne prend en charge que les langages pris en charge (C / C ++ / Obj-C). Comme l'a souligné Sylvain Benner , vous pouvez utiliser emacs-eclim comme back-end d'analyse Java qui appelle en fait l'exécutable d'eclipse. La saisie semi-automatique peut donc prendre en charge java. Voir mon init-auto-complete.el pour plus de détails.
sémantique fournit à la fois l'interface utilisateur et le moteur d'analyse arrière. C'est lent. L'interface utilisateur déroulante est OK mais nécessite une fenêtre X. Le résultat intellisense est meilleur que ctags. Et la documenation est trop geek pour moi. Voir init-semantic.el pour plus de détails.
le mode entreprise est similaire à la saisie semi-automatique, la différence est qu'il regroupe tout en un seul paquet. Par exemple, les développeurs C ++ ont uniquement besoin d'installer le mode entreprise (la saisie automatique nécessite un plugin tiers). Une autre différence d'interface est que la société affichera automatiquement le candidat . Vous appuyez donc moins sur les touches en compagnie. Il est possible de faire la même chose en auto-complétion après personnalisation.
En résumé, la saisie semi-automatique, les entreprises sont les deux choix les plus populaires. Sémantique et hippie-expand sont également les bienvenus mais moins utilisés. D'autres sont trop insignifiants pour être mentionnés et leurs caractéristiques sont déjà couvertes par les quatre grands. Par exemple, la saisie semi-automatique peut utiliser yasnippet comme source d'entrée (la saisie semi-automatique fournit l'interface utilisateur, mais les candidats réels sont produits par le back-end yasnippet).
Je suggère d'utiliser l'auto-complétion ou la société comme plugin majeur de complétion de code et soit sémantique soit hippie-expand comme plugin complémentaire .
J'utilise le mode entreprise et hippie-expand parce que,
Maintenant (année 2017), le mode entreprise est plus activement maintenu que l'auto-complétion et a plus de plugins tiers (par exemple, plugin latex)
hippie-expand n'est pas très actif mais n'occupe pas la TAB
clé que le mode entreprise / sémantique / auto-complétion utilise
Si vous utilisez le mode entreprise pour C ++ / Java, vous souhaiterez peut-être modifier company-backends
.
Quelques conseils supplémentaires sur le mode entreprise,
Vous devrez peut-être modifier la valeur de company-backends
. Par exemple, supposons que sa valeur soit (company-eclim company-semantic company-clang (company-dabbrev-code company-gtags company-etags company-keywords))
. Ensuite, si company-eclim
peut obtenir des candidats non nuls, company
pense que vous écrivez java, donc il ne fonctionnera PAS après company-eclim
.
Voyons maintenant (company-dabbrev-code company-gtags company-etags company-keywords)
. Tous ces quatre backends seront utilisés ensemble. Par exemple, même après company-dabbrev-code
avoir récupéré avec succès des candidats non nuls, les trois autres backends sont toujours exécutés.
Dans le monde réel, il est souvent nécessaire de réajuster l'ordre des backends ou d'ajouter un nouveau backend ( company-rtags
par exemple).
complete.el
essayer la bibliothèque standard . Il est très ancien et peu connu, mais le type d'achèvement dans le tampon qu'il fournit peut être utile.M-x find-library complete
, puis lisez le commentaire dans le dossier.