Vollständige automatische Vervollständigung von JS unter Sublime Text

98

Ich habe gerade den Sublime Text unter Windows Vista installiert, und selbst wenn ich den Ratschlägen in diesem Beitrag folge, nämlich explizit festzulegen View > Syntax > JavaScript > JavaScript, werden nur Vorschläge angezeigt, die auf dem basieren, was ich zuvor eingegeben habe. Ich habe sogar das SublimeCodeIntel-Plug-In installiert , ohne Erfolg.

So wie ich es verstehe, sollte ich in dem Moment, in dem ich "pars" schreibe, die Optionen "parseFloat" und "parseInt" erhalten, wie in den Chrome-Entwicklertools, oder?

Vielen Dank!

Ezequiel-Garzon
quelle
8
dieses 2015: Situation hat sich nicht verbessert. Nichts funktioniert sofort. 8 Jahre alte Redakteure haben eine bessere automatische Vervollständigung.
Muhammad Umer
Siehe meine Antwort unten, @MuhammadUmer. Soweit funktioniert es; out of the box .. und wunderschön.
Steve Meisner
1
@SteveMeisner - Ihre Antwort wird hier diskutiert meta.stackoverflow.com/q/341163/73226
Martin Smith
1
Ich hatte meistens mit "nur Link" geantwortet und es wurde geschnüffelt. Aber hier ist das fantastische Paket, das ich für JS Intellisense / Autocompletion habe: github.com/pichillilorenzo/JavaScript-Completions
Steve Meisner
Nur für den Fall, dass sich jemand wie ich mit diesem Problem befasst. Dies war der Grund, warum ich zu VS Code gewechselt bin. Es hat diese wunderbare Intellisense-Funktion, die gut funktioniert und auch Autocompletions über JS-Module hinweg ermöglicht. Soweit genieße es.
Sergiy Ostrovsky

Antworten:

76

Vorschläge basieren (im Grunde genommen) auf dem Text in der aktuell geöffneten Datei und allen von Ihnen definierten Ausschnitten oder Vervollständigungen ( ref ). Wenn Sie weitere Textvorschläge wünschen, würde ich empfehlen:

Als Randnotiz würde ich wirklich empfehlen , die Paketsteuerung zu installieren , um die Sublime-Community voll auszunutzen. Einige der oben genannten Optionen verwenden die Paketsteuerung. Ich würde auch die Tutorial-Videos von tutsplus Sublime wärmstens empfehlen , die alle möglichen Informationen zur Verbesserung Ihrer Effizienz bei der Verwendung von Sublime enthalten.

dbn
quelle
1
Upvoted und akzeptiert basierend auf dem wunderbaren Emmet Toolkit! Es ist umwerfend. Es weiß nicht annähernd so viel JS wie der Chrome Web Inspector, aber ich denke, das ist keine so schlechte Sache. (Schließlich möchte ich mein Muskelgedächtnis verbessern.) Andererseits ist die Arbeit, die Emmet für Sie leistet, erstaunlich! Vielen Dank!
Ezequiel-Garzon
2
Ich bin froh, dass es hilfreich war. Ich hoffe, dass Sie sich am Ende diese ganze Tutorial-Sequenz ansehen. Da sind viele gute Sachen drin.
dbn
1
Aber es ist nicht kostenlos: / Vielleicht war es früher.
Jeff P Chacko
3
Ich denke, das war eine Anzeige für die Tutsplus-Site. Vielleicht war es nicht ursprünglich, aber ich würde lieber verknüpfte Antworten sehen, die nicht hinter Paywalls stehen.
dcmbrown
heh, ja, die waren alle frei, als ich sie beobachtete. Aktualisieren der Antwort, um festzustellen, dass sich diese hinter einer Paywall befinden.
dbn
66

Ternjs ist eine neue Alternative für die automatische Vervollständigung von JS. http://ternjs.net/

Erhabenes Plugin

Das am besten gepflegte Tern-Plugin für Sublime Text heißt 'tern_for_sublime'.

Es gibt auch ein älteres Plugin namens 'TernJS' . Es ist nicht gewartet und enthält mehrere leistungsbezogene Fehler, die zum Absturz von Sublime Text führen. Vermeiden Sie dies.

Subhaze
quelle
2
Abstürze ST3. Projekt wird nicht gepflegt.
Akkorde
1
Ich habe das noch nicht erlebt. Welches Paket verwenden Sie? Ich benutze github.com/marijnh/tern_for_sublime
subhaze
2
Ich würde empfehlen, den Link zu verwenden, den ich in der Antwort und in meinem Kommentar angegeben habe. Es wird immer noch gepflegt.
Subhaze
1
Ich sehe das nicht wirklich als "salzig" an, aber ich wollte darauf hinweisen, dass Ihr Kommentar falsch war, als er sagte, dass das Plugin, mit dem ich verlinkt habe, nicht gepflegt wurde. Da es sehr aktuelle Updates auf Github hat.
Subhaze
1
Ich habe den Kommentar so aktualisiert, dass er hoffentlich weniger / nicht salzig ist: / und beim Lesen dieser Kommentare werden die Leute hoffentlich nicht "weggelenkt", sondern in die richtige Richtung.
Subhaze
41

Wie bereits erwähnt, ist tern.js ein neues und vielversprechendes Projekt mit Plugins für Sublime Text, Vim und Emacs. Ich benutze TernJS seit einiger Zeit für Sublime und die Vorschläge, die ich bekomme, sind viel besser als die Standardvorschläge:

Geben Sie hier die Bildbeschreibung ein

Tern scannt alle .js-Dateien in Ihrem Projekt. Sie können Unterstützung für DOM, nodejs, jQuery und mehr erhalten, indem Sie "libs" in Ihre .sublime-project-Datei einfügen:

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

Geben Sie hier die Bildbeschreibung ein

Eosterberg
quelle
Im letzten Beispiel wird der Vorschlag "src" nicht angezeigt. Ich habe gerade (Sublime Text 3) installiert und Ihre Projekteinstellung verwendet.
Rune Jeppesen
2
Gibt es Unterstützung für Javascript im ES6 (ES2015) -Stil?
Dan Esparza
1
Ja, die tern.js Projektseite enthält eine Liste der unterstützten ES6-Funktionen
Eosterberg
1
Für das, was es wert ist, geben Sie an, dass Sie "tern for sublime" verwenden, aber es verlinkt auf das ternJS-Plugin ... Tern for Sublime -> packagecontrol.io/packages/tern_for_sublime TernJS -> packagecontrol.io/packages/TernJS
subhaze
Ich bin überrascht, dass Sie das Attribut selectedIndex erhalten, da createTag ein img-HTTP-Tag zurückgibt. Außerdem gehört selectedIndex zu einem ausgewählten HTTP-Tag, NICHT zu img oder seinem übergeordneten Element. Würden Sie so kommentieren, wie Sie diese beiden Vorschläge erhalten? Ich glaube, das liegt daran, dass Sie sie in anderen Dateien verwendet haben, und nicht daran, dass JsTern den Aufruf createElement während des Laufs auflösen kann. Das Vorschlagen von selectedIndex macht dennoch keinen Sinn.
Alex
6

Ich habe ein neues Plugin namens JavaScript Enhancements entwickelt , das Sie unter Package Control finden . Es verwendet Flow (statische Javascript-Typprüfung von Facebook) unter der Haube.

Darüber hinaus bietet es eine intelligente automatische Vervollständigung von Javascript (im Vergleich zu meinen anderen Plugin-JavaScript-Vervollständigungen), Echtzeitfehler , Code-Refactoring und viele Funktionen zum Erstellen, Entwickeln und Verwalten von Javascript-Projekten .

Im Wiki finden Sie alle Funktionen, die es bietet!

Eine Einführung in dieses Plugin finden Sie in diesem Artikel von css-tricks.com : Verwandeln Sie Sublime Text 3 in eine JavaScript-IDE

Nur ein paar kurze Screenshots:

Lorenzo Pichilli
quelle
1
Hallo Lorenzo. Ich bin neugierig auf Ihr Projekt, möchte aber wissen, welche Optionen ich hinsichtlich der Anpassung der Fertigstellungen habe. Grundsätzlich möchte ich Vorschläge wie docu> document, document.que> document.querySelectorusw. haben, aber niemals einen vollständigen Funktionsaufruf mit Argumenten und mehreren Zeilen wie arr.forEa> arr.forEach((object,index,array) => { /* newline */ });, wenn das Sinn macht. Könnte ich das mit Javascript Enhancements deaktivieren, ohne alle Abschlussdateien manuell bearbeiten zu müssen? Ich habe jetzt alle Abschlüsse deaktiviert, da ich ein wenig von meiner Struktur besessen bin.
ViggoV
1

Überprüfen Sie, ob die Snippets <tabTrigger>Attribute haben, die mit Sonderzeichen beginnen. In diesem Fall werden sie nicht im Feld für die automatische Vervollständigung angezeigt. Dies ist derzeit ein Problem unter Windows mit den verfügbaren jQuery- Plugins.

Siehe meine Antwort auf diesen Thread für weitere Details.

Alexander Rechsteiner
quelle