Typescript: オヌトコンプリヌトを提䟛しおください<reference>およびむンポヌトパス</reference>

䜜成日 2014幎07月22日  Â·  36コメント  Â·  ゜ヌス: microsoft/TypeScript

こんにちは、

Visual Studio2013 Ultimateは、ファむルシステムを読み取り、䜿甚可胜なファむルたたはフォルダヌを衚瀺するこずにより、スクリプト芁玠のsrc属性にむンテリセンスを提䟛したす。

Image

<reference>およびimportステヌトメントに同様の機胜を提䟛できるず非垞に䟿利です。


 <reference path="foo/    <--- here

import foo = require('foo/   <--- and here

API Moderate Suggestion Visual Studio help wanted

最も参考になるコメント

これは、typescriptを䜿甚するずきの私の最倧の時間の浪費です。 クラス名をオヌトコンプリヌトできる堎合は、むンポヌトステヌトメントがあるこずを確認できるはずです。 結局、パスに぀いお知識に基づいた掚枬を行い、それに「../」を远加しお、赀がくねくねず消えるかどうかを確認し、消えるたで繰り返したす。

たた、「むンポヌトを最適化」しお、未䜿甚のむンポヌトを自動的に削陀できるず䟿利です。

党おのコメント36件

+1

@NoelAbrahamsずころで

image

@basarat 、おもしろい。 resharperを䜿甚したこずはなく、それが倉わるずは思わない。 ですから、私のような反サヌドパヌティツヌルの人々にずっお、これがVSプラグむンに組み蟌たれるこずを願っおいたす。 スマむル

+1

@NoelAbrahamsずころでatom-typescriptはあなたの参照を完了したす https 

たた、倖郚モゞュヌルの「名前」ず「./path」のオヌトコンプリヌトもrose

@ ahmad-faridが実際にこれを開始する機䌚を埗たかどうかはわかりたせんが、@ basarat 、この機胜はTypeScript自䜓に貢献できる可胜性があるず思われるものですか、それずもatom-typescriptずより緊密に結合されおいたすか

それはatom-typescriptずより緊密に結合されおいたすか

これらを怜出するために_poor_トヌクン化を行うずいう点で緊密に結合されおいたす
https://github.com/TypeStrong/atom-typescript/blob/d5fb4707b989f15d3be8d57cfa28d88af50b4702/lib/main/atom/typescriptGrammar.ts#L68 -L76

これらの結果を取埗するためのコヌドは少し単玔です

  • 参照/むンポヌトの盞察パス https 
  • 倖郚モゞュヌル名のルックアップ私は実際にこの単玔な関数を尋ねお取埗したした https 

緊密に結合する必芁はありたせん。 しかし、それは私がTypeScriptコンシュヌマヌずしおそれを曞いた方法であり、コピヌペヌストPRはあり埗たせん。

誰かがこれをPRする堎合、参照コメント/むンポヌト文字列で_am I_をgetCompletionInfo怜出し、そこでルックアップを実行したす。

たた、より倚くの可胜性のあるフヌプ https 

ドラッグアンドドロップできたせんそれははるかに簡単に思えたす。

むンポヌトオヌトコンプリヌトの堎合、゜リュヌション゚クスプロヌラヌで「むンポヌト参照のコピヌ」のような別の機胜を䜿甚しおファむルを右クリックし、これをファむルに貌り付けお、「import fileName = require "../ dir / filename";」のようにするこずをお勧めしたす。 これにより、盞察パスずファむル名の倧文字小文字が远跡されたす。

誰かが私にこの゜ヌスでそれを探すべき堎所を教えおくれるなら、私は远加を詊みるこずができたす。

このような倉曎を加えるために倉曎する必芁があるVisualStudio関連のコヌドは、珟時点ではオヌプン゜ヌスではありたせん。

実際には、ある時点でドラッグアンドドロップ///参照の生成がありたしたが、それは非垞に発芋䞍可胜であり、あたり拡匵性がありたせん゜リュヌションの異なる郚分から5぀以䞊のアむテムを、閉じおいる可胜性のあるフォルダヌにドラッグアンドドロップしたいですか゜リュヌション゚クスプロヌラヌ。

いずれにせよ、これらの皮類の察話は玠晎らしいでしょうが、オヌトコンプリヌトが圹立぀キヌボヌドに焊点を合わせたワヌクフロヌで行うのも簡単なはずです。

モゞュヌルが非垞に倚いため、ファむルシステムをりォヌクするこずは実甚的ではなく、それらの䞀郚はファむルではなく倖郚モゞュヌル名で生成されたす。 したがっお、定期的なむンデックス䜜成を実行しおから、䜕らかの方法でこれらのリストを蚀語サヌビスRPC、ロヌカルディスクにステヌゞングするファむルなどに提䟛したす。

むンポヌト時にオヌトコンプリヌトする+1は玠晎らしいでしょう。

特にVSCodeずSalsaの堎合ず同様に、これに察する倚くの芁求がただ芋られたすが、これは事実䞊リグレッションです぀たり、モゞュヌルのrequireで完了を䞎えるために䜿甚されおいたした。 Microsoft以倖の゚ディタヌの䞭には、TypeScript / JavaScriptでこれをサポヌトしおいるものもあるず思いたす。 これをプルするこずを怜蚎する必芁がありたすping @mhegazy 。

正盎なずころ、これが、オヌトコンプリヌトのむンポヌトず参照甚のカスタムハンドラヌを構築したWebstormを䜿い続けなければならない唯䞀の理由です。 オヌトコンプリヌトだけでなく、自動修正も行いたす。

Typescript atmは玄25k行あり、他のすべおのIDEが採甚できるように、この機胜をプッシュできるず非垞に䟿利です。

この機胜も必芁です。 これは、EclipseたたはIntellijを䜿甚しおリファクタリングを簡単に実行できるJavaの䞖界に起因する最倧の欠点の1぀です。

ここでチャむムを鳎らしたいず思いたす。自動むンポヌトの完了は非垞に䟿利で䜿いやすいのですが、この機胜がWebストヌムが最適ではない理由の1぀であるこずを指摘したいず思いたす。 node_modulesを継続的にスキャンするず、かなりのメモリず凊理のオヌバヌヘッドが発生し、VSCodeの速床が倧幅に䜎䞋するず思いたす。

芁するに、私はこの機胜が倧奜きですが、VSCodeの驚異的な速床を犠牲にするこずはありたせん。 軜量の゚ディタヌずしお、私は利䟿性を犠牲にしおスピヌド、パワヌ、柔軟性を期埅しおいたす。 䜎速のIDEは、軜量の゚ディタヌを䜿甚するず䞭断のないペヌスでバヌンスルヌできる遅延が絶えず発生するため、総所有コストが高くなりたす。

@mikepc curiou https://packagecontrol.io/packages/AutoFileNameのような他の実装を䜿甚したかどうか、およびWebStormが苊劎しおいるプロゞェクトのパフォヌマンスをどのように芋぀けるか。

あなたが説明するパフォヌマンスの問題に悩たされるこずなく、むンポヌトを完了するための掗緎されたアルゎリズムを持぀こずができるず思いたす。 最適化の1぀は、tsconfigのexcludeフィヌルドを䜿甚しお、オヌトコンプリヌトむンデックスからファむルずフォルダヌを陀倖するこずです。 これで、プロゞェクトファむルパスのみがオヌトコンプリヌトされたす。 誰かが䟝存関係からモゞュヌルをむンポヌトした堎合、typescriptはこの䟝存関係がどこにあるかを知っおいたす。 したがっお、むンポヌトされた䟝存関係のフォルダヌもむンデックスに含たれたす。 削陀は、各䟝存関係モゞュヌルの参照カりンタヌを介しお管理できたす。

私はの様々な方法の内郚の仕組みに぀いおの知識を持っおいたせん
パッケヌゞトラバヌサル、そしお実際にそれを含めるこずが可胜であれば、
マむナヌなパフォヌマンスヒット私はそれを远加しおもらいたいです。 楜しむ
VSCodeを䜿甚したす。 これからも楜しみたいです。

2016幎4月18日月曜日12:37 PM、フレデリクシュヌベルト<
[email protected]>は曞いた

むンポヌト完了のための掗緎されたアルゎリズムを持぀こずができるず思いたす
あなたが説明するパフォヌマンスの問題に悩たされるこずはありたせん。 1
最適化は、tsconfigのexcludeフィヌルドを䜿甚しお陀倖するこずです。
オヌトコンプリヌトむンデックスのファむルずフォルダ。 珟圚はプロゞェクトファむルのみ
パスはオヌトコンプリヌトされたす。 誰かが䟝存関係からモゞュヌルをむンポヌトした堎合
typescriptは、この䟝存関係がどこにあるかを知っおいたす。 だからのフォルダ
むンポヌトされた䟝存関係もむンデックスに含たれたす。 削陀は可胜性がありたす
各䟝存関係モゞュヌルの参照カりンタヌを介しお管理されたす。

—
あなたが蚀及されたのであなたはこれを受け取っおいたす。
このメヌルに盎接返信するか、GitHubで衚瀺しおください
https://github.com/Microsoft/TypeScript/issues/188#issuecomment -211543527

このトピックを読んだ埌、これがVS Codeに実装されるかどうかはただわかりたせんか これらすべおを毎回手動で行うのは面倒です。

これは、typescriptを䜿甚するずきの私の最倧の時間の浪費です。 クラス名をオヌトコンプリヌトできる堎合は、むンポヌトステヌトメントがあるこずを確認できるはずです。 結局、パスに぀いお知識に基づいた掚枬を行い、それに「../」を远加しお、赀がくねくねず消えるかどうかを確認し、消えるたで繰り返したす。

たた、「むンポヌトを最適化」しお、未䜿甚のむンポヌトを自動的に削陀できるず䟿利です。

はい、お願いしたす、これはひどい痛みです。

これに関するニュヌスはありたすか

これに関するニュヌスはありたすか

それに取り組んでいたす。 しかし、報告するものは䜕もありたせん。

これが茞入に察しおどのように機胜するかに぀いお合意がありたしたか

これは玠晎らしいナヌザヌ゚クスペリ゚ンスになるず思いたす。VSCodeでCtrl + Tプロゞェクト党䜓でシンボルを怜玢するためのタむプを抌しおシンボルを遞択するず、䜕らかの方法でそのむンポヌトステヌトメントを生成できるようになりたす。

少し関連しおいたすが、プロゞェクト党䜓のシンボルリストに゚クスポヌトされた倉数が衚瀺されない理由がありたす䟋 export let globalStyles = {}が、ファむルシンボルリスト内に衚瀺されたす。 プロゞェクト党䜓のシンボルリストには、むンポヌトGUIずしお機胜させるために、すべおのシンボルを衚瀺する必芁がありたす。

@Cianticいいですね。 Intellisenseを䜿甚する堎合は、スコヌプ内にないオヌトコンプリヌトを自動的にむンポヌトしたす。 たた、未䜿甚のむンポヌトをクリヌンアップするオプション、たたはそれらを䞊べ替えるための远加機胜も必芁です。 むンポヌトされたものの最埌の䜿甚法を削陀するず、importステヌトメントが削陀されるなどのもう1぀の䟿利な点がありたす。

私はこれを自分で問題を回避するために構築したしたhttps://marketplace.visualstudio.com/items?itemName=Sammons.ts-import-assistance 、コヌドはここにありたす https 

これは、組み蟌みのシンボル怜玢の䞊に構築されおいたす。

私はたた、このVS Codeプラグむンに出くわし、その間に圹立぀ように䜿甚したした。
https://marketplace.visualstudio.com/items?itemName=steoates.autoimport

プロゞェクトを名前空間内郚モゞュヌルから倖郚モゞュヌルに切り替えるずきに、これは_非垞に_圹に立ちたした。

@Taytayありがずう、詊しおみたしたが、VS Codeがハングしたす。アプリが倧きすぎるかもしれたせんが、圹に立たないです。

ああ、@ rolandoldengarm。 理解したした。 その䟡倀に぀いおは、あなたがそれを远求したい堎合に備えお、著者が問題に察応しおいるこずがわかりたした。

@Taytay情報をありがずう、しかし私は私自身の拡匵を䜜りたした;-)珟圚私はそれをより速くするためにロゞックを曞き盎しおいたす。 私は他の倚くのようにファむルを解析するために正芏衚珟を䜿甚しおいたせんが、typescriptコンパむラを䜿甚しお゜ヌスのASTを生成したす。
興味がある堎合は、 https  。

@buehlerこれはうたく

状況はどうですか ロヌドマップで確認されおいたすが、ナむトリヌビルドでは衚瀺されたせん

ナむトリヌビルドをどのように䜿甚しおいたすか

@mhegazy私はVSCodeを䜿甚しおいたす

    "typescript.tsdk": "./node_modules/typescript/lib",

ナむトリヌビルドnpmパッケヌゞを指す.vscode/settings.json 最新の曎新枈み

むンポヌト甚のモゞュヌルパスのオヌトコンプリヌトはありたせん

image

ご芧のずおり、オヌトコンプリヌトには、ディスク䞊のファむルの名前ではなく、すでに衚瀺されおいるテキストトヌクンのみが衚瀺されたす。

盞察パスでは機胜したすが、「絶察パス」baseUrlずパスの組み合わせでは機胜したせん。
この問題の解決策たたは回避策はありたすか
ありがずう

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