28

(ビルドシステムの一部として)C#用のきれいなプリンター/コードフォーマッターはありますか?「VisualStudioの外部に存在する」と読みます。Java、C ++ / C、Goには、これらの種類のものがたくさんあるようです。したがって、C#にもIDEの外部にあるコードフォーマッターが必要なのは当然のことのように思われますか?

(実際には、フォーマッターをStyleCopのようなものと結合し、コミット前のプロセスの一部として開発者に実行させたいと思います)。

注:Webページのコードのように、構文の強調表示ではありません。代わりに、コードビューティファイアまたはコードプリティプリンターは、コードを取得してスタイル/標準のコーディング形式にフォーマットします...このStyleCopは、コードがフォーマットに適合しているかどうかを確認するためにスタイルチェックを実行します。

4

8 に答える 8

8

JetBrains は、 .editorconfig設定に基づいて c# をフォーマットするCleanupCodeという名前の無料のコマンド ライン ツールも作成します。ReGitLintという名前のラッパー ユーティリティを作成しました。これにより、プレコミット フックとして、またはビルド サーバー上で実行するのがより簡単かつ高速になります。これは、ReSharper を使用できない Visual Studio Code を使用しているチームメイトがいる場合に非常に役立ちます。

起動して移動するには、次のコマンドを実行するだけです

dotnet tool install JetBrains.ReSharper.GlobalTools
dotnet tool install ReGitLint

次に、以下を .git/hooks/pre-commit に追加します

#!/bin/sh
dotnet regitlint -f staged --fail-on-diff

ジェンキンにフォーマットを強制するには、これをビルドスクリプトに追加します

dotnet tool restore
dotnet regitlint --jenkins

その他のオプションについては、readmeを参照してください

于 2020-06-12T17:09:37.130 に答える
3

最初に頭に浮かぶのはReSharperです。しかし、それはあなたが求めていたものではないVSへのアドインです。保存時に自動フォーマットするように設定できるかどうかはわかりません。

彼らのウェブサイトから:

ReSharperは、コードスタイルの設定に応じて、選択した任意のコードブロック、現在のファイル内のすべてのコード、ディレクトリ内のすべてのファイル、またはプロジェクト全体またはソリューション全体を再フォーマットできます。ReSharperは、C#、VB.NET、JavaScript、CSS、およびXMLコード用の個別のフォーマットオプションを提供します。再フォーマットは、中括弧のレイアウト、空白行、行の折り返しと改行、さまざまなコンテキストでのスペース、インデント、複数の構成の整列、および[ReSharperオプション]ダイアログボックスで微調整できるその他の多くのオプションに影響します。

于 2012-10-26T17:03:25.923 に答える
1

空白とブレースの配置に関する既存の珍しいスタイル ガイドラインがある場合、AStyleはおそらくそれに対応するのに十分柔軟です。AStyle は C# 固有のものではなく、多くの C ライクな言語を実行できます。

スタイルのガイドラインに一致する場合は、 NArrangeも有効です。たとえば、クラスの一部を異なるリージョンに配置して、メソッドを並べ替えることができます。

于 2015-04-29T17:09:52.077 に答える
0

更新: NArrange はもう開発されていません (少し新しいフォークについては、https ://github.com/MarcStan/narrange も参照してください)。


ビルド中にコードのフォーマット (一種のマイクロ リファクタリング) を自動化するには、コマンド ラインから実行できるツールが必要です (また、msbuild に簡単に統合できます)。

必要性が高度すぎない場合 (作成者はbeautifierと定義しています) に適しているのはNArrangeです。Framework 2.0 の C# と VB.NET を完全にサポートしていますが、新しい言語バージョンで広く使用されている多くの機能もサポートされています。

NArrange は、.NET クラス内のコード メンバーと要素を自動的に編成する .NET コード ビューティファイアーです。

于 2012-10-26T17:08:28.873 に答える
0

node.js の力を活用してhttps://www.npmjs.com/package/narrangeを使用できるようになりました。非常にシンプルで構成可能なセットアップ:)

const { createNArrange } = require("narrange");
const path = require("path");

createNArrange({
  srcPath: path.join(__dirname, "src/apps/mango"),
  configFilePath: path.join(__dirname, "config/NArrange.xml")
});
于 2019-03-12T12:18:23.653 に答える