Skip to content
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

Does not respect guidelines in VS2022 version #300

Closed
mikernet opened this issue Nov 23, 2021 · 11 comments
Closed

Does not respect guidelines in VS2022 version #300

mikernet opened this issue Nov 23, 2021 · 11 comments

Comments

@mikernet
Copy link

The 2019 version works fine but in VS2022 it does not seem to respect the guideline I have setup in .editorconfig:

#### Guidelines ####

guidelines = 160

It always wraps to whatever the setting is in VS options. I have the Editor Guidelines extension also installed which shows the guideline in the correct location.

@stkb
Copy link
Owner

stkb commented Nov 23, 2021

Hmm nothing's changed at this end, so I suspect something's changed/broken w.r.t. the Editor Guidelines extension. For me it still works if you add the guidelines manually in the code window; I've never actually used the .editorconfig feature there. Will have to investigate.

stkb added a commit that referenced this issue Nov 29, 2021
…om editorconfig (#300)

In this case they aren't written to the registry (makes sense).
Thankfully we can sniff them out from the IWpfTextView adornments.
@stkb
Copy link
Owner

stkb commented Nov 29, 2021

If it was working in 2019 then I don't know how! Rewrap only read the guidelines from the registry, but Editor Guidelines doesn't write them to the registry if they're taken from an .editorconfig file. Maybe something changed.

Anyway, I've added a change so it can now read the guidelines straight from the editor. It will be in the next version.

@stkb stkb added the in pre-release version Is in pre-release version but not in stable yet label Nov 29, 2021
@mikernet
Copy link
Author

Haha, I have no idea. It's possible that I added that guideline before I started using .editorconfig so it is still hanging around somewhere.

Thanks for the feature update though!

@stkb
Copy link
Owner

stkb commented Nov 30, 2021

Thank you! I hadn't looked into the capabilities of Editor Guidelines in a long while, so didn't really know about its .editorconfig support. It's nice that I can use that extension to provide it in this one too.

stkb added a commit that referenced this issue Dec 19, 2021
…om editorconfig (#300)

In this case they aren't written to the registry (makes sense).
Thankfully we can sniff them out from the IWpfTextView adornments.
stkb added a commit that referenced this issue Jan 14, 2022
- New architecture (still WIP) with performance increase.
- Markdown: new parser that fixes many small bugs (inc #288), as well as
  supporting:
  - Front matter header (#277, #294)
  - Link reference definitions (#63, #93)
  - Footnotes (#188)
- ReStructuredText support (standalone & for Python, almost complete)
  (#88).
- Julia: support `#= ... =#` block comments (#302)
- Visual Studio: Wrap to rulers generated from .editorconfig by the
  Editor Guidelines extension (thereby indirectly supporting
  .editorconfig) (#300).
@stkb
Copy link
Owner

stkb commented Jan 14, 2022

Fixed in v1.16.0

@stkb stkb closed this as completed Jan 14, 2022
@stkb stkb removed the in pre-release version Is in pre-release version but not in stable yet label Jan 14, 2022
@mikernet
Copy link
Author

mikernet commented Feb 9, 2022

I'm not sure that this is working correctly. I did a new VS install and it's not wrapping to the 160 char width guideline I have set in .editorconfig.

@stkb
Copy link
Owner

stkb commented Feb 9, 2022

@mikernet can you post your .editorconfig file?

@mikernet
Copy link
Author

mikernet commented Feb 9, 2022

If you want the whole thing here you go, but the relevant line is line 9. It wraps to the default 80 char width. The only guideline I see in my code editor is the 160 line.

# Remove the line below if you want to inherit .editorconfig settings from higher directories
root = true

########### All files ###########
[*]

#### Guidelines ####

guidelines = 160

########### C# files ###########
[*.cs]

#### Core EditorConfig Options ####

# Indentation and spacing
indent_size = 4
indent_style = space
tab_width = 4

# New line preferences
end_of_line = crlf
insert_final_newline = false

#### .NET Coding Conventions ####

# Organize usings
dotnet_separate_import_directive_groups = false
dotnet_sort_system_directives_first = true

# this. and Me. preferences
dotnet_style_qualification_for_event = false:warning
dotnet_style_qualification_for_field = false:warning
dotnet_style_qualification_for_method = false:warning
dotnet_style_qualification_for_property = false:warning

# Language keywords vs BCL types preferences
dotnet_style_predefined_type_for_locals_parameters_members = true:silent
dotnet_style_predefined_type_for_member_access = true:silent

# Parentheses preferences
dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:silent
dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:silent
dotnet_style_parentheses_in_other_operators = never_if_unnecessary:silent
dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:silent

# Modifier preferences
dotnet_style_require_accessibility_modifiers = for_non_interface_members:silent

# Expression-level preferences
dotnet_style_coalesce_expression = true:suggestion
dotnet_style_collection_initializer = true:suggestion
dotnet_style_explicit_tuple_names = true:suggestion
dotnet_style_null_propagation = true:suggestion
dotnet_style_object_initializer = true:suggestion
dotnet_style_prefer_auto_properties = false:silent
dotnet_style_prefer_compound_assignment = true:suggestion
dotnet_style_prefer_conditional_expression_over_assignment = true:silent
dotnet_style_prefer_conditional_expression_over_return = true:silent
dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion
dotnet_style_prefer_inferred_tuple_names = true:suggestion
dotnet_style_prefer_is_null_check_over_reference_equality_method = true:suggestion

# Field preferences
# Incorrectly triggered on ref returned fields but Roslynator already handles this correctly
dotnet_style_readonly_field = true:none

# Parameter preferences
dotnet_code_quality_unused_parameters = all:suggestion

#### C# Coding Conventions ####

# var preferences
csharp_style_var_elsewhere = false:silent
csharp_style_var_for_built_in_types = false:suggestion
csharp_style_var_when_type_is_apparent = true:suggestion

# Expression-bodied members
csharp_style_expression_bodied_accessors = true:suggestion
csharp_style_expression_bodied_constructors = false:silent
csharp_style_expression_bodied_indexers = true:suggestion
csharp_style_expression_bodied_lambdas = true:silent
csharp_style_expression_bodied_local_functions = false:silent
csharp_style_expression_bodied_methods = false:silent
csharp_style_expression_bodied_operators = true:silent
csharp_style_expression_bodied_properties = true:suggestion

# Pattern matching preferences
csharp_style_pattern_matching_over_as_with_null_check = true:suggestion
csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion
csharp_style_prefer_switch_expression = true:suggestion

# Null-checking preferences
csharp_style_conditional_delegate_call = true:suggestion

# Modifier preferences
csharp_prefer_static_local_function = true:suggestion
csharp_preferred_modifier_order = public,private,protected,internal,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,volatile,async

# Code-block preferences
csharp_prefer_braces = false:silent
csharp_prefer_simple_using_statement = true:suggestion

# Expression-level preferences
csharp_prefer_simple_default_expression = true:suggestion
csharp_style_deconstructed_variable_declaration = true:suggestion
csharp_style_inlined_variable_declaration = true:suggestion
csharp_style_pattern_local_over_anonymous_function = true:suggestion
csharp_style_prefer_index_operator = true:suggestion
csharp_style_prefer_range_operator = true:suggestion
csharp_style_throw_expression = true:suggestion
csharp_style_unused_value_assignment_preference = discard_variable:suggestion
csharp_style_unused_value_expression_statement_preference = discard_variable:silent

# 'using' directive preferences
csharp_using_directive_placement = outside_namespace:silent

#### C# Formatting Rules ####

# New line preferences
csharp_new_line_before_catch = true
csharp_new_line_before_else = true
csharp_new_line_before_finally = true
csharp_new_line_before_members_in_anonymous_types = true
csharp_new_line_before_members_in_object_initializers = true
csharp_new_line_before_open_brace = methods,types
csharp_new_line_between_query_expression_clauses = true

# Indentation preferences
csharp_indent_block_contents = true
csharp_indent_braces = false
csharp_indent_case_contents = true
csharp_indent_case_contents_when_block = true
csharp_indent_labels = no_change
csharp_indent_switch_labels = true

# Space preferences
csharp_space_after_cast = false
csharp_space_after_colon_in_inheritance_clause = true
csharp_space_after_comma = true
csharp_space_after_dot = false
csharp_space_after_keywords_in_control_flow_statements = true
csharp_space_after_semicolon_in_for_statement = true
csharp_space_around_binary_operators = before_and_after
csharp_space_around_declaration_statements = false
csharp_space_before_colon_in_inheritance_clause = true
csharp_space_before_comma = false
csharp_space_before_dot = false
csharp_space_before_open_square_brackets = false
csharp_space_before_semicolon_in_for_statement = false
csharp_space_between_empty_square_brackets = false
csharp_space_between_method_call_empty_parameter_list_parentheses = false
csharp_space_between_method_call_name_and_opening_parenthesis = false
csharp_space_between_method_call_parameter_list_parentheses = false
csharp_space_between_method_declaration_empty_parameter_list_parentheses = false
csharp_space_between_method_declaration_name_and_open_parenthesis = false
csharp_space_between_method_declaration_parameter_list_parentheses = false
csharp_space_between_parentheses = false
csharp_space_between_square_brackets = false

# Wrapping preferences
csharp_preserve_single_line_blocks = true
csharp_preserve_single_line_statements = false

#### Naming styles ####

# Naming rules
dotnet_naming_rule.interface_should_be_begins_with_i.severity = warning
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.types_should_be_pascalcase.severity = warning
dotnet_naming_rule.types_should_be_pascalcase.symbols = types
dotnet_naming_rule.types_should_be_pascalcase.style = pascalcase

dotnet_naming_rule.constant_field_should_be_pascalcase.severity = warning
dotnet_naming_rule.constant_field_should_be_pascalcase.symbols = constant_field
dotnet_naming_rule.constant_field_should_be_pascalcase.style = pascalcase

dotnet_naming_rule.non_field_members_should_be_pascalcase.severity = warning
dotnet_naming_rule.non_field_members_should_be_pascalcase.symbols = non_field_members
dotnet_naming_rule.non_field_members_should_be_pascalcase.style = pascalcase

# Symbol specifications
dotnet_naming_symbols.interface.applicable_kinds = interface
dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal
dotnet_naming_symbols.interface.required_modifiers =

dotnet_naming_symbols.types.applicable_kinds = class, struct, interface, enum
dotnet_naming_symbols.types.applicable_accessibilities = public, internal, private, protected, protected_internal
dotnet_naming_symbols.types.required_modifiers =

dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method
dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal
dotnet_naming_symbols.non_field_members.required_modifiers =

dotnet_naming_symbols.constant_field.applicable_kinds = field
dotnet_naming_symbols.constant_field.applicable_accessibilities = public, internal, private, protected, protected_internal
dotnet_naming_symbols.constant_field.required_modifiers = const

# Naming styles
dotnet_naming_style.pascalcase.required_prefix =
dotnet_naming_style.pascalcase.required_suffix =
dotnet_naming_style.pascalcase.word_separator =
dotnet_naming_style.pascalcase.capitalization = pascal_case

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


#### Analyzer diagnostics ####

# SA1503: Braces should not be omitted
dotnet_diagnostic.SA1503.severity = none

# SA1615: Element return value should be documented
dotnet_diagnostic.SA1615.severity = silent

# SA1101: Prefix local calls with this
dotnet_diagnostic.SA1101.severity = none

# RCS1140: Add exception to documentation comment.
dotnet_diagnostic.RCS1140.severity = none

# SA1128: Put constructor initializers on their own line
dotnet_diagnostic.SA1128.severity = none

# SA1200: Using directives should be placed correctly
dotnet_diagnostic.SA1200.severity = none

# SA1618: Generic type parameters should be documented
dotnet_diagnostic.SA1618.severity = suggestion

# CA1303: Do not pass literals as localized parameters
dotnet_diagnostic.CA1303.severity = none

# SA1309: Field names should not begin with underscore
dotnet_diagnostic.SA1309.severity = none

# CA1062: Validate arguments of public methods
dotnet_diagnostic.CA1062.severity = none

# CA1031: Do not catch general exception types
dotnet_diagnostic.CA1031.severity = none

# CA5350: Do Not Use Weak Cryptographic Algorithms
dotnet_diagnostic.CA5350.severity = none

# SA1124: Do not use regions
dotnet_diagnostic.SA1124.severity = none

# SA1512: Single-line comments should not be followed by blank line
dotnet_diagnostic.SA1512.severity = none

# SA1127: Generic type constraints should be on their own line
dotnet_diagnostic.SA1127.severity = none

# SA1201: Elements should appear in the correct order
dotnet_diagnostic.SA1201.severity = none

# SA1202: Elements should be ordered by access
dotnet_diagnostic.SA1202.severity = none

# SA1133: Do not combine attributes
dotnet_diagnostic.SA1133.severity = none

# SA1611: Element parameters should be documented
dotnet_diagnostic.SA1611.severity = suggestion

# SA1633: File should have header
dotnet_diagnostic.SA1633.severity = silent

# SA1500: Braces for multi-line statements should not share line
dotnet_diagnostic.SA1500.severity = none

# RCS1169: Make field read-only.
dotnet_diagnostic.RCS1169.severity = warning

# CA1000: Do not declare static members on generic types
dotnet_diagnostic.CA1000.severity = none

# RCS1166: Value type object is never equal to null.
dotnet_diagnostic.RCS1166.severity = error

# CA1043: Use Integral Or String Argument For Indexers
dotnet_diagnostic.CA1043.severity = none

# SA1308: Variable names should not be prefixed
dotnet_diagnostic.SA1308.severity = none

# RCS1023: Format empty block.
dotnet_diagnostic.RCS1023.severity = none

# SA1502: Element should not be on a single line
dotnet_diagnostic.SA1502.severity = none

# SA1204: Static elements should appear before instance elements
dotnet_diagnostic.SA1204.severity = none

# SA1311: Static readonly fields should begin with upper-case letter
dotnet_diagnostic.SA1311.severity = suggestion

# CA1034: Nested types should not be visible
dotnet_diagnostic.CA1034.severity = suggestion

# CA2225: Operator overloads have named alternates
dotnet_diagnostic.CA2225.severity = none

# CS8600: Converting null literal or possible null value to non-nullable type.
dotnet_diagnostic.CS8600.severity = none

# SA1501: Statement should not be on a single line
dotnet_diagnostic.SA1501.severity = none

# RCS1096: Convert 'HasFlag' call to bitwise operation (or vice versa).
dotnet_diagnostic.RCS1096.severity = none

# SA1516: Elements should be separated by blank line
dotnet_diagnostic.SA1516.severity = none

# SA1205: Partial elements should declare access
dotnet_diagnostic.SA1205.severity = none

# CA1060: Move pinvokes to native methods class
dotnet_diagnostic.CA1060.severity = none

# SA1519: Braces should not be omitted from multi-line child statement
dotnet_diagnostic.SA1519.severity = silent

# SA1214: Readonly fields should appear before non-readonly fields
dotnet_diagnostic.SA1214.severity = suggestion

# CA1801: Review unused parameters
dotnet_diagnostic.CA1801.severity = suggestion

@stkb
Copy link
Owner

stkb commented Feb 9, 2022

Thanks, I will investigate

@stkb stkb reopened this Feb 9, 2022
@stkb
Copy link
Owner

stkb commented Feb 9, 2022

OK I can repro. For some reason the published build (1.16.0.300) is broken (apparently I was still using a beta build myself which was working).

Could you try downloading and installing the pre-release version Rewrap-VS-17.6.vsix? That version is working again for me.

@stkb stkb added the fixed? Waiting for user feedback as to whether it's fixed label Feb 10, 2022
@stkb
Copy link
Owner

stkb commented Feb 14, 2022

I've now published v1.16.2. For me it's working in that version

@stkb stkb closed this as completed Feb 14, 2022
@stkb stkb removed the fixed? Waiting for user feedback as to whether it's fixed label Feb 14, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants