14 ReSharperのナビゲヌションおよび線集機胜

ツヌルは才胜を高める手段です。 圌らがより良く、あなたがそれらをより良くすればするほど、あなたはより倚くのこずができたす。

アンディハントずデむブトヌマス「実甚的なプログラマ。 芋習いからマスタヌぞの旅 ''



免責事項 これはカスタムメむドの蚘事たたは完党に無料の蚘事ではありたせんJetBrains、私は䜕も瀺唆しおいたせんJ。 以䞋は、 Visual Studioの䞀般的な拡匵機胜の機胜およびスタゞオ自䜓の同様の機胜のみです。私は個人的に日垞の掻動で䜿甚しおいたす。



道具は曲がった手にずっお䞇胜薬ではなく、それ自䜓では、よく知られた四本足のがろきれのような仕事を匕き裂くこずができる普通の専門家から普通の地獄のような悪魔を䜜るこずはありたせん。 それらはあなた自身のタスクを解決するのではなく、必芁な䜿甚ディレクティブの远加、フォヌマットの問題、コヌドナビゲヌションなどのありふれた事柄に぀いお考えるこずなく、いく぀かの日垞的なこずを肩から倖しお、䞻な事柄に集䞭する機䌚を䞎えるのに圹立ちたす。 倚くのツヌル特にReSharperは、コヌド内の゚ラヌの怜出、コヌディング暙準の遵守、単䜓テストの実行など、その他の重芁床の䜎いタスクの解決に圹立ちたす。 そしお、これらの機胜はすべおメガフィットそのものですが、今日は䞻にナビゲヌションず怜玢機胜に焊点を圓おたす。



説明の圢匏は次のずおりです。機胜名、括匧内はVisual Studioスキヌマ、次にIDEAスキヌマのホットキヌです。



䟋タむプぞ移動Ctrl + T、Ctrl + N。





1.シンボル補完のむンポヌトShift + Alt +スペヌス、Ctrl + Alt +スペヌス


誰もがファンタスティックなIntelliSense ReSharperを知っおおり、10番目のスタゞオでは非垞に優れおいたす。 しかし、IntelliSenseの特性は、usingディレクティブを䜿甚しお既にむンポヌトされた文字でのみ機胜するこずです。 しかし、型名たたはその䞀郚は知っおいるが、それがどの名前空間にあるのかがよくわからない状況がありたす。 この堎合、完党なタむプ名でドラむブし、Alt + Enterを䜿甚しお目的のネヌムスペヌスを远加できたすセクション9. 自動 - ディレクティブ を䜿甚した むンポヌト を参照。ただし、名前の䞀郚しかわからない堎合、この方法は機胜したせん。 ずにかく、すべおの文字を螏み぀ける必芁がありたすが、これは必ずしも䟿利ではありたせん。



暙準のコヌド補完メカニズムずは異なり、 Import Symbol Completionは、「可芖」タむプ間だけでなく、珟圚のアセンブリで䜿甚可胜なすべおのタむプ間でも入力語の察応を怜玢したす。







2 ..ファむルずタむプの怜玢


少なくずもいく぀かのナビゲヌション機胜が、 Navigate Toコマンドの圢匏でVisual Studio 2010の構成に远加されたしたEdit.NavigateToコマンド、詳现に぀いおは、Scott GattreeのメモVisual Studioでの怜玢ずナビゲヌションのヒント/コツを参照しおください。 ただし、VS2010のこのコマンドの暙準バヌゞョンずは異なり、ReSharperには、タむプ怜玢、ファむル怜玢、および文字怜玢ずいう1぀のコマンドではなく、いく぀かのコマンドがありたす。 䞀方で、これにはより倚くのホットキヌを芚えおおく必芁がありたすが、目的のクラスたたはファむルをすばやく芋぀けるこずができたす。



すべおの怜玢機胜はCamelCaseの補完をサポヌトしおいるため、 tmcを入力するず、 T ext M essage C omand、 T est M ono C ompilerなどが芋぀かりたす。



• タむプに 移動 Ctrl + T、Ctrl + N-タむプ名で怜玢クラス、むンタヌフェむス、列挙、構造を怜玢



• ファむルに移動 Ctrl + Shift + T、Ctrl + Shift + N-ファむル名で怜玢



• シンボルに 移動 Shift + Alt + T、Ctrl + Shift + Alt + N-VS2010からのナビゲヌトの類䌌、タむプ名たたはこれらのタむプ内のメンバヌによる怜玢。



ちなみに、3皮類すべおの怜玢より正確には4぀、 Go to File Memberもあるため の間で、珟圚の怜玢を閉じずに切り替えるこずができたす぀たり、突然タむプを探し始めた堎合に怜玢バヌを再床入力する必芁はありたせんが、 -soファむルを怜玢したす。



泚

実際、VS2010からのナビゲヌトは、 Go to Symbol ReSharperチヌムに最も近いですが、 ナビゲヌト先 もファむル名を怜玢したす。これにより、アヌキテクチャ図やその他のファむルを含むファむルの圢で予期せず倧量の「ノむズ」が生じるこずがありたす。明らかに興味がない。



以䞋は、ReSharperの次の機胜を備えたスクリヌンショットです。タむプに移動、ファむル名に移動、シンボルに移動















3.ファむルメンバヌに移動Alt + \、Ctrl + F12


Visual Studioの䞀郚ずしお、特定のファむル内のメンバヌ名に移動するこずができたすこの機胜はナビゲヌションバヌ、 Windowコマンド。MoveToNavigationBarず呌ばれたすが、同様のReSharper機胜の方が少し䟿利です。 たず、 Go to File Memberは、タむプたたはファむル怜玢ず同じフィルタリングおよび怜玢機胜をサポヌトしおいたす぀たり、CamelCase怜玢をサポヌトしおいたす。 次に、[ファむルメンバヌに移動]は、宣蚀の順序ではなく、わずかに異なる順序コンストラクタヌ、フィヌルド、プロパティ、メ゜ッドでメンバヌのリストを衚瀺したす。これにより、コンストラクタヌぞの移行が可胜な限り䟿利になりたす。







4.ナビゲヌトAlt +“ '”、Ctrl + Shift + G


ReSharperは、宣蚀ず実装ぞの移行、基本クラスず子孫ぞの移行など、さたざたなナビゲヌション機胜をサポヌトしおいたす。 各チヌムには察応するホットキヌがありたすが、それらはdofigよりも少し倧きいため、どうにかしおそれらをすべお芚えたくないでしょう。 たず、すべおのナビゲヌション機胜にアクセスできる1぀のコマンドを芚えおおいおください。これは、既に特定のアクションを遞択できるNavigate Toずいうナビゲヌションコマンドです。 このコマンドをVisual Studioからのナビゲヌトず混同しないでください。VisualStudioからは、タむプずファむルの怜玢の説明で蚀及したした。







ほずんどのナビゲヌションコマンドはよく知られおいたすが、1぀を個別に遞びたいず思いたす。 これは実装に移動Ctrl + F112、Ctrl + Shift + Alt + Bです。



珟圚、むンタヌフェヌスに基づいたさたざたな疎結合アヌキテクチャが非垞に人気がありたす。 その結果、むンタヌフェむス型倉数を介しおメ゜ッドが呌び出されるず、実際に䜕が呌び出されるかが完党に明確になりたせん。 この堎合、メ゜ッドの宣蚀ではなく「実装ぞの移行」が非垞に䟿利です。







5.「最新のファむル」をナビゲヌトする


1. [ VS ] 埌方ぞの移動  衚瀺 。NavigateBackward 、 Ctrl +-、 前方ぞの移動  衚瀺 。NavigateForward 、 Ctrl + Shift +-



2. [ R ] Recent Files  Ctrl +“、”、 Ctrl + E  -最近衚瀺されたファむルのリスト



3. [ R ] 最近の 線集  Ctrl + Shift +“、”、 Ctrl + Shift + Alt + Backspace  -最近倉曎されたファむルのリスト



4. [R]゜リュヌション゚クスプロヌラヌでファむルを怜玢Shift + Alt + L、Shift + Alt + L -゜リュヌション゚クスプロヌラヌで珟圚のファむルの堎所を衚瀺



゜リュヌションを培底的にナビゲヌトするず、倚くの堎合、以前のファむルに移動する必芁がありたす。 もちろん、開いおいるタブに切り替えるこずもできたすが、これが垞に最も䟿利なナビゲヌション方法ずは限りたせん。



1぀以䞊のステップに戻るたたは進むための最も簡単な方法は、暙準のVisual Studioコマンド-埌方/前方に移動するこずです。 ただし、䞀床に耇数のレベルに戻る必芁がある堎合は、 最近の ファむルリストを怜玢する方が簡単です他の機胜ず同様に、最近のファむルは、キャメルケヌス怜玢など、目的のファむルを怜玢およびフィルタヌする機胜をサポヌトしおいたす。







それずは別に、゜リュヌション゚クスプロヌラヌで珟圚のファむルの䜍眮を衚瀺する機胜に泚意したい゜リュヌション゚クスプロヌラヌでファむル を 怜玢 。



6.コヌドを䞊䞋巊右に移動したすCtrl + Alt + Shift +侊/例/å·Š/右


このコマンドを䜿甚するず、クラスメンバヌを構造化したり、メ゜ッド内でコヌドのブロックを移動したりできたすたずえば、if / for etcブロック内でコヌドを远加たたは削陀できたす。







7.次のメンバヌ/タグに移動Alt +䞋、前のメンバヌ/タグに移動Alt +䞊


これは、Ctrl + Up / Downを䜿甚したWordの段萜ナビゲヌションのようなものです。この堎合のみ、「段萜」がクラスのメンバヌメ゜ッド、プロパティ、むベント、フィヌルドです。



8. コヌドの 生成  Alt + Insert 


ReSharperは、コヌドを生成するためのさたざたな機胜をサポヌトしおいたす。そのほずんどはAlt + Insertで利甚できたす。 ゜リュヌション゚クスプロヌラヌから、クラス/構造/列挙を生成するためのテンプレヌトを䜿甚できたす独自のテンプレヌトを远加および倉曎できたす。







たた、クラスから、コンストラクタヌ、プロパティ、メ゜ッドのオヌバヌロヌドなどを生成する別のコマンドを䜿甚できたす。







少なくずも、コンストラクタヌ、オヌバヌロヌドメ゜ッド、および比范メ゜ッドの生成に泚意を払う必芁がありたす比范メ゜ッドは別のトピックであり、それらを正しく蚘述するのは少なくずも面倒です。



9.ディレクティブを䜿甚した自動むンポヌトAlt + Enter


私が垞に䜿甚しおいるもう1぀の䟿利な機胜は、 usingディレクティブの自動むンポヌトです。







䞊の図は、ReSharperずVisual Studioの䞡方の組み蟌みツヌルの機胜を瀺しおいたすVisual Studioからの修正を含むコンテキストメニュヌは「スマヌトタグ」View.ShowSmartTagず呌ばれ、Alt + Shift + F10たたはCtrl + "。"で䜿甚できたす。 異なるホットキヌを䜿甚するこずに加えお、2぀の実装の違いは、ReSharperは远加されたアセンブリだけでなく、゜リュヌションの他のすべおのアセンブリでもこれらのタむプを怜玢するこずです。これは、単䜓テストでプロゞェクトで䜜業する堎合など、非垞に䟿利です䞀郚のプロゞェクトがただ远加されおいない堎合。







10. モゞュヌルに 䟝存 する コヌド を芋぀ける


特定のアセンブリから具䜓的に䜕が䜿甚されおいるのかを理解するず圹立぀堎合がありたす。 これらの目的のために、ReSharperは6日目に特定のアセンブリに䟝存するコヌドを怜玢する機胜を远加したした。 ゜リュヌション゚クスプロヌラヌ->参照-> System.Xml.Linq->モゞュヌルに䟝存するコヌドの怜玢。







11.行たたは遞択範囲を耇補するCtrl + D


コピヌず貌り付けは悪意があるこずは明らかですが、良い手の䞭にありたす...䞀般に、堎合によっおは、フラグメントたたは珟圚の行を耇補するこずが有甚です。



ずころで、ここで別の同様の機胜今回はReSharperではなく、スタゞオの機䌚ですに蚀及する䟡倀がありたす。これはよく䜿甚したす。遞択せずに行党䜓を削陀する- 珟圚の 行を カット たたは 削陀 Edit.LineCut、Edit .LineDelete、Ctrl + L、Shift + Del。



12.パラメヌタヌ情報Ctrl + Shift + Space、Ctrl + P


メ゜ッド呌び出しが既にコヌドに完党に蚘述されおいる堎合、メ゜ッドパラメヌタヌたたは远加のメ゜ッドオヌバヌロヌドに関する情報を調べる必芁があるこずが非垞に倚くありたす。 通垞、この問題は、メ゜ッドの開き括匧を削陀しおから再床駆動するこずで解決されたす。 その結果、IntelliSenseが呌び出され、メ゜ッドたたは目的のパラメヌタヌに関する情報が衚瀺されたす。



しかし、もっず簡単なオプションがありたす-Parameters Infoコマンドを䜿甚したす。 この関数は、Visual Studioキヌの組み合わせは同じCtrl + Shift + SpaceずReSharperの䞡方で䜿甚できたすが、唯䞀の違いはどちらのIntelliSenseが呌び出されるかです。







13. クむック ドキュメンテヌション


ただし、Visual StudioずReSharperの䞡方で䜿甚できる、䜿いやすさのわずかな違いがある別の機胜。



[VS]クむック情報Edit.QuickInfo、Ctrl + K、I





[R]クむックドキュメントCtrl + Shift + F1、Ctrl + Q





残念ながら、あなたが突然契玄プログラミングが奜きなら、これらのツヌルはどれも通垞の前提条件ず事埌条件を瀺さず、むしろそれらはたったく衚瀺したせん。 この情報をVisual Studioからツヌルヒントに远加するCode Contracts Editor Extensionsずいうスタゞオぞの拡匵機胜がありたすが、この拡匵機胜の安定性は非垞に䜎くなっおいたす。



14. ReSharper 名前空間 プロバむダヌ


暙準的な呜名のむディオムの1぀は、プロゞェクトの論理構造名前空間ず物理構造フォルダヌの調敎です。 ぀たり、 パブリッククラスの名前はファむルの名前ず䞀臎する必芁があり、 名前空間はファむルが配眮されおいるフォルダヌの構造ず䞀臎する必芁がありたす。



ほずんどの堎合、そのようなスキヌムに埓うこずは合理的であり、それはたさにReSharperアナラむザヌが考えおいるこずであり、これに埓わない堎合、圌は文句を蚀い、再び考え、正しい名前空間を䜿甚するこずを提案したす。







ただし、垞にこのような原則に埓うこずは困難ですが、ReSharperのこの機胜を無効にするこずは望たしくありたせん。 このゞレンマは非垞に簡単に解決されたす。フォルダヌプロパティに移動し、 Namespace ProviderをFalseに蚭定するだけです。







おわりに


ReSharperは長い間、膚倧な数の機胜を備えたたずもなモンスタヌであり、私が垞に䜿甚しおいる機胜の䞀郚のみをここに瀺したす。 これは、䞊蚘のすべおの機胜がすべおの人にずっお䟿利であるこずや、他の䟿利な機胜がないこずを意味するものではありたせん。 そのため、たずえば、リファクタリング、簡単な修正、コヌディングスタむルの提䟛手段、単䜓テストの実行、テンプレヌトなどに぀いおは、意図的に觊れたせんでした。 Visual Studioに関しおは、これは非垞に倚くの機胜を備えた倧きなモンスタヌです。 それらのいく぀かは非垞に䟿利で、いく぀かはかなり平凡ですJetBrainsや同様の人も䜕らかの圢で生蚈を立おる必芁がありたす。 スタゞオ自䜓の䟿利な機胜の䞭で、垂盎線集の可胜性に泚意する䟡倀がありたすこれに぀いおはここでもう少し曞きたした、コヌドの任意のセクションを隠す、匷力な怜玢および眮換ツヌルなどがありたす。 しかし、これは別の投皿のトピックです。



サむトリンク



1. ReSharperの 機胜



はい、公匏ドキュメンテヌションJを読むのが奜きな人はいないこずは知っおいたすが、時にはあなたはそこにたくさんの有甚なものを芋぀けるこずができたす



2. ReSharperの デフォルト キヌマップ



Visual Studioスキヌム pdf

ReSharper 2.x / IDEAスキヌム pdf



3郚を印刷しお、デスクトップの前に吊るしたす



3. 2010幎の Scott Guttrie  Scott Guttrie  の最高の投皿



Scottの投皿には非垞に䟡倀のあるリンクのセットが含たれおおり、そのほずんどはVisual Studio 2010の新機胜に圓おられおいたす。私の蚘事は䞻にReSharperに圓おられおいたすが、それでも共通の機胜に䜕床も觊れたので、スタゞオに関する远加の情報源が圹立ちたす。



All Articles