Отримання повного автодоповнення JS під Sublime Text


98

Я щойно встановив Sublime Text під Windows Vista, і навіть дотримуючись порад, наданих у цій публікації , а саме, щоб явно встановити View > Syntax > JavaScript > JavaScript, я бачу лише пропозиції, виходячи з того, що я раніше вводив. Я навіть встановив плагін SublimeCodeIntel , безрезультатно.

Як я це розумію, щойно, коли я пишу "pars", я повинен отримати параметри "parseFloat" та "parseInt", як в інструментах для розробників Chrome, правда?

Дякую!


8
цього 2015 року: ситуація не покращилася. З коробки нічого не виходить. 8-річні редактори мають краще автоматичне завершення.
Мухаммед Умер

Дивіться мою відповідь нижче, @MuhammadUmer. Поки це працює; з коробки .. і красиво.
Стів Мейснер

1
@SteveMeisner - ваша відповідь обговорюється тут meta.stackoverflow.com/q/341163/73226
Мартін Сміт

1
Я відповів здебільшого "лише посиланням" відповідь, і це було відхилено. Але ось фантастичний пакет, який я підписав
Стів Мейснер

Про всяк випадок, якщо хтось, як я, займався цією проблемою. З цієї причини я перейшов до VS Code. Ця чудова функція Intellisense, яка непогано працює, також отримує автодоповнення через модулі JS. Поки це насолоджується.
Сергій Островський

Відповіді:


77

Пропозиції (в основному) базуються на тексті в поточному відкритому файлі та будь-яких фрагментах або доповнень, які ви визначили ( посилання ). Якщо ви хочете отримати більше текстових пропозицій, рекомендую:

В якості побічної зауваження я б дуже рекомендував встановити пакет управління, щоб максимально скористатися спільнотою Sublime. У деяких із наведених вище варіантів використовується управління пакетом. Я також дуже рекомендую відео з підручника Sublime Sublime , що містить усіляку інформацію про підвищення ефективності використання Sublime.


1
Отриманий та прийнятий на основі чудового інструментарію Emmet! Це розумний удар. Це не зовсім так багато JS, як веб-інспектор Chrome, але я думаю, що це не так вже й погано. (Зрештою, я хочу посилити свою м’язову пам’ять.) З іншого боку, робота, яку Еммет робить для вас, дивовижна! Дякую!
ezequiel-garzon

2
Радий, що це було корисно. Я сподіваюся, що ви переглянете всю послідовність підручників; там багато хорошого.
dbn

1
Але це не безкоштовно: / можливо, це було раніше.
Jeff P Chacko

3
Я відчуваю, що це була реклама для сайту tutsplus. Можливо, це не було спочатку, але я швидше бачу пов'язані відповіді не за платними стінами.
dcmbrown

хе, так, ці всі були вільні, коли я спостерігав за ними. Оновлення відповіді, щоб зазначити, що вони стоять за платною стіною.
dbn

66

Ternjs - це нова альтернатива для отримання автодоповнення JS. http://ternjs.net/

Підвищений плагін

Найбільш доглянутий плагін Tern для Sublime Text називається "tern_for_sublime"

Існує також старіший плагін під назвою "TernJS" . Він не підтримується та містить кілька помилок, пов’язаних із продуктивністю, які спричиняють збій Sublime Text, тому уникайте цього.


2
Збій ST3. Проект не підтримується.
Акорди

1
Я цього не відчував, який пакунок ви використовуєте? Я використовую github.com/marijnh/tern_for_sublime
subhaze

2
Я б рекомендував використовувати той, який я посилаю у відповіді та у своєму коментарі. Він досі підтримується.
subhaze

1
Я насправді не вважаю це "солоним", але я хотів зазначити, що ваш коментар був невірним, сказавши, що плагін, з яким я пов’язаний, не підтримується. Оскільки це дуже недавні оновлення на github.
subhaze

1
Я оновив коментар, сподіваюсь, бути менш / не солоним: / і читаючи ці коментарі, сподіваюся, люди не будуть "спрямовані", але в правильному напрямку.
subhaze

41

Як вже було сказано, tern.js - це новий та перспективний проект із плагінами для Sublime Text, Vim та Emacs. Я деякий час використовую TernJS для Sublime , і отримані пропозиції є набагато кращими від стандартних:

введіть тут опис зображення

Tern сканує всі файли .js у вашому проекті. Ви можете отримати підтримку DOM, nodejs, jQuery тощо, додавши "libs" у файл .sublime-проекту:

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

введіть тут опис зображення


В останньому прикладі я не отримую пропозиції 'src' - я щойно встановив (Sublime Text 3) і використав налаштування вашого проекту.
Rune Jeppesen

2
Будь-яка підтримка javascript у стилі ES6 (ES2015)?
Dan Esparza

1
Так, сайт проекту tern.js містить список підтримуваних функцій
ES6

1
Для чого це варто, ви заявляєте, що використовуєте "tern for sublime", але він посилається на плагін ternJS ... Tern for Sublime -> packagecontrol.io/packages/tern_for_sublime TernJS -> packagecontrol.io/packages/TernJS
subhaze

Я здивований, що ви отримаєте атрибут selectedIndex, оскільки createTag поверне тег HTTP img. Крім того, selectedIndex належить до виділеного HTTP-тегу, а не до img або до його батьківського елемента. Ви б так люб'язно коментували, як ви отримуєте ці дві пропозиції? Я вважаю, що ви використовували їх в інших файлах, а не тому, що JsTern має можливість вирішувати виклик createElement на ходу. Запропонувати обранийIndex все ж не має сенсу.
Олексій

9

Існує три підходи

  • Використовуйте плагін SublimeCodeIntel

  • Використовуйте плагін CTags

  • Створіть .sublime-завершення файл вручну

Підходи детально описані в цій публікації блогу (моєї): http://opensourcehacker.com/2013/03/04/javascript-autocompletions-and-having-one-for-sublime-text-2/


Хороші підходи, і дуже відрізняються від моїх.
дбн

6

Я розробив новий плагін під назвою JavaScript Enhancements , який можна знайти в Package Control . Він використовує Flow (перевірку статичного типу javascript від Facebook) під кришкою.

Крім того, він пропонує розумне автозаповнення javascript (порівняно з моїми іншими модулями JavaScript- доповнень ), помилки в реальному часі , рефакторинг коду, а також безліч функцій щодо створення, розробки та управління проектами JavaScript .

Перегляньте Wiki, щоб знати всі функції, які він пропонує!

Вступ до цього плагіна можна знайти в цій статті css-tricks.com : Перетворіть Sublime Text 3 в JavaScript IDE

Лише декілька швидких скріншотів:


1
Привіт Лоренцо. Мені цікаво про ваш проект, але мені хотілося б, які варіанти у мене є щодо налаштування завершень. В основному я хочу мати такі пропозиції, як docu> document, document.que> document.querySelectorі так далі, але ніколи не виклик повної функції з аргументами та кількома рядками типу arr.forEa> arr.forEach((object,index,array) => { /* newline */ });, якщо це має сенс. Чи можу я відключити це за допомогою Javascript Enhancements без необхідності вручну редагувати всі файли завершення? Зараз я відключив усі завершення, оскільки трохи нав'язливий зі своєю структурою.
ViggoV


1

Перевірте, чи у фрагментах є <tabTrigger>атрибути, які починаються із спеціальних символів. У такому разі вони не з’являться у вікні автозаповнення. Наразі це проблема в Windows із наявними плагінами jQuery .

Дивіться мою відповідь на цю тему для більш детальної інформації.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.