-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ソースコードのスタイルに関して #29
Comments
に記載していますが、環境変数 |
Visual Studio の設定を変えて、ペースト時に自動的に整形しないようにするのはいかがでしょうか? |
Visual Studio の標準のスタイルに統一、というのは自動化出来るのでしょうか? どこかのタイミングで何かのスタイルに統一する事自体は反対しません。 どうしてそう考えるかというと他のプロジェクトでの経験なのですが、 あと特定のコーディングスタイルを推奨する人がいつまでも活発にメンテしてくれるかというとそうとも限らないと思うので、PR出す人の負担につながるルールを導入するのは慎重になった方が良いと思います。 |
ソースコード開いて Ctrl + K, Ctrl + D とするとドキュメント全体がオートフォーマットされます。 コーディングスタイルの設定は vs2013 とか vs2015 とかの設定が自動同期されたはずなので、 |
これは編集しているファイル単体が対象のようですね。 Extension の Macros for Visual Studio 入れれば複数ファイル一括で出来るかもしれませんが、そうしないでもコマンドで楽に出来る方法があると良いですね。
メニューの |
何かルールを導入するというわけではなく、何も設定せずに visual studio で編集したときに
コーディング規約を作るわけではないです。 visual studio がデフォルトで何も整形しないのであれば現状でもいいのかもしれませんが、
これだと、ソースコードを編集したい人すべてに対して、Visual Studio の設定をあらかじめ
現在編集しているファイルの場合は、オートフォーマットが可能なのは確認しています。 |
以前、別Issueでかいたと思いますが、コーディングスタイルを決めて「人が」ルールを守るのは、 が、 @m-tmatma さんがおっしゃってるのは、VSが勝手にあらぬところも変えちゃうのでそれで差分が出ないように、手で修正しているということで、それを避けようってことかと思うので、 ペースト時に自動整形しない設定もあるかと思いますが、それだと本当にコーディングするときに各々のコーディング労力が著しく低下したりするのかなと思います。 こんごPRされたソースに対してどうするねんてことかと思うのですが、結局労力の差さと思うので、がちがちにルールを決めずに適宜実施でいいのかなと。 |
設定を変えなければいけない ルール ではなく、設定を変える事で問題を回避するのはどうでしょうか?という 提案 です。 こういう事が生じないようにMSが最初から、貼り付け時にフォーマットするかしないかでコマンドを別々にするか、フォーマットしない貼り付けコマンドを用意してくれていれば良かったのにと思いますが…。 Visual Studio の設定(テキストエディター > C/C++ > 書式設定 以下)を自分好みにカスタマイズしてる人も中にはいると思いますが、そういう人達が同様にペーストした場合に(そしてペースト時に自動フォーマットする設定を有効化していて)結局Visual Studio の標準のスタイルと比べて差異が生じる事にならないでしょうか? で、そういう人が @m-tmatma さんと同じ差分が生じる事による悩みを持った場合は、設定を標準に変えるのが スタイル統一などで差分が大量にあるコミットが必要に応じて生じてもまぁしょうがないと思えるので、されたい事に対して反対しているわけではないですが、人次第で変わってしまう事への解決として統一して周りにも足並みを揃えてもらう、という解決策を取らざるを得なくなるというのはなんかすっきりしないなぁと。。Visual Studio に途中で入ってデフォルトで有効になってしまった機能に振り回されているようで。 別の似たような例ですがセキュア版の関数を使わないと Warning が出るのが標準仕様になったりと(セキュリティホールが頻発しすぎて痛い目にあったからかもしれませんが)開発環境がユーザーに対して半強制的に選択肢を押し付けてくるのも好きではありません。 で、自分の意見としては、コミット作ってまで足並みを揃えるよりかは、エディタの設定を変えれば済む話なのだから変えれば良いのではないかと思います。
それだけで各々のコーディング労力が著しく低下したりするとしたら、お前らどんだけVSに飼いならされてるんだよ…って思います。確か VS2015以降から入った機能だと思いますが習慣って怖いですね。ペースト時に自動整形しない設定にしても後からドキュメントや選択範囲を整形するコマンドがあるので、それを使っていただけないでしょうか。。 差分管理に労力費やさないといけないのは自分も日々経験してますが、@m-tmatma さんが行われている操作内容を同じ設定の環境で行っているわけでは無いので共感出来ていないだけかもしれません。 |
私は、C++側には貢献できていないので、どちらがより楽なのかは全く根拠レスです。 今出てる意見「設定を変える→設定の強要につながる、設定変えない人の差分は出てづける?」「ソースを変える→今後デフォルトが変わったら毎回全ソースコンバートする?」 個人的には、全ソースオートフォーマットするのはあんまりやりたくないですねぇ(仕事だと全プログラム再テストのパターン)。 コンパイルスイッチとかは合わせないとヤバそうですが何か不都合があったら、プロジェクト固有でコンパイルスイッチ等規定が必要な場面の出てきそうなので、なにがしかの設定を強要する(設定しない人も即なにか不都合が起きるわけではない、差分の取り込みが面倒かもしれないが)のも致し方ない気もしてきました。 |
どっちかなぁ・・・言ってることはどちらも正しい気がしました。
個人的には「変な差分」が出るのがめんどくさいです。 サクラエディタのソースコードは700ファイルくらいあるので、 半自動で整形できる手順を用意して手順自体を検証し、 |
あれ?ソースコードの変更が処理内容を変えてるかどうかを検証する枠組みはありますよ。 |
全整形に1票です。VSデフォ設定の人に優しい環境が良いです。影響はアセンブリ比較でイケるかと。 |
なるほど、そうですね、まえやりましたね。 @kobake さんも1票入ったので、こっちっすかねぇ。私はコーダーではないので死に票かと(笑) |
実現方法に関してFormatDocumentOnSave というプラグインVSE-FormatDocumentOnSave という visual studio プラグインがあって、現在開いているドキュメントに対して https://github.com/Elders/VSE-FormatDocumentOnSave 仕組みVisualStudioCommandFormatter というクラスの Format を呼ぶと DTE.ExecuteCommand で 実現方法
|
一括整形した後はどういう運用を考えていますか。 「ある時点の VS によるフォーマット」を強制しては人に優しくありません。自動整形による差分がいったんゼロになるが、その後ソースに手を入れるにつれ微増していくことを許容してもらえるのでしょうか。 |
ここは、がちがちにしないルールは共通認識かと思うので、またPr時に気づいたときにそっと修正するでもいいのかなと思うのですが。 |
許容で良いかと。 |
同じく、許容でよいと思います。 面倒なのはノイズが「ある」ことじゃなくて、ノイズが「多い」ことだと思ってるので。 |
clang-format.exe で整形しているのかと思ったが、
デフォルトでは clang-format.exe は使わないらしい。 |
clangformat とは別に msvcformat がありそうな書き方ですね。 |
使った事無いですがこんなのがありました。 |
むぅ...。ダウンロードして検証中です。
|
イケてそうです・・・ 変更されるファイル数 654でした。 ソリューションの右クリックからでは正常動作しない点、 影響範囲の広いPRがいくつか上がってるので、実施タイミングは別途、と考えています。 |
フォーマッタ試した結果を上げときます。 |
ちょっと見てみましたが、caseの中の {} をインデントしないのは非常に違和感を感じます。 }
break;
} こんなインデント、自分のコードなら不許可です。 |
それは確かに嫌ですw フォーマット設定は弄ってないつもりですが、もしかしたら自分が触った影響かもしれません。 とりあえず上げてみた意図としては、 何も問題なく・・・とはいかないのかなぁ。 |
ファイルヘッダのコピーライトの文章に、
と書かれていますが、3行ほど行末の余分な空白が削られる 変更 がされているので通報しますた。 |
sakura-editor/sakura#1170 どうやって実現するのかで止まっていたと思います。
Edit.FormatDocument の機能に Ctrl + K, Ctrl + D のキーボードが割り当てられているので |
Visual Studio 以外のフォーマッタを使うといろいろ問題みたいですが、 |
sakura-editor/sakura#1172 |
vs2019 + .clang-format でフォーマットしたもの。 一度だけ手動でCtrl+K,Ctrl+Dしてからvsixで一括置換。 sakura-editor/management-forum#29 (comment)
サクラエディタのソースコードで visual studio の標準のスタイルとは異なるスタイルが
使われている箇所がたくさんあります。
例えば以下のコードの部分を選択して、カット & ペーストすると visual studio が
visual studio の標準のスタイルで整形します。
https://github.com/sakura-editor/sakura/blob/82724c0295f3559c3c6bcf2df34a76ba05b5170b/sakura_core/view/CEditView_ExecCmd.cpp#L126-L141
以下は visual studio が自動的に整形したコード
このように visual studio の標準のスタイルと違うスタイルで書かれているコードは
visual studio が自動的に整形するので、コードの場所が近い場所を修正したときに
必要のない修正が入ってしまうことになります。
それで、レビューしやすいように、必要のないスタイルの差分ができないように
手動でwinmerge とかで確認しながら、戻してコミットしています。
しかし、この作業は結構不毛なので、その作業が必要のないようにしたいと思います。
どこかのタイミングで UTF-8 変換でやったようにフォルダを選びながら
すべてのソースコードを visual studio の標準のスタイルに統一したいです。
どう思いますか?
The text was updated successfully, but these errors were encountered: