feat: added optional dotnet formatting
This commit is contained in:
parent
9b8c86005f
commit
9c50fe4984
4 changed files with 122 additions and 2 deletions
6
TASKS.md
Normal file
6
TASKS.md
Normal file
|
@ -0,0 +1,6 @@
|
|||
# Tasks
|
||||
|
||||
- [ ] Need to exclude the generated files from Prettier
|
||||
- [ ] Include the C# editor config setup
|
||||
- [ ] Add .direnv into `.gitignore`
|
||||
- [ ] Add `*.mjs` to Prettier
|
|
@ -29,6 +29,7 @@
|
|||
, pkgs
|
||||
, conform ? { }
|
||||
, contributorCovenant ? { }
|
||||
, dotnet ? { }
|
||||
, developerCertificateOfOrigin ? { }
|
||||
, copyright ? null
|
||||
, mit ? { }
|
||||
|
@ -42,6 +43,7 @@
|
|||
conformDefaults = { scopes = [ ]; };
|
||||
contributorCovenantDefaults = { enable = false; };
|
||||
developerCertificateOfOriginDefaults = { enable = false; };
|
||||
dotnetDefaults = { enable = false; };
|
||||
prettierDefaults = { proseWrap = "preserve"; };
|
||||
rustDefaults = { enable = false; };
|
||||
licenseDefaults = { enable = false; filename = "LICENSE.md"; };
|
||||
|
@ -62,6 +64,7 @@
|
|||
creativeCommonsAttributionNonCommercialShareAlike = licenseDefaults // creativeCommonsAttributionNonCommercialShareAlike;
|
||||
creativeCommonsAttributionShareAlike = licenseDefaults // creativeCommonsAttributionShareAlike;
|
||||
developerCertificateOfOrigin = developerCertificateOfOriginDefaults // developerCertificateOfOrigin;
|
||||
dotnet = dotnetDefaults // dotnet;
|
||||
mit = licenseDefaults // mit;
|
||||
prettier = prettierDefaults // prettier;
|
||||
rust = rustDefaults // rust;
|
||||
|
@ -72,6 +75,11 @@
|
|||
pkgs.lefthook
|
||||
pkgs.treefmt
|
||||
pkgs.conform
|
||||
pkgs.nodePackages.prettier
|
||||
pkgs.nixpkgs-fmt
|
||||
]
|
||||
++ pkgs.lib.lists.optional (dotnet // dotnetDefaults).enable [
|
||||
pkgs.csharpier
|
||||
];
|
||||
|
||||
shellHook = ''
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
inputs:
|
||||
inputs @ { pkgs, ... }:
|
||||
let
|
||||
data = {
|
||||
root = true;
|
||||
|
@ -14,6 +14,93 @@ let
|
|||
max_line_length = 80;
|
||||
tab_width = 4;
|
||||
curly_bracket_next_line = true;
|
||||
}
|
||||
// pkgs.lib.attrsets.optionalAttrs inputs.dotnet.enable {
|
||||
csharp_new_line_before_members_in_object_initializers = false;
|
||||
csharp_preferred_modifier_order = "public, override, protected, internal, file, new, virtual, abstract, private, sealed, readonly, static, extern, unsafe, volatile, async, required:suggestion";
|
||||
csharp_preserve_single_line_blocks = true;
|
||||
csharp_preserve_single_line_statements = false;
|
||||
csharp_space_after_cast = false;
|
||||
csharp_style_var_elsewhere = "false:hint";
|
||||
csharp_style_var_for_built_in_types = "false:hint";
|
||||
csharp_style_var_when_type_is_apparent = "true:hint";
|
||||
dotnet_style_predefined_type_for_locals_parameters_members = "true:hint";
|
||||
dotnet_style_predefined_type_for_member_access = "true:hint";
|
||||
dotnet_style_qualification_for_event = "true:hint";
|
||||
dotnet_style_qualification_for_field = "true:hint";
|
||||
dotnet_style_qualification_for_method = "true:hint";
|
||||
dotnet_style_qualification_for_property = "true:hint";
|
||||
dotnet_style_require_accessibility_modifiers = "for_non_interface_members:hint";
|
||||
resharper_alignment_tab_fill_style = "optimal_fill";
|
||||
resharper_apply_on_completion = true;
|
||||
resharper_blank_lines_after_control_transfer_statements = 1;
|
||||
resharper_blank_lines_around_single_line_auto_property = 1;
|
||||
resharper_blank_lines_around_single_line_property = 1;
|
||||
resharper_blank_lines_before_block_statements = 1;
|
||||
resharper_blank_lines_before_control_transfer_statements = 1;
|
||||
resharper_blank_lines_before_single_line_comment = 1;
|
||||
resharper_blank_lines_between_using_groups = 1;
|
||||
resharper_braces_for_for = "required";
|
||||
resharper_braces_for_foreach = "required";
|
||||
resharper_braces_for_ifelse = "required";
|
||||
resharper_braces_for_while = "required";
|
||||
resharper_can_use_global_alias = false;
|
||||
resharper_check_namespace_highlighting = "none";
|
||||
resharper_convert_to_auto_property_highlighting = "none";
|
||||
resharper_csharp_blank_lines_around_single_line_field = 1;
|
||||
resharper_csharp_blank_lines_around_single_line_invocable = 1;
|
||||
resharper_csharp_empty_block_style = "together_same_line";
|
||||
resharper_csharp_indent_style = "tab";
|
||||
resharper_csharp_insert_final_newline = true;
|
||||
resharper_csharp_keep_blank_lines_in_code = 1;
|
||||
resharper_csharp_keep_blank_lines_in_declarations = 1;
|
||||
resharper_csharp_max_line_length = 100;
|
||||
resharper_csharp_new_line_before_while = true;
|
||||
resharper_csharp_use_indent_invocation_rpar = true;
|
||||
resharper_csharp_wrap_extends_list_style = "chop_if_long";
|
||||
resharper_csharp_wrap_parameters_style = "chop_if_long";
|
||||
resharper_css_insert_final_newline = false;
|
||||
resharper_enforce_line_ending_style = true;
|
||||
resharper_html_insert_final_newline = false;
|
||||
resharper_indent_nested_fixed_stmt = true;
|
||||
resharper_js_indent_style = "spaces";
|
||||
resharper_js_insert_final_newline = true;
|
||||
resharper_js_keep_blank_lines_in_code = 1;
|
||||
resharper_js_stick_comment = false;
|
||||
resharper_js_use_indent_from_vs = false;
|
||||
resharper_js_wrap_before_binary_opsign = true;
|
||||
resharper_js_wrap_chained_method_calls = "chop_if_long";
|
||||
resharper_keep_blank_lines_between_declarations = 1;
|
||||
resharper_localizable_element_highlighting = "none";
|
||||
resharper_min_blank_lines_after_imports = 1;
|
||||
resharper_place_attribute_on_same_line = false;
|
||||
resharper_place_constructor_initializer_on_same_line = false;
|
||||
resharper_place_expr_property_on_single_line = true;
|
||||
resharper_place_simple_initializer_on_single_line = false;
|
||||
resharper_place_type_constraints_on_same_line = false;
|
||||
resharper_protobuf_insert_final_newline = false;
|
||||
resharper_qualified_using_at_nested_scope = true;
|
||||
resharper_redundant_comma_in_attribute_list_highlighting = "none";
|
||||
resharper_redundant_comma_in_enum_declaration_highlighting = "none";
|
||||
resharper_redundant_comma_in_initializer_highlighting = "none";
|
||||
resharper_resx_insert_final_newline = false;
|
||||
resharper_space_within_single_line_array_initializer_braces = true;
|
||||
resharper_string_compare_to_is_culture_specific_highlighting = "none";
|
||||
resharper_string_index_of_is_culture_specific_1_highlighting = "none";
|
||||
resharper_use_indents_from_main_language_in_file = false;
|
||||
resharper_use_null_propagation_highlighting = "none";
|
||||
resharper_use_object_or_collection_initializer_highlighting = "hint";
|
||||
resharper_use_string_interpolation_highlighting = "hint";
|
||||
resharper_vb_insert_final_newline = false;
|
||||
resharper_wrap_after_declaration_lpar = true;
|
||||
resharper_wrap_after_invocation_lpar = true;
|
||||
resharper_wrap_before_extends_colon = true;
|
||||
resharper_wrap_before_first_type_parameter_constraint = true;
|
||||
resharper_wrap_before_type_parameter_langle = true;
|
||||
resharper_xml_insert_final_newline = false;
|
||||
resharper_xmldoc_indent_child_elements = "ZeroIndent";
|
||||
resharper_xmldoc_indent_text = "ZeroIndent";
|
||||
resharper_xmldoc_insert_final_newline = false;
|
||||
};
|
||||
|
||||
"*.md" = {
|
||||
|
@ -34,6 +121,19 @@ let
|
|||
indent_style = "unset";
|
||||
indent_size = "unset";
|
||||
};
|
||||
}
|
||||
// pkgs.lib.attrsets.optionalAttrs inputs.dotnet.enable {
|
||||
"*.{appxmanifest,build,config,csproj,dbml,discomap,dtd,jsproj,lsproj,njsproj,nuspec,proj,props,resw,resx,StyleCop,targets,tasks,vbproj,xml,xsd}]" = {
|
||||
indent_size = 2;
|
||||
indent_style = "space";
|
||||
tab_width = 2;
|
||||
};
|
||||
|
||||
"*.cs" = {
|
||||
indent_style = "space";
|
||||
indent_size = 4;
|
||||
tab_width = 4;
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
inputs @ { pkgs, rust, ... }:
|
||||
inputs @ { pkgs, dotnet, rust, ... }:
|
||||
let
|
||||
data = {
|
||||
formatter = {
|
||||
|
@ -25,6 +25,12 @@ let
|
|||
excludes = [ "**.min.js" ];
|
||||
};
|
||||
}
|
||||
// pkgs.lib.attrsets.optionalAttrs dotnet.enable {
|
||||
csharpier = {
|
||||
command = "${pkgs.csharpier}/bin/dotnet-csharpier";
|
||||
includes = [ "*.cs" ];
|
||||
};
|
||||
}
|
||||
// pkgs.lib.attrsets.optionalAttrs rust.enable {
|
||||
rust = {
|
||||
command = "rustfmt";
|
||||
|
|
Loading…
Reference in a new issue