Sublime Textで完全なJSオートコンプリートを取得する


98

私はWindows VistaにSublime Textをインストールしたばかりで、この投稿で提供されたアドバイス、つまり明示的に設定したView > Syntax > JavaScript > JavaScript場合でも、以前に入力した内容に基づく提案しか表示されません。SublimeCodeIntelプラグインもインストールしましたが、役に立ちませんでした。

私が理解しているように、「pars」と書いた瞬間に、Chrome開発者ツールのように、「parseFloat」と「parseInt」オプションを取得する必要がありますよね?

ありがとう!


8
この2015年:状況は改善されていません。そのままでは何も機能しません。8歳の編集者は、オートコンプリートの方が優れています。
Muhammad Umer 2015年

下記の私の回答、@ MuhammadUmerを参照してください。これまでのところ機能します。箱から出して..そして美しい。
Steve Meisner 2017年

1
@SteveMeisner-あなたの答えはここで議論されますmeta.stackoverflow.com/q/341163/73226
マーティンスミス

1
私はほとんど「リンクのみ」の回答で答えましたが、それはスノッブされました。しかし、これが私がJSインテリセンス/オートコンプリート用に用意した素晴らしいパッケージです: github.com/pichillilorenzo/JavaScript-Completions
Steve Meisner

私のような誰かがこの問題に対処するために。これが私がVS Codeに切り替えた理由です。JSモジュール全体でオートコンプリートを取得することでも機能する、このすばらしいIntellisense機能があります。これまでにそれを楽しんでいます。
セルギーオストロフスキー2017年

回答:


77

提案は、(基本的に)現在開いているファイルのテキストと、定義したスニペットまたは補完(ref)に基づいています。さらにテキストの提案が必要な場合は、以下をお勧めします。

余談ですが、Sublimeコミュニティを最大限に活用するには、パッケージコントロールインストールすることをお勧めます。上記のオプションの一部は、パッケージコントロールを使用しています。Sublimeを使用する際の効率の改善に関するあらゆる種類の情報を含むtutsplus Sublimeチュートリアルビデオも強くお勧めます。


1
素晴らしいEmmetツールキットに基づいて賛成投票されました!感動です。ChromeウェブインスペクタほどJSを認識していませんが、それほど悪いことではないと思います。(結局のところ、私は私の筋肉の記憶を強化したいと思います。)一方、エメットがあなたのために行う仕事は素晴らしいです!ありがとう!
ezequiel-garzon 2012

2
よかったよかったです。チュートリアルのシーケンス全体を見ていただければ幸いです。そこには良いものがたくさんあります。
dbn

1
しかし、それは無料ではありません:/多分それは以前でした。
Jeff P Chacko

3
それはtutsplusサイトの広告だったような気がします。多分それは元々ではなかったかもしれませんが、私はペイウォールの背後ではなく、リンクされた回答を見たいと思います。
dcmbrown 2016年

ええ、そうです、私が見たとき、それらはすべて無料でした。これらはペイウォールの背後にあることに注意して更新の回答。
dbn 2016年

66

Ternjsは、JSオートコンプリートを取得するための新しい代替手段です。http://ternjs.net/

Sublimeプラグイン

Sublime Textの最もよく維持されているTernプラグインは「tern_for_sublime」と呼ばれます

「TernJS」と呼ばれる古いプラグインもあります。これはメンテナンスされておらず、パフォーマンスに関連するいくつかのバグが含まれているため、Sublime Textがクラッシュします。


2
ST3がクラッシュします。プロジェクトは維持されません。
コード

1
経験はありませんが、どのパッケージを使用していますか?私はgithub.com/marijnh/tern_for_sublime
subhaze

2
回答とコメントで提供したリンクにあるものを使用することをお勧めします。それはまだ維持されています。
subhaze 2015年

1
私は本当にそれを「塩分」とは見ていませんが、私がリンクしたプラグインが維持されていなかったとあなたのコメントが間違っていたことを指摘したいと思います。githubに最新のアップデートがあるため。
subhaze

