0
0

エディターコンフィグにおける命名規則の設定について

Last updated at Posted at 2024-08-04

はじめに

命名規則を決めてはいるがじっさいにコーディングを行う際に抜けてしまうケースは少なくないでしょう。
そんな中警告やエラー表示でエディターが教えてくれれば間違えを防いだり、早期の発見に繋げることができます。
今回はエディターコンフィグによる命名規則の警告について紹介します。

エディターコンフィグの作成

image.png
VSの追加よりエディターコンフィグファイルを作成します。
今回は試しにasyncメソッドのサフィックスに「Async」をつける、「async_method_should_end_with_async」を実際に作成して行きます。

dotnet_naming_rule

下記ルールはもとからあるインターフェースのルールと自作のルールを記載しています。
ここで重要なのは「severity」となり規則違反時の振る舞いを指定します。
「symbles」「style」に関しましては後程でてくるので名前を決めただけと思ってもらえればいいです。

# 名前付けルール
# 元からあるインターフェースのルール
dotnet_naming_rule.interface_should_be_begins_with_i.severity = error
dotnet_naming_rule.interface_should_be_begins_with_i.symbols = interface
dotnet_naming_rule.interface_should_be_begins_with_i.style = begins_with_i
#自作の例
#規則違反の場合エラーを表示させます。
dotnet_naming_rule.async_method_should_end_with_async.severity = error
#シンボル名を「async_method_should」とします。
dotnet_naming_rule.async_method_should_end_with_async.symbols = async_method_should
#スタイル名を「end_with_async」とします。
dotnet_naming_rule.async_method_should_end_with_async.style = end_with_async
項目 概要
severity 規則違反時の振る舞い
symbols 「dotnet_naming_symbols」の名称
style 「dotnet_naming_style」の名称

severity

宣言 詳細
none 無視します。
suggestion 推奨としてエディターに表示します。
warning 警告を出します。
error エラーとして表示します。

dotnet_naming_symbols

#インターフェースのシンボル
dotnet_naming_symbols.interface.applicable_kinds = interface
dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
dotnet_naming_symbols.interface.required_modifiers = 
#自作のシンボル
#メソッドと一応イベントを対象とします。
dotnet_naming_symbols.async_method_should.applicable_kinds = method,event
#基本的にメソッドになるのですべてのアクセス修飾子を対象にします。
#アクセス修飾子別にカメル、パスカルを変える場合はルールを追加する必要があります。
dotnet_naming_symbols.async_method_should.applicable_accessibilities = public, internal
#修飾子はasyncの場合に対象とします。
dotnet_naming_symbols.async_method_should.required_modifiers = async

applicable_kinds

宣言 概要
* すべて
namespace ネームスペース
class クラス
struct 構造体
interface インターフェース
properrty プロパティ
method メソッド、関数
field フィールド、メンバー、クラス変数
event
delegete
parameter
type_parameter
local ローカル変数
local_function

applicable_accessibilities

項目 概要
public パブリック
internal アセンブリ内
private クラス内
protected 派生クラス内
protected_internal
private_protected アセンブリ内かつ派生クラス内
local メソッド内で定義されたシンボル

required_modifiers

宣言 概要
abstract 抽象クラス、抽象メソッド
async 非同期
const 定数
readonly 読み取り専用
static 静的シンボル

#インターフェースのスタイル
dotnet_naming_style.begins_with_i.required_prefix = I
dotnet_naming_style.begins_with_i.required_suffix = 
dotnet_naming_style.begins_with_i.word_separator = 
dotnet_naming_style.begins_with_i.capitalization = pascal_case

#自作のスタイル
#今回はプレフィックス(接頭語)に置きたいものはないので指定はしません
dotnet_naming_style.end_with_async.required_prefix = 
#サフィックス(接尾語)には「Async」とつけさせたいため宣言を行います
dotnet_naming_style.end_with_async.required_suffix = Async
#単語ごとの区切り文字は今回はないため指定はしません
dotnet_naming_style.end_with_async.word_separator =
#今回はパブリックのみにかぎっているためパスカルにします。
#この宣言が必要になるためプライベートとパブリックの分割が必要になります。
dotnet_naming_style.end_with_async.capitalization = pascal_case

dotnet_naming_style

概要
capitalization シンボル内の単語の大文字/小文字スタイル
required_prefix 接頭語
required_suffix 末尾語
word_separator 区切り文字

結果

以下のように今までの設定を書き込むとパブリックのメソッドではエラー表記されます。

image.png

実際に末尾にAsyncを入れるとエラーが消えます。
image.png

参考

https://learn.microsoft.com/ja-jp/dotnet/fundamentals/code-analysis/style-rules/naming-rules
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0