タブまたはスペース:Visual Studioで解決する

こんにちは、Habr! 文化的な戦士は続き、人々はバリケードの反対側で戦い、タブまたはスペースを決定しようとします。 同じテーマで、Scott Hanselmanがこの議論を解決するツール、Visual StudioのEditorConfigについて語る興味深い記事を見つけました。 猫に興味がある人はみんな聞いてみてください。







夏には、人々がスペースでもっと稼ぐというStackOverflow に関する記事があっことを思い出してください。







ジーナ・トラパニと一緒に考えてみましょう。 作業コードを見つけます。



開発者は槍をさらに破ることができますが、コードのフォーマットの問題はEditorConfigファイルを使用して解決されます。 驚くべきことに、多くの人が知らずにそれを使用しているので、この出版物はちょっとした手がかりになるでしょう。 これについて同僚に伝えてください。



プロジェクトを開き、新しい.editorconfigファイルを作成し、次のコードをそこに貼り付けます。 新しい.NETコンソールで「Hello、world!」プログラムを使用します。



[*.cs] indent_style = tab indent_size = tab tab_size = 4
      
      





この例では、* .cs拡張子のみが指定されていますが、 [*.{cs,js}]



指定することも[*.{cs,js}]



必要に応じて[*]のみ、または一度に多くのセクションを指定することもできます。



チームの各メンバーがそのすべての利点を理解できるように、ファイルがプロジェクトとともにシステムに入力されていることを確認してください。



石器時代のような人が区切り文字としてスペースを使用している場合、Notepad2で確認できます。 このエディターのスペースは淡いドットで表示されます。







EditorConfigが組み込まれたVisual Studio 2017でこのプロジェクトを開きます。 プロジェクトの表記法が私たちのものと一致しないという以下のVisual Studioの警告に注意してください。



このプロジェクトのドキュメントをフォーマットするVisual Studioコマンドは、スペースではなくタブを使用します。 Visual Studioで再フォーマットされた同じドキュメントを次に示します。







今、私は平和に眠ることができます:ギャップは打ち負かされ、地味な心が勝利しました(少なくともこのプロジェクトの枠組みでは)。



EditorConfigの.NET拡張



さらに、使用しているエディターで許可されている場合は、特定のファイルまたは言語のEditorConfig拡張機能を追加できます。 これにより、プロジェクトでの従業員の作業の均一性が確保されます。 FxCopとStyleCopに精通している場合、これはほぼ同じです。



.NET EditorConfigの便利なオプションの大部分を使用できます。 彼らのおかげで、チームメンバーは同じ言語標準、命名規則、およびフォーマット規則を適用します。





また、提案、警告、エラーなどのオプションを使用して、ルールの重要度を設定することもできます。



たとえば、従業員がローカルオブジェクトに対して事前定義されたタイプを使用できるようにします。



dotnet_style_predefined_type_for_locals_parameters_members = true:error







Visual Studioでは、従業員が完全な「System.String」フォームの代わりに「string」を印刷する可能性が高いため、修正案が付いた電球アイコンが対応する行に表示されます。







.NET DocsのEditorConfigには、使用または無視できる多くの素晴らしい設定があります。 以下は、いくつかの(混合した)例です。





Visual Studios 2010、2012、2013、または2015を使用している場合は、落ち着くことができます。 最低限、基本的な無料の拡張機能EditorConfigがあり、これを使用して基本的なルールを適用できます。 Visual Studio CodeのEditorConfigファイルを操作するための拡張機能1つあり、数秒でインストールできます。 しかし、C#にはまだ拡張子がありません-スペースを変換するための拡張子は1つだけです。






ところで、夏には、Microsoft Developerでこのトピックに投票しました。 その後、タブを獲得しました。 ここで繰り返すことをお勧めします。



All Articles