Tern - ciekawe narzędzie w codziennej pracy
Cześć, dzisiaj kolejny lajtowy post. Osobiście należę do osób, które uwielbiają mieć rzeczy dopasowane do własnych potrzeb i rzadko mnie zadowalają rzeczy w ich standardowej konfiguracji. Jeśli ktoś był ciekaw, tak dalej korzystam z VIM-a w swojej codziennej pracy i z dnia na dzień dogadujemy się coraz lepiej. Jakby ktoś był ciekawy, z czago korzystam, to plik .vimrc załączam tutaj. Jest na bieżąco aktualizowany, bo co jakiś czas zmieniam i dodaję lub odejmuję. To tak for fun.
Jedną z rzeczy, którą skonfigurowałam, było autouzupełnianie. Przydatna funkcja edytora, bez której ciężko się obejść i którą zapewnia większość nowoczesnych środowisk. JavaScript nie byłby takim przyjemnym językiem, gdyby nie miał swojego narzędzia stworzonego specjalnie w tym celu. Takie coś istnieje i ma się całkiem dobrze, zwie się Tern. Na ich stronie można wyczytać:
Tern is a stand-alone code-analysis engine for JavaScript. It is intended to be used with a code editor plugin to enhance the editor’s support for intelligent JavaScript editing.
Skoro już wiesz o czym mowa, to pewnie w tej chwili przestajesz czytać, bo twój edytor ma takie rzeczy w standardzie i nie widzisz potrzeby wiedzieć nic więcej. To tu Cię zaskoczę, jest jakieś prawdopodobieństwo, że twój edytor właśnie z Terna korzysta.
Pełna lista edytorów:
- Emacs
- Vim
- Sublime Text
- Brackets (built in to the base editor)
- Light Table
- Eclipse (and general Java API)
- TextMate
- SourceLair (built in to the base editor)
- Chocolat (built in to the base editor)
- Atom
- CodeLight
I jeszcze pewnie jakieś inne, bo informacje na stronie projektu i na githubie się trochę ze sobą rozmijają. W części z nich jest on zainstalowany bazowo, gdzie indziej dostępny jako specjalny plugin. Czemu piszę Ci o czymś, czego na co dzień nie zauważasz, nawet jeśli z tego korzystasz? Bo owszem, nawet jeśli tak, jak w Brackets, posiadasz Tern out-of-the-box, to został on standardowo skonfigurowany w sposób, jaki może ci nie odpowiadać.
Jak skonfigurować Tern?
Wystarczy mały pliczek json o nazwie ‘.tern-config’ w twoim katalogu domowym. Pokazuje on z jakiego zakresu ma pobierać informacje i w jaki sposób podpowiadać składnię.
{
"plugins": {
"node": {},
"es_modules": {}
},
"libs": [
"ecma5",
"ecma6",
"browser",
"react"
],
"dontLoad": [
"node_modules/**"
],
"ecmaVersion": 6
}
Powyżej widzisz mój, na razie prosty plik, który dodaje wsparcie dla node, es_modules, załącza biblioteki es5, es6, API przeglądarki i Reacta. Do tego pokazuje standardową wersję używanego JS-a. Tych opcji jest o wiele więcej. Wśród pluginów możesz dołożyć wsparcie dla:
- CommonJS modules
- Doc comments
- Webpack
- RequireJS
- AngularJS
- Wiele zewnętrznych modułów do zainstalowania
Oprócz tego można zainstalować biblioteki, a także wskazać jakich rzeczy ma nie ładować dynamicznie z naszego projektu. Więcej oczywiście znajdziesz w dokumentacji.
Oczywiście, możemy go skonfigurować osobno do każdego projektu, gdzie analogiczny plik wstawimy do naszego projektu i nazwiemy go .tern-project. W ten sposób będziemy mieli dokładnie to, czego potrzebujemy, co czasem pozwala na delikatne przyspieszenie działania.
Tymczasem to tyle na dzisiaj. Trzymaj się słonecznie.
Miau!