1
私はコメントを更新して、できれば塩味が少なくなるようにしました:/そして、これらのコメントを読んでいる間は、うまくいけば、人々は「舵を切らない」が正しい方向に向かないでしょう。
subhaze

41

すでに述べたように、tern.jsはSublime Text、Vim、Emacs用のプラグインを備えた新しい有望なプロジェクトです。私はしばらくの間TernJS for Sublimeを使用しており、私が得る提案は標準のものよりもはるかに優れています:

ここに画像の説明を入力してください

Ternはプロジェクト内のすべての.jsファイルをスキャンします。.sublime-projectファイルに「libs」を追加すると、DOM、nodejs、jQueryなどのサポートを利用できます。

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

ここに画像の説明を入力してください


最後の例では、 'src'の提案が表示されません-(Sublime Text 3)をインストールしてプロジェクト設定を使用しました。
Rune Jeppesen、2015年

2
ES6(ES2015)スタイルのJavaScriptのサポートはありますか?
Dan Esparza

1
うん、tern.jsのプロジェクトサイトは、サポートされているES6のリストが含まれています
eosterberg

1
何それの価値について、あなたは「崇高ためのアジサシ」を使用して述べているが、それはアジサシのための崇高な...プラグインternJSにリンク- > packagecontrol.io/packages/tern_for_sublime TernJS - > packagecontrol.io/packages/TernJS
subhaze

createTagがimg HTTPタグを返すので、あなたがselectedIndex属性を取得したことに驚いています。さらに、selectedIndexは、imgまたはその親要素ではなく、選択されたHTTPタグに属しています。この2つの提案をどのようにして得るかについて、コメントを寄せていただけませんか?JsTernが実行時にcreateElement呼び出しを解決する機能を持っているからではなく、他のファイルでそれらを使用したためだと思います。それでも、selectedIndexを提案しても意味がありません。
Alex

9

3つのアプローチがあります

  • SublimeCodeIntelプラグインを使用する

  • CTagsプラグインを使用する

  • .sublime-completionファイルを手動で生成する

アプローチについては、(私の)このブログ投稿に詳しく説明されています。http//opensourcehacker.com/2013/03/04/javascript-autocompletions-and-having-one-for-sublime-text-2/


良いアプローチであり、私のものとは非常に異なります。
dbn 2013年

6

私はJavaScript拡張と呼ばれる新しいプラグインを開発しました。これはパッケージコントロールで見つけることができます。これは、使用してフローフードの下(のFacebookからのjavascriptの静的型チェッカーを)。

さらに、(他のプラグインJavaScriptコンプリーションと比較して)スマートなjavascriptオートコンプリートリアルタイムエラーコードリファクタリング、およびJavaScriptプロジェクトの作成、開発、管理に関する多くの機能を提供します

それが提供するすべての機能を知るためにウィキを参照してください!

このプラグインの紹介は、css-tricks.comの記事にあります:Sublime Text 3をJavaScript IDEに変換

いくつかの簡単なスクリーンショット:


1
こんにちはロレンゾ。あなたのプロジェクトについて知りたいのですが、補完のカスタマイズに関してどのオプションを利用したいですか。基本的に、docu> documentdocument.que> document.querySelectorなどの提案が必要ですが、引数とarr.forEa>のような複数の行を含む完全な関数呼び出しarr.forEach((object,index,array) => { /* newline */ });は、理にかなっている場合は絶対に行いません。すべての補完ファイルを手動で編集しなくても、JavaScriptの拡張機能で無効にできますか?私は自分の構造に少しこだわっているため、すべての補完を無効にしました。
ViggoV


1

スニペットに<tabTrigger>特殊文字で始まる属性があるかどうかを確認してください。その場合、オートコンプリートボックスには表示されません。これは現在、利用可能なjQueryプラグインを使用するWindowsの問題です。

詳細については、このスレッドで私の回答を参照してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.