目次
拡張機能の追加
ツール-拡張機能と更新プログラム(U)からeditorconfigをインストールします。
検索、インストール
左側の選択を「オンライン」にし、「editorconfig」で検索するとEditorConfig Language Serviceが出てくるのでインストールします。
インストール後、Visual Studioの要再起動?ここは不明。
プロジェクトに.editorconfigを追加する
ソリューションエクスプローラー右クリック – 追加 – .editorconfig Fileを選択。
ソリューションエクスプローラーには.editorconfigファイルが見えない?ため、エクスプローラーで.editorconfigを確認
.editorconfigファイルの編集
.editorconfigをVSにドラッグし開き、好きなように編集する。
.editorconfigサンプル
インデントはスペース2が好きなのと、{}
は改行しない主義なのでちょくちょく変更。gitに管理予定
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 |
# http://EditorConfig.org # This file is the top-most EditorConfig file root = true # All Files [*] charset = utf-8 end_of_line = crlf indent_style = space indent_size = 2 insert_final_newline = true trim_trailing_whitespace = true # Solution Files [*.sln] indent_style = space # XML Project Files [*.{csproj,vbproj,vcxproj,vcxproj.filters,proj,projitems,shproj}] indent_size = 2 # Configuration Files [*.{json,xml,yml,config,props,targets,nuspec,resx,ruleset,vsixmanifest,vsct}] indent_size = 2 # Markdown Files [*.md] trim_trailing_whitespace = false # Web Files [*.{htm,html,js,ts,css,scss,less}] indent_size = 2 insert_final_newline = true # Bash Files [*.sh] end_of_line = lf # Dotnet Code Style Settings # See https://docs.microsoft.com/en-us/visualstudio/ide/editorconfig-code-style-settings-reference # See http://kent-boogaart.com/blog/editorconfig-reference-for-c-developers [*.{cs,csx,cake,vb}] dotnet_sort_system_directives_first = true:warning dotnet_style_coalesce_expression = true:warning dotnet_style_collection_initializer = true:warning dotnet_style_explicit_tuple_names = true:warning dotnet_style_null_propagation = true:warning dotnet_style_object_initializer = true:warning dotnet_style_predefined_type_for_locals_parameters_members = true:warning dotnet_style_predefined_type_for_member_access = true:warning dotnet_style_qualification_for_event = true:warning dotnet_style_qualification_for_field = true:warning dotnet_style_qualification_for_method = true:warning dotnet_style_qualification_for_property = true:warning # Naming Symbols # constant_fields - Define constant fields dotnet_naming_symbols.constant_fields.applicable_kinds = field dotnet_naming_symbols.constant_fields.required_modifiers = const # non_private_readonly_fields - Define public, internal and protected readonly fields dotnet_naming_symbols.non_private_readonly_fields.applicable_accessibilities = public, internal, protected dotnet_naming_symbols.non_private_readonly_fields.applicable_kinds = field dotnet_naming_symbols.non_private_readonly_fields.required_modifiers = readonly # static_readonly_fields - Define static and readonly fields dotnet_naming_symbols.static_readonly_fields.applicable_kinds = field dotnet_naming_symbols.static_readonly_fields.required_modifiers = static, readonly # private_readonly_fields - Define private readonly fields dotnet_naming_symbols.private_readonly_fields.applicable_accessibilities = private dotnet_naming_symbols.private_readonly_fields.applicable_kinds = field dotnet_naming_symbols.private_readonly_fields.required_modifiers = readonly # public_internal_fields - Define public and internal fields dotnet_naming_symbols.public_internal_fields.applicable_accessibilities = public, internal dotnet_naming_symbols.public_internal_fields.applicable_kinds = field # private_protected_fields - Define private and protected fields dotnet_naming_symbols.private_protected_fields.applicable_accessibilities = private, protected dotnet_naming_symbols.private_protected_fields.applicable_kinds = field # public_symbols - Define any public symbol dotnet_naming_symbols.public_symbols.applicable_accessibilities = public, internal, protected, protected_internal dotnet_naming_symbols.public_symbols.applicable_kinds = method, property, event, delegate # parameters - Defines any parameter dotnet_naming_symbols.parameters.applicable_kinds = parameter # non_interface_types - Defines class, struct, enum and delegate types dotnet_naming_symbols.non_interface_types.applicable_kinds = class, struct, enum, delegate # interface_types - Defines interfaces dotnet_naming_symbols.interface_types.applicable_kinds = interface # Naming Styles # camel_case - Define the camelCase style dotnet_naming_style.camel_case.capitalization = camel_case # pascal_case - Define the Pascal_case style dotnet_naming_style.pascal_case.capitalization = pascal_case # first_upper - The first character must start with an upper-case character dotnet_naming_style.first_upper.capitalization = first_word_upper # prefix_interface_interface_with_i - Interfaces must be PascalCase and the first character of an interface must be an 'I' dotnet_naming_style.prefix_interface_interface_with_i.capitalization = pascal_case dotnet_naming_style.prefix_interface_interface_with_i.required_prefix = I # Naming Rules # Constant fields must be PascalCase dotnet_naming_rule.constant_fields_must_be_pascal_case.severity = warning dotnet_naming_rule.constant_fields_must_be_pascal_case.symbols = constant_fields dotnet_naming_rule.constant_fields_must_be_pascal_case.style = pascal_case # Public, internal and protected readonly fields must be PascalCase dotnet_naming_rule.non_private_readonly_fields_must_be_pascal_case.severity = warning dotnet_naming_rule.non_private_readonly_fields_must_be_pascal_case.symbols = non_private_readonly_fields dotnet_naming_rule.non_private_readonly_fields_must_be_pascal_case.style = pascal_case # Static readonly fields must be PascalCase dotnet_naming_rule.static_readonly_fields_must_be_pascal_case.severity = warning dotnet_naming_rule.static_readonly_fields_must_be_pascal_case.symbols = static_readonly_fields dotnet_naming_rule.static_readonly_fields_must_be_pascal_case.style = pascal_case # Private readonly fields must be camelCase dotnet_naming_rule.private_readonly_fields_must_be_camel_case.severity = warning dotnet_naming_rule.private_readonly_fields_must_be_camel_case.symbols = private_readonly_fields dotnet_naming_rule.private_readonly_fields_must_be_camel_case.style = camel_case # Public and internal fields must be PascalCase dotnet_naming_rule.public_internal_fields_must_be_pascal_case.severity = warning dotnet_naming_rule.public_internal_fields_must_be_pascal_case.symbols = public_internal_fields dotnet_naming_rule.public_internal_fields_must_be_pascal_case.style = pascal_case # Private and protected fields must be camelCase dotnet_naming_rule.private_protected_fields_must_be_camel_case.severity = warning dotnet_naming_rule.private_protected_fields_must_be_camel_case.symbols = private_protected_fields dotnet_naming_rule.private_protected_fields_must_be_camel_case.style = camel_case # Public members must be capitalized dotnet_naming_rule.public_members_must_be_capitalized.severity = warning dotnet_naming_rule.public_members_must_be_capitalized.symbols = public_symbols dotnet_naming_rule.public_members_must_be_capitalized.style = first_upper # Parameters must be camelCase dotnet_naming_rule.parameters_must_be_camel_case.severity = warning dotnet_naming_rule.parameters_must_be_camel_case.symbols = parameters dotnet_naming_rule.parameters_must_be_camel_case.style = camel_case # Class, struct, enum and delegates must be PascalCase dotnet_naming_rule.non_interface_types_must_be_pascal_case.severity = warning dotnet_naming_rule.non_interface_types_must_be_pascal_case.symbols = non_interface_types dotnet_naming_rule.non_interface_types_must_be_pascal_case.style = pascal_case # Interfaces must be PascalCase and start with an 'I' dotnet_naming_rule.interface_types_must_be_prefixed_with_i.severity = warning dotnet_naming_rule.interface_types_must_be_prefixed_with_i.symbols = interface_types dotnet_naming_rule.interface_types_must_be_prefixed_with_i.style = prefix_interface_interface_with_i # C# Code Style Settings # See https://docs.microsoft.com/en-us/visualstudio/ide/editorconfig-code-style-settings-reference # See http://kent-boogaart.com/blog/editorconfig-reference-for-c-developers [*.cs] # Indentation Options csharp_indent_block_contents = true:warning csharp_indent_braces = false:warning csharp_indent_case_contents = true:warning csharp_indent_labels = no_change:warning csharp_indent_switch_labels = true:warning # Style Options csharp_style_conditional_delegate_call = true:warning csharp_style_expression_bodied_accessors = true:warning csharp_style_expression_bodied_constructors = true:warning csharp_style_expression_bodied_indexers = true:warning csharp_style_expression_bodied_methods = true:warning csharp_style_expression_bodied_operators = true:warning csharp_style_expression_bodied_properties = true:warning csharp_style_inlined_variable_declaration = true:warning csharp_style_pattern_matching_over_as_with_null_check = true:warning csharp_style_pattern_matching_over_is_with_cast_check = true:warning csharp_style_throw_expression = true:warning csharp_style_var_elsewhere = false:warning csharp_style_var_for_built_in_types = false:warning csharp_style_var_when_type_is_apparent = false:warning # New Line Options csharp_new_line_before_catch = false csharp_new_line_before_else = false csharp_new_line_before_finally = false csharp_new_line_before_members_in_anonymous_types = true csharp_new_line_before_members_in_object_initializers = true # BUG: Warning level cannot be set https://github.com/dotnet/roslyn/issues/18010 csharp_new_line_before_open_brace = all:warning csharp_new_line_between_query_expression_clauses = false # Spacing Options csharp_space_after_cast = false:warning csharp_space_after_colon_in_inheritance_clause = true:warning csharp_space_after_comma = true:warning csharp_space_after_dot = false:warning csharp_space_after_keywords_in_control_flow_statements = true:warning csharp_space_after_semicolon_in_for_statement = true:warning csharp_space_around_binary_operators = before_and_after:warning csharp_space_around_declaration_statements = do_not_ignore:warning csharp_space_before_colon_in_inheritance_clause = true:warning csharp_space_before_comma = false:warning csharp_space_before_dot = false:warning csharp_space_before_semicolon_in_for_statement = false:warning csharp_space_before_open_square_brackets = false:warning csharp_space_between_empty_square_brackets = false:warning csharp_space_between_method_declaration_name_and_open_parenthesis = false:warning csharp_space_between_method_declaration_parameter_list_parentheses = false:warning csharp_space_between_method_declaration_empty_parameter_list_parentheses = false:warning csharp_space_between_method_call_name_and_opening_parenthesis = false:warning csharp_space_between_method_call_parameter_list_parentheses = false:warning csharp_space_between_method_call_empty_parameter_list_parentheses = false:warning csharp_space_between_parentheses = expressions:warning csharp_space_between_square_brackets = false:warning # Wrapping Options csharp_preserve_single_line_blocks = true:warning csharp_preserve_single_line_statements = false:warning |
.editorconfig編集後は再起動
どうやら.editorconfigファイルを編集しても即時にフォーマットに適用されないみたい。VS 2017自体を一度終了させ、再度起動しなければならないっぽいです。