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!


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.


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.


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


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:


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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.