Obtenir l'auto-complétion complète de JS sous Sublime Text

98

Je viens d'installer Sublime Text sous Windows Vista, et même en suivant les conseils donnés dans ce post , à savoir de définir explicitement View > Syntax > JavaScript > JavaScript, je ne vois que des suggestions basées sur ce que j'ai précédemment tapé. J'ai même installé le plug-in SublimeCodeIntel , en vain.

Si je comprends bien, au moment où j'écris "pars", je devrais obtenir les options "parseFloat" et "parseInt", comme dans les outils de développement Chrome, n'est-ce pas?

Merci!

ezequiel-garzon
la source
8
cette 2015: la situation ne s'est pas améliorée. Rien ne fonctionne hors de la boîte. Les éditeurs de 8 ans ont une meilleure complétion automatique.
Muhammad Umer
Voir ma réponse ci-dessous, @MuhammadUmer. Jusqu'à présent, cela fonctionne; hors de la boîte .. et magnifique.
Steve Meisner
1
@SteveMeisner - votre réponse est discutée ici meta.stackoverflow.com/q/341163/73226
Martin Smith
1
J'avais répondu avec une réponse principalement "lien seulement" et il a été snobé. Mais voici le package fantastique que j'ai pour JS intellisense / autocompletion: github.com/pichillilorenzo/JavaScript-Completions
Steve Meisner
Juste au cas où quelqu'un comme moi s'occuperait de ce problème. C'est la raison pour laquelle je suis passé à VS Code. Il a cette merveilleuse fonctionnalité Intellisense qui fonctionne bien également pour obtenir des autocomplétions dans les modules JS. Jusqu'à présent, en profiter.
Sergiy Ostrovsky

Réponses:

77

Les suggestions sont (essentiellement) basées sur le texte du fichier ouvert actuel et sur tous les extraits ou compléments que vous avez définis ( ref ). Si vous voulez plus de suggestions de texte, je vous recommande:

En remarque, je recommande vraiment d' installer Package Control pour profiter pleinement de la communauté Sublime. Certaines des options ci-dessus utilisent le contrôle de package. Je recommande également vivement les vidéos de tutoriel tutsplus Sublime , qui incluent toutes sortes d'informations sur l'amélioration de votre efficacité lors de l'utilisation de Sublime.

dbn
la source
1
Voté et accepté sur la base de la merveilleuse boîte à outils Emmet! C'est époustouflant. Il ne connaît pas autant JS que l'inspecteur Web Chrome, mais je suppose que ce n'est pas une si mauvaise chose. (Après tout, je veux améliorer ma mémoire musculaire.) D'un autre côté, le travail qu'Emmet fait pour vous est incroyable! Merci!
ezequiel-garzon
2
Heureux que cela ait été utile. J'espère que vous finirez par regarder toute la séquence du didacticiel; il y a beaucoup de bonnes choses là-dedans.
dbn
1
Mais ce n'est pas gratuit: / peut-être que c'était plus tôt.
Jeff P Chacko
3
J'ai l'impression que c'était une annonce pour le site tutsplus. Peut-être que ce n'était pas à l'origine, mais je préfère voir des réponses liées non derrière des paywalls.
dcmbrown
heh, ouais, ils étaient tous gratuits quand je les ai regardés. Mise à jour de la réponse pour noter que ceux-ci sont derrière un paywall.
dbn le
66

Ternjs est une nouvelle alternative pour obtenir l'auto-complétion JS. http://ternjs.net/

Plugin Sublime

Le plugin Tern le mieux entretenu pour Sublime Text est appelé 'tern_for_sublime'

Il existe également un ancien plugin appelé «TernJS» . Il n'est pas maintenu et contient plusieurs bogues liés aux performances, qui provoquent le plantage de Sublime Text, alors évitez cela.

