Ottenere il completamento automatico JS completo in Sublime Text


98

Ho appena installato Sublime Text sotto Windows Vista, e anche seguendo il consiglio dato in questo post , ovvero di impostare esplicitamente View > Syntax > JavaScript > JavaScript, vedo solo i suggerimenti basati su quanto ho digitato in precedenza. Ho persino installato il plug-in SublimeCodeIntel , senza alcun risultato.

A quanto ho capito, nel momento in cui scrivo "pars" dovrei ottenere le opzioni "parseFloat" e "parseInt", come negli strumenti per sviluppatori di Chrome, giusto?

Grazie!


8
questo 2015: la situazione non è migliorata. Niente funziona fuori dagli schemi. Gli editor di 8 anni hanno un completamento automatico migliore.
Muhammad Umer,

Vedi la mia risposta di seguito, @MuhammadUmer. Finora funziona; fuori dagli schemi .. e bellissimo.
Steve Meisner

1
@SteveMeisner - la tua risposta è discussa qui meta.stackoverflow.com/q/341163/73226
Martin Smith

1
Avevo risposto con una risposta per lo più "solo link" ed è stato snobbato. Ma ecco il fantastico pacchetto che ho per JS intellisense / autocompletion: github.com/pichillilorenzo/JavaScript-Completions
Steve Meisner

Nel caso qualcuno come me abbia a che fare con questo problema. Questo è stato il motivo per cui sono passato a VS Code. Ha questa meravigliosa funzionalità Intellisense che funziona bene anche ottenendo completamenti automatici tra i moduli JS. Finora godendomi.
Sergiy Ostrovsky

Risposte:


77

I suggerimenti sono (fondamentalmente) basati sul testo nel file aperto corrente e su qualsiasi frammento o completamento che hai definito ( rif ). Se desideri più suggerimenti di testo, ti consiglio:

Come nota a margine, consiglierei davvero di installare il controllo dei pacchetti per sfruttare appieno la comunità di Sublime. Alcune delle opzioni precedenti utilizzano il controllo del pacchetto. Consiglio vivamente anche i video tutorial tutsplus Sublime , che includono tutti i tipi di informazioni su come migliorare la tua efficienza quando usi Sublime.


1
Votato e accettato in base al meraviglioso toolkit Emmet! È strabiliante. Non conosce JS quanto l'ispettore web di Chrome, ma immagino che non sia poi così male. (Dopotutto, voglio migliorare la mia memoria muscolare.) D'altra parte, il lavoro che Emmet fa per te è fantastico! Grazie!
ezequiel-garzon

2
Sono contento che sia stato utile. Spero che finirai per guardare l'intera sequenza del tutorial; ci sono molte cose buone lì dentro.
dbn

1
Ma non è gratuito: / forse era prima.
Jeff P Chacko

3
Mi sembra che fosse un annuncio per il sito tutsplus. Forse non era originariamente, ma preferirei vedere le risposte collegate non dietro i paywall.
dcmbrown

heh, sì, quelli erano tutti gratuiti quando li guardavo. Aggiornamento della risposta per notare che questi sono dietro un paywall.
dbn

66

Ternjs è una nuova alternativa per ottenere il completamento automatico JS. http://ternjs.net/

Plugin sublime

Il plugin Tern più ben mantenuto per Sublime Text si chiama 'tern_for_sublime'

C'è anche un vecchio plugin chiamato "TernJS" . Non è mantenuto e contiene diversi bug relativi alle prestazioni, che causano l'arresto anomalo di Sublime Text, quindi evitalo.


2
Si blocca ST3. Il progetto non viene mantenuto.
Accordi

1
Non l'ho mai provato, quale pacchetto stai usando? Sto usando github.com/marijnh/tern_for_sublime
subhaze

2
Consiglierei di utilizzare quello nel link che ho fornito nella risposta e nel mio commento. È ancora mantenuto.
subhaze

1
Non lo vedo davvero come "salato", ma volevo sottolineare che il tuo commento non era corretto nel dire che il plugin a cui mi collegavo non era mantenuto. Dato che ha aggiornamenti molto recenti su GitHub.
subhaze

1
Ho aggiornato il commento per essere, si spera, meno / non salato: / e durante la lettura di questi commenti si spera che le persone non vengano "allontanate" ma nella direzione corretta.
subhaze

41

Come già accennato, tern.js è un nuovo e promettente progetto con plugin per Sublime Text, Vim ed Emacs. Uso TernJS per Sublime da un po 'e i suggerimenti che ricevo sono molto migliori di quelli standard:

inserisci qui la descrizione dell'immagine

Tern esegue la scansione di tutti i file .js nel progetto. Puoi ottenere supporto per DOM, nodejs, jQuery e altro aggiungendo "libs" nel tuo file .sublime-project:

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

inserisci qui la descrizione dell'immagine


Nell'ultimo esempio non ricevo il suggerimento "src": ho appena installato (Sublime Text 3) e utilizzato le impostazioni del progetto.
Rune Jeppesen

2
Qualsiasi supporto per javascript in stile ES6 (ES2015)?
Dan Esparza,

1
Sì, il sito del progetto tern.js contiene un elenco delle funzionalità ES6 supportate
eosterberg,

1
Per quello che vale, stai affermando che usi "tern for sublime" ma si collega al plugin ternJS ... Tern for Sublime -> packagecontrol.io/packages/tern_for_sublime TernJS -> packagecontrol.io/packages/TernJS
subhaze

Sono sorpreso che tu ottenga l'attributo selectedIndex, poiché createTag restituirà un tag HTTP img. Inoltre, selectedIndex appartiene a un tag HTTP selezionato, NON a img o al suo elemento padre. Saresti così gentile da commentare su come ottieni questi due suggerimenti? Credo sia perché li hai usati in altri file, e non perché JsTern ha la capacità di risolvere la chiamata createElement in fuga. Tuttavia, suggerire selectedIndex non ha senso.
Alex


6

Ho sviluppato un nuovo plugin chiamato JavaScript Enhancements , che puoi trovare su Package Control . Usa Flow (javascript static type checker da Facebook) sotto il cofano.

Inoltre, offre il completamento automatico javascript intelligente (rispetto ai miei altri plugin JavaScript Completions), errori in tempo reale , refactoring del codice e anche molte funzionalità sulla creazione, lo sviluppo e la gestione di progetti javascript .

Consulta il Wiki per conoscere tutte le funzionalità che offre!

Un'introduzione a questo plugin può essere trovata in questo articolo di css-tricks.com : Trasforma Sublime Text 3 in un IDE JavaScript

Solo alcuni rapidi screenshot:


1
Ciao Lorenzo. Sono curioso del tuo progetto, ma mi piacerebbe quali opzioni ho in termini di personalizzazione dei completamenti. Fondamentalmente voglio avere suggerimenti come docu> document, document.que> document.querySelectore così via, ma mai una chiamata a funzione completa con argomenti e più righe come arr.forEa> arr.forEach((object,index,array) => { /* newline */ });, se ha senso. Posso disabilitarlo con Javascript Enhancements senza dover modificare manualmente tutti i file di completamento? Ho disabilitato tutti i completamenti ora poiché sono un po 'ossessivo con la mia struttura.
ViggoV


1

Controlla se gli snippet hanno <tabTrigger>attributi che iniziano con caratteri speciali. In tal caso, non verranno visualizzati nella casella di completamento automatico. Questo è attualmente un problema su Windows con i plugin jQuery disponibili .

Vedi la mia risposta su questo thread per maggiori dettagli.

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.