Uzyskanie pełnego autouzupełniania JS pod Sublime Text

98

Właśnie zainstalowałem Sublime Text pod Windows Vista i nawet postępując zgodnie z radą podaną w tym poście , a mianowicie, aby wyraźnie ustawić View > Syntax > JavaScript > JavaScript, widzę tylko sugestie oparte na tym, co wcześniej wpisałem. Nawet zainstalowałem wtyczkę SublimeCodeIntel , ale bez skutku.

Jak rozumiem, w momencie, gdy piszę „pars”, powinienem dostać opcje „parseFloat” i „parseInt”, tak jak w narzędziach programistycznych Chrome, prawda?

Dzięki!

ezequiel-garzon
źródło
8
ten 2015: sytuacja nie uległa poprawie. Nic nie działa po wyjęciu z pudełka. Redaktorzy mający 8 lat mają lepsze autouzupełnianie.
Muhammad Umer
Zobacz moją odpowiedź poniżej, @MuhammadUmer. Jak dotąd to działa; po wyjęciu z pudełka ... i piękny.
Steve Meisner
1
@SteveMeisner - Twoja odpowiedź jest omawiana tutaj meta.stackoverflow.com/q/341163/73226
Martin Smith
1
Odpowiedziałem głównie „tylko link” i został on snobowany. Ale oto fantastyczny pakiet dla JS intellisense / autocompletion: github.com/pichillilorenzo/JavaScript-Completions
Steve Meisner
Na wypadek, gdyby ktoś taki jak ja miał do czynienia z tym problemem. To był powód, dla którego przeszedłem na VS Code. Ma tę cudowną funkcję Intellisense, która działa dobrze również z autouzupełnianiem w modułach JS. Póki co mi się to podoba.
Sergiy Ostrovsky

Odpowiedzi:

77

Sugestie są (zasadniczo) oparte na tekście w aktualnie otwartym pliku i wszelkich zdefiniowanych przez Ciebie fragmentach lub uzupełnieniach ( ref ). Jeśli potrzebujesz więcej sugestii tekstowych, polecam:

Na marginesie, naprawdę polecam zainstalowanie kontroli pakietów, aby w pełni wykorzystać społeczność Sublime. Niektóre z powyższych opcji używają kontroli pakietów. Gorąco polecam również filmy instruktażowe tutsplus Sublime , które zawierają wszelkiego rodzaju informacje na temat poprawy wydajności podczas korzystania z Sublime.

dbn
źródło
1
Głosowano za i zaakceptowano na podstawie wspaniałego zestawu narzędzi Emmet! To niesamowite. Nie do końca zna tak dużo JS, jak inspektor sieci w Chrome, ale myślę, że to nie jest takie złe. (W końcu chcę poprawić swoją pamięć mięśniową.) Z drugiej strony praca, którą Emmet wykonuje dla ciebie, jest niesamowita! Dzięki!
ezequiel-garzon
2
Cieszę się, że to było pomocne. Mam nadzieję, że obejrzysz całą sekwencję samouczków; jest tam dużo dobrych rzeczy.
dbn
1
Ale to nie jest darmowe: / może było wcześniej.
Jeff P Chacko
3
Wydaje mi się, że to była reklama witryny tutsplus. Może nie było pierwotnie, ale wolałbym widzieć powiązane odpowiedzi, a nie za zaporami.
dcmbrown
heh, tak, te wszystkie były darmowe, kiedy je oglądałem. Aktualizuję odpowiedź, aby zauważyć, że znajdują się one za paywallem.
dbn
66

Ternjs to nowa alternatywa dla uzyskania autouzupełniania JS. http://ternjs.net/

Sublime Plugin

Najbardziej dobrze utrzymana wtyczka Tern do Sublime Text nazywa się „tern_for_sublime”

Istnieje również starsza wtyczka o nazwie „TernJS” . Nie jest konserwowany i zawiera kilka błędów związanych z wydajnością, które powodują awarię Sublime Text, więc unikaj tego.

subhaze
źródło
2
Awarie ST3. Projekt nie jest utrzymywany.
Chords
1
Nie doświadczyłem tego, jakiego pakietu używasz? Używam github.com/marijnh/tern_for_sublime
subhaze
2
Polecam skorzystanie z tego w linku, który podałem w odpowiedzi i komentarzu. Nadal jest utrzymywany.
podhaze
1
Naprawdę nie uważam tego za „słony”, ale chciałem zwrócić uwagę, że Twój komentarz był błędny, mówiąc, że wtyczka, z którą się łączyłem, nie została utrzymana. Ponieważ ma bardzo najnowsze aktualizacje na githubie.
podhaze
1
Zaktualizowałem komentarz, aby, mam nadzieję, był mniej / nie słony: / i podczas czytania tych komentarzy mam nadzieję, że ludzie nie zostaną „odepchnięci”, ale we właściwym kierunku.
podhaze
41

Jak już wspomniano, tern.js to nowy i obiecujący projekt z wtyczkami do Sublime Text, Vim i Emacs. Używam TernJS for Sublime od jakiegoś czasu i otrzymane sugestie są o wiele lepsze niż standardowe:

wprowadź opis obrazu tutaj

Tern skanuje wszystkie pliki .js w twoim projekcie. Możesz uzyskać wsparcie dla DOM, nodejs, jQuery i innych, dodając „libs” do pliku .sublime-project:

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

wprowadź opis obrazu tutaj

eosterberg
źródło
W ostatnim przykładzie nie otrzymuję sugestii „src” - właśnie zainstalowałem (Sublime Text 3) i użyłem ustawień twojego projektu.
Rune Jeppesen
2
Jakieś wsparcie dla javascript w stylu ES6 (ES2015)?
Dan Esparza
1
Tak, witryna projektu tern.js zawiera listę obsługiwanych funkcji ES6
eosterberg
1
Co jest warte, twierdzisz, że używasz "tern for sublime", ale łączy się to z wtyczką ternJS ... Tern for Sublime -> packagecontrol.io/packages/tern_for_sublime TernJS -> packagecontrol.io/packages/TernJS
subhaze
Dziwię się, że otrzymujesz atrybut selectedIndex, ponieważ createTag zwróci tag HTTP img. Ponadto selectedIndex należy do zaznaczonego tagu HTTP, a NIE do img lub jego elementu nadrzędnego. Czy byłbyś tak miły, gdybyś skomentował, jak otrzymałeś te dwie sugestie? Uważam, że dzieje się tak dlatego, że użyłeś ich w innych plikach, a nie dlatego, że JsTern ma zdolność rozwiązywania wywołania createElement w biegu. Sugerowanie selectedIndex nie ma jednak sensu.
Alex
6

Opracowałem nową wtyczkę o nazwie Ulepszenia JavaScript , którą można znaleźć w Kontroli pakietów . Używa pod maską Flow (javascript static type checker z Facebooka).

Co więcej, oferuje inteligentne autouzupełnianie javascript (w porównaniu do moich innych uzupełniania JavaScript), błędy czasu rzeczywistego , refaktoryzację kodu, a także wiele funkcji dotyczących tworzenia, rozwijania i zarządzania projektami javascript .

Zobacz Wiki, aby poznać wszystkie funkcje, które oferuje!

Wprowadzenie do tej wtyczki można znaleźć w tym artykule na css-tricks.com : Zamień Sublime Text 3 w JavaScript IDE

Tylko kilka szybkich zrzutów ekranu:

Lorenzo Pichilli
źródło
1
Cześć Lorenzo. Ciekawi mnie twój projekt, ale chciałbym mieć opcje personalizacji ukończeń. Zasadniczo chcę otrzymywać sugestie takie jak docu> document, document.que> document.querySelectori tak dalej, ale nigdy pełne wywołanie funkcji z argumentami i wieloma wierszami, takimi jak arr.forEa> arr.forEach((object,index,array) => { /* newline */ });, jeśli ma to sens. Czy mogę to wyłączyć dzięki ulepszeniom JavaScript bez konieczności ręcznej edycji wszystkich plików uzupełnień? Wyłączyłem teraz wszystkie uzupełniania, ponieważ mam obsesję na punkcie mojej struktury.
ViggoV
1

Sprawdź, czy fragmenty mają <tabTrigger>atrybuty zaczynające się od znaków specjalnych. Jeśli tak, nie pojawią się w polu autouzupełniania. Jest to obecnie problem w systemie Windows z dostępnymi wtyczkami jQuery .

Zobacz moją odpowiedź w tym wątku, aby uzyskać więcej informacji.

Alexander Rechsteiner
źródło