brouiller
la source
2
Crashes ST3. Le projet n'est pas maintenu.
Accords du
1
Je n'ai pas vécu ça, quel package utilisez-vous? J'utilise github.com/marijnh/tern_for_sublime
subhaze le
2
Je recommanderais d'utiliser celui du lien que j'ai fourni dans la réponse et dans mon commentaire. Il est toujours maintenu.
subhaze le
1
Je ne vois pas vraiment cela comme «salé», mais je voulais souligner que votre commentaire était incorrect en disant que le plugin auquel j'ai lié n'était pas maintenu. Comme il a des mises à jour très récentes sur github.
subhaze le
1
J'ai mis à jour le commentaire pour qu'il soit, espérons-le, moins / pas salé: / et en lisant ces commentaires, j'espère que les gens ne seront pas «éloignés» mais dans la bonne direction.
subhaze le
41

Comme déjà mentionné, tern.js est un nouveau projet prometteur avec des plugins pour Sublime Text, Vim et Emacs. Ive été en utilisant TernJS pour Sublime pendant un certain temps et les suggestions que je reçois sont bien mieux que les standards:

entrez la description de l'image ici

Tern analyse tous les fichiers .js de votre projet. Vous pouvez obtenir une prise en charge pour DOM, nodejs, jQuery, etc. en ajoutant "libs" dans votre fichier .sublime-project:

"ternjs": {
    "exclude": ["wordpress/**", "node_modules/**"],
    "libs": ["browser", "jquery"],
    "plugins": {
        "requirejs": {
            "baseURL": "./js"
        }
    }
}

entrez la description de l'image ici

Eosterberg
la source
Dans le dernier exemple, je ne reçois pas la suggestion 'src' - je viens juste d'installer (Sublime Text 3) et d'utiliser les paramètres de votre projet.
Rune Jeppesen
2
Un support pour le javascript de style ES6 (ES2015)?
Dan Esparza
1
Oui, le site du projet tern.js contient une liste des fonctionnalités ES6 prises en charge
eosterberg
1
Pour ce que ça vaut, vous déclarez que vous utilisez "tern for sublime" mais il renvoie au plugin ternJS ... Tern for Sublime -> packagecontrol.io/packages/tern_for_sublime TernJS -> packagecontrol.io/packages/TernJS
subhaze
Je suis surpris que vous obteniez l'attribut selectedIndex, car createTag renverra une balise HTTP img. De plus, selectedIndex appartient à une balise HTTP select, PAS à img ou à son élément parent. Seriez-vous si gentil de commenter comment obtenir ces deux suggestions? Je crois que c'est parce que vous les avez utilisés dans d'autres fichiers, et non parce que JsTern a la capacité de résoudre l'appel createElement en cours d'exécution. Suggérer selectedIndex n'a néanmoins aucun sens.
Alex
6

J'ai développé un nouveau plugin appelé JavaScript Enhancements , que vous pouvez trouver sur Package Control . Il utilise Flow (vérificateur de type statique javascript de Facebook) sous le capot.

De plus, il offre une saisie semi-automatique intelligente de javascript (par rapport à mes autres compléments de plugins JavaScript), des erreurs en temps réel , la refactorisation de code et également de nombreuses fonctionnalités sur la création, le développement et la gestion de projets javascript. .

Consultez le Wiki pour connaître toutes les fonctionnalités qu'il propose!

Une introduction à ce plugin peut être trouvée dans cet article de css-tricks.com : Transformez Sublime Text 3 en un IDE JavaScript

Juste quelques captures d'écran rapides:

Lorenzo Pichilli
la source
1
Salut Lorenzo. Je suis curieux de connaître votre projet, mais j'aimerais connaître les options dont je dispose en termes de personnalisation des finitions. Fondamentalement, je veux avoir des suggestions comme docu> document, document.que> document.querySelectoret ainsi de suite, mais jamais un appel de fonction complet avec des arguments et plusieurs lignes comme arr.forEa> arr.forEach((object,index,array) => { /* newline */ });, si cela a du sens. Puis-je désactiver cela avec les améliorations Javascript sans avoir à modifier manuellement tous les fichiers de complétion? J'ai désactivé toutes les complétions maintenant car je suis un peu obsédée par ma structure.
ViggoV
1

Vérifiez si les extraits de code comportent des <tabTrigger>attributs commençant par des caractères spéciaux. S'ils le font, ils n'apparaîtront pas dans la zone de saisie semi-automatique. C'est actuellement un problème sous Windows avec les plugins jQuery disponibles .

Voir ma réponse sur ce fil pour plus de détails.

Alexander Rechsteiner
la source