0

最適な方法は何ですか / 大規模な JavaScript アプリケーションで Eclipse にコンテンツ アシスト/補完を提供させるにはどうすればよいですか。

フロントエンドで HTML/javascript を使用した大規模なアプリケーションを開発しています。多くの関数で javascript 環境が乱雑になるのを避けたいので、アプリケーションの名前空間を構築したいので、それを app と呼びましょう。

名前空間を拡張するために、 app.namespace("package").function = function(){...} を呼び出せるようにしたいと考えています。

namespace("package") は、存在する場合はパッケージを解決し、存在しない場合は作成します。

当面の問題は、このアプローチは環境をきれいに保つのに役立ちますが、コンテンツの支援が難しくなる (または不可能になる?) ことです。

このアプローチをコード補完とEclipseでのコンテンツアシストで動作させる方法についてのアイデアはありますか? これを可能にする他のIDEはありますか?

4

1 に答える 1

0

この質問に対するいくつかの解決策を見つけましたが、どれも私が求めていたものを正確に満たすものではありませんでしたが、それぞれに独自の長所があります. 私はAptana pluginVisual Web Developer 2010 Express、およびWebStormを見ました。

エクリプス

Eclipse の場合、Aptana に行き着きました。このプラグインは、標準の eclips JavaScript パースペクティブよりも強力なコード補完サポートを備えています。ソリューションを機能させるには、実際のコードと一緒に利用できるものを公開する「インターフェイス」を作成する必要がありました。これらのインターフェイスを実際のコードにマッピングするファイル構造に配置し、アプリケーションをビルドするときにそれを除外します。

Aptana プラグインを適切に動作させるには、セットアップにいくつかの変更を加える必要があります。「プロパティ」の下で、「プロジェクトの性質」を「Web」に設定する必要があります。次に、「Preferences/General/Editors/File Associations」を編集して、標準の「JavaScript Editor」ではなく「JavaScript Source Editor」をデフォルトとして設定する必要があります。JavaScript ソース ファイルを再度開いたら、準備完了です :)

ビジュアル Web デベロッパー 2010 Express

実際、これは js 開発にはかなり適しています。マイナス面は、これをインストールすると、マシンに必要のないゴミが大量にインストールされることです。インストールには永遠に時間がかかり、5回(5回!)の再起動が必要です。しかし、準備が整ったら、実際には、入力したコードを擬似的に実行します。実際、動的に生成されたすべてのオブジェクトは、タイプ固有のヘルプ (文字列、数値、オブジェクトなど) を提供する intellisense を使用して利用できます。相互ファイル参照での動作を確認するには、ファイルの先頭にいくつかの魔法を適用する必要があります。

/// <reference path="path to another js source file you want intellisense for">

ウェブストーム

この製品には商用ライセンスが必要になるため、このソリューションについては他の 2 つほど詳しく調べませんでした (非商用使用の場合は無料のライセンスが利用可能です)。この IDE でも、ビジュアル Web 開発者が利用できる多くの機能を利用できるようです。実際、この IDE は、コード補完とコード アシストで 3 つの中で最もヒット数が多いと思います。実際、コード補完でヒットが多すぎると思います。少なくとも、範囲外のヒットがあったため、実際に適切に使用するのが難しくなっています。IDE からより正確なサポートが得られるように、この動作を微調整できることを願っていますが、これ以上調査する時間はありませんでした。

私たちの結論

私たちの側では、おそらく Eclipse または Visual Studio 用の Aptana プラグインを使用します。Eclipse は私たちのデフォルトの IDE であり、私たちの組織は承認された開発ツールのラインに Visual Studio を持っていますが、既に使用している優先的な選択肢が事前になかった場合は、WebStorm をさらにチェックアウトしたでしょう.

于 2012-09-14T07:16:58.483 に答える