Получение полного автозаполнения JS в Sublime Text

98

Я только что установил Sublime Text под Windows Vista, и даже следуя совету, данному в этом посте , а именно, чтобы явно установить View > Syntax > JavaScript > JavaScript, я вижу только предложения, основанные на том, что я ранее набрал. Я даже установил плагин SublimeCodeIntel , но безрезультатно.

Насколько я понимаю, в тот момент, когда я напишу "pars", я должен получить параметры "parseFloat" и "parseInt", как в инструментах разработчика Chrome, верно?

Спасибо!

Ezequiel-Garzon
источник
8
этот 2015 год: ситуация не улучшилась. Из коробки ничего не работает. У 8-летних редакторов автозаполнение лучше.
Мухаммад Умер
Смотрите мой ответ ниже, @MuhammadUmer. Пока это работает; из коробки .. и красиво.
Стив Мейснер,
1
@SteveMeisner - здесь обсуждается ваш ответ meta.stackoverflow.com/q/341163/73226
Мартин Смит,
1
Я ответил, что в основном "только ссылка", и это вызвало снобизм. Но вот фантастический пакет, который я для JS intellisense / autocompletion: github.com/pichillilorenzo/JavaScript-Completions
Стив Мейснер,
На всякий случай кто-то вроде меня занимается этой проблемой. По этой причине я перешел на VS Code. В нем есть замечательная функция Intellisense, которая отлично работает, а также получает автозаполнение в модулях JS. Пока что наслаждаюсь.
Сергей Островский

Ответы:

77

Предложения (в основном) основаны на тексте в текущем открытом файле и любых фрагментах или дополнениях, которые вы определили ( ref ). Если вам нужны дополнительные предложения по тексту, я бы порекомендовал:

В качестве побочного примечания я бы действительно рекомендовал установить Package Control, чтобы в полной мере использовать преимущества сообщества Sublime. Некоторые из вышеперечисленных параметров используют управление пакетами. Я также настоятельно рекомендую учебные видеоролики tutsplus Sublime , которые включают всевозможную информацию о повышении вашей эффективности при использовании Sublime.

dbn
источник
1
Проголосовали и приняли на основе замечательного инструментария Emmet! Это потрясающе. Он не знает столько JS, сколько веб-инспектор Chrome, но я думаю, что это не так уж и плохо. (В конце концов, я хочу улучшить свою мышечную память.) С другой стороны, работа, которую делает для вас Эммет, потрясающая! Спасибо!
ezequiel-garzon
2
Рад, что это было полезно. Я надеюсь, что вы в конечном итоге посмотрите весь этот учебный курс; там много хорошего.
dbn
1
Но это не бесплатно: / может, это было раньше.
Джефф П. Чако,
3
Мне кажется, это была реклама сайта tutsplus. Возможно, изначально это было не так, но я бы предпочел видеть связанные ответы не за платным доступом.
dcmbrown
хех, да, все они были бесплатными, когда я их смотрел. Обновляем ответ, чтобы отметить, что они находятся за платным доступом.
dbn 02
66

Ternjs - это новая альтернатива автозаполнению JS. http://ternjs.net/

Sublime Plugin

Самый поддерживаемый плагин 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 и других, добавив «библиотеки» в свой файл .sublime-project:

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

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

Eosterberg
источник
В последнем примере я не получаю предложение src - я только что установил (Sublime Text 3) и использовал настройки вашего проекта.
Rune Jeppesen
2
Есть ли поддержка javascript в стиле ES6 (ES2015)?
Дэн Эспарза,
1
Да, сайт проекта tern.js содержит список поддерживаемых функций
ES6
1
Как бы то ни было, вы заявляете, что используете «tern для возвышенного», но он ссылается на плагин ternJS ... Tern для Sublime -> packagecontrol.io/packages/tern_for_sublime TernJS -> packagecontrol.io/packages/TernJS
subhaze
Я удивлен, что вы получили атрибут selectedIndex, так как createTag возвращает HTTP-тег img. Кроме того, selectedIndex принадлежит выбранному тегу HTTP, а НЕ img или его родительскому элементу. Не могли бы вы так любезно прокомментировать, как вы получили эти два предложения? Я считаю, что это потому, что вы использовали их в других файлах, а не потому, что JsTern имеет возможность разрешать вызов createElement на ходу. Тем не менее предлагать selectedIndex нет смысла.
Alex
9

Есть три подхода

  • Используйте плагин SublimeCodeIntel

  • Используйте плагин CTags

  • Создать файл .sublime-Completion вручную

Подходы подробно описаны в этом сообщении в блоге (моем): http://opensourcehacker.com/2013/03/04/javascript-autocompletions-and-having-one-for-sublime-text-2/

Микко Охтамаа
источник
Хорошие подходы и очень отличные от моих.
dbn 06
6

Я разработал новый плагин под названием JavaScript Enhancements , который вы можете найти в Package Control . Он использует под капотом Flow (средство проверки статического типа javascript от Facebook).

Кроме того, он предлагает интеллектуальное автозаполнение javascript (по сравнению с другим моим плагином JavaScript Completions), ошибки в реальном времени , рефакторинг кода, а также множество функций по созданию, разработке и управлению проектами javascript .

Посетите Wiki, чтобы узнать обо всех его функциях!

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

Просто несколько скриншотов:

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

Проверьте, есть ли у фрагментов <tabTrigger>атрибуты, начинающиеся со специальных символов. Если они это сделают, они не будут отображаться в поле автозаполнения. В настоящее время это проблема Windows с доступными плагинами jQuery .

См. Мой ответ в этой теме для получения более подробной информации.

Александр Рехштайнер
источник