Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
7c10a36
feat(streaming): add RenderableBatch & streaming tests; update render…
trackd Sep 24, 2025
40cc866
Bump Roslynator.CodeFixes from 4.14.0 to 4.14.1
dependabot[bot] Oct 6, 2025
781768c
Bump Roslynator.Analyzers from 4.14.0 to 4.14.1
dependabot[bot] Oct 6, 2025
0cc914f
streaming things
dependabot[bot] Oct 6, 2025
ac68e85
Refactor Markdown Rendering and Improve Performance
trackd Oct 30, 2025
db9ad4c
feat(helpers): ✨ Enhance debugging and image handling utilities
trackd Jan 6, 2026
4b8b5f1
chore: ✨ Update dependencies and refactor tests for improved clarity
trackd Jan 15, 2026
bdf1be4
feat(ShowTextMateCmdlet): ✨ Enhance input handling and source detection
trackd Jan 15, 2026
34e0671
feat(MarkdownRenderer): ✨ Improve block rendering and spacing logic
trackd Jan 15, 2026
9a7f2eb
feat(markdown): ✨ Implement visitor pattern for Markdown renderers
trackd Jan 15, 2026
da7fb38
feat(utilities): ✨ Add utility classes for text styling and VT parsing
trackd Jan 16, 2026
3db7432
feat(rendering): ✨ Enhance rendering with Spectre.Console Text objects
trackd Jan 25, 2026
76a5356
feat(commands): ✨ Add cmdlets for testing and retrieving supported Te…
trackd Feb 1, 2026
27297f0
- Added various markdown test files to validate rendering.
trackd Feb 6, 2026
0901add
feat(tests): ✨ Add comprehensive tests for formatting C#, PowerShell,…
trackd Feb 6, 2026
b10d751
feat(cmdlets): ✨ Add -Lines parameter to output single HighlightedTex…
trackd Feb 6, 2026
5d94cea
feat(tests): ✨ Update tests for formatting C#, PowerShell, and Markdown
trackd Feb 7, 2026
be3c596
* derive all cmdlets from same base.
trackd Feb 7, 2026
4d092a8
cleanup
trackd Feb 7, 2026
9fe93ec
playing around with grapheme
trackd Feb 7, 2026
2508a1e
refactor: 🔧 Clean up and optimize code structure
trackd Feb 7, 2026
8e39f4a
more measure string shenanigans
trackd Feb 8, 2026
593bacd
mm
trackd Feb 8, 2026
31dc29f
feat(docs): ✏️ Add documentation for TextMate formatting cmdlets
trackd Feb 17, 2026
995cc18
Merge origin/main and keep branch csproj
trackd Feb 17, 2026
81f5d7e
implement suggestions
trackd Feb 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
289 changes: 150 additions & 139 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -1,167 +1,178 @@
# EditorConfig is awesome: https://EditorConfig.org

# top-most EditorConfig file
root = true

# All files
[*]
charset = utf-8
end_of_line = crlf
insert_final_newline = true
trim_trailing_whitespace = true

# Code files
[*.{cs,csx,vb,vbx}]
indent_style = space
indent_size = 4
############################################################
# Basic file-type formatting
############################################################

# XML project files
[*.{csproj,vbproj,vcxproj,vcxproj.filters,proj,projitems,shproj}]
indent_style = space
[*.{json,yaml,yml}]
indent_size = 2

# XML files
[*.{xml,stylecop,resx,ruleset}]
indent_style = space
[*.md]
indent_size = 2

# JSON files
[*.{json,json5,webmanifest}]
indent_style = space
[*.{resx,ruleset,stylecop,xml,xsd,xsl}]
indent_size = 2

# YAML files
[*.{yml,yaml}]
indent_style = space
[*.{props,targets,config,nuspec}]
indent_size = 2

# Markdown files
[*.md]
trim_trailing_whitespace = false

# Web files
[*.{htm,html,js,jsm,ts,tsx,css,sass,scss,less,svg,vue}]
indent_style = space
indent_size = 2
[*.tsv]
indent_style = tab

# Bash scripts
[*.sh]
end_of_line = lf
############################################################
# Standard formatting for C# and project files
############################################################

# PowerShell files
[*.{ps1,psm1,psd1}]
[*.{cs,csproj}]
indent_style = space
indent_size = 4
charset = utf-8
end_of_line = crlf
insert_final_newline = true

############################################################
# C# / .NET defaults - consolidated for clarity
############################################################

# C# code style rules
[*.cs]

# Organize usings
# Set severity for all analyzers that are enabled by default (https://docs.microsoft.com/en-us/visualstudio/code-quality/use-roslyn-analyzers?view=vs-2022#set-rule-severity-of-multiple-analyzer-rules-at-once-in-an-editorconfig-file)
dotnet_analyzer_diagnostic.category-roslynator.severity = default|none|silent|suggestion|warning|error

# Enable/disable all analyzers by default
# NOTE: This option can be used only in .roslynatorconfig file
roslynator_analyzers.enabled_by_default = true

# Set severity for a specific analyzer
# dotnet_diagnostic.<ANALYZER_ID>.severity = default|none|silent|suggestion|warning|error

# Enable/disable all refactorings
roslynator_refactorings.enabled = true

# Enable/disable specific refactoring
# roslynator_refactoring.<REFACTORING_NAME>.enabled = true|false

# Enable/disable all compiler diagnostic fixes
roslynator_compiler_diagnostic_fixes.enabled = true

# Enable/disable specific compiler diagnostic fix
# roslynator_compiler_diagnostic_fix.<COMPILER_DIAGNOSTIC_ID>.enabled = true|false

# Sort using directives with System.* first
dotnet_sort_system_directives_first = true
dotnet_separate_import_directive_groups = false

# this. preferences
dotnet_style_qualification_for_field = false:suggestion
dotnet_style_qualification_for_property = false:suggestion
dotnet_style_qualification_for_method = false:suggestion
dotnet_style_qualification_for_event = false:suggestion

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

# Parentheses preferences
dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:silent
dotnet_style_parentheses_in_relational_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

# Modifier preferences
dotnet_style_require_accessibility_modifiers = for_non_interface_members:suggestion
dotnet_style_readonly_field = true:suggestion

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

# C# preferences
csharp_prefer_simple_using_statement = true:suggestion
csharp_prefer_braces = true:silent
csharp_style_namespace_declarations = file_scoped:warning
csharp_style_prefer_method_group_conversion = true:silent
csharp_style_prefer_top_level_statements = true:silent
csharp_style_expression_bodied_methods = false:silent
csharp_style_expression_bodied_constructors = false:silent
csharp_style_expression_bodied_operators = false:silent
csharp_style_expression_bodied_properties = true:silent
csharp_style_expression_bodied_indexers = true:silent
csharp_style_expression_bodied_accessors = true:silent
csharp_style_expression_bodied_lambdas = true:silent
csharp_style_expression_bodied_local_functions = false:silent

# Pattern matching preferences
csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion
csharp_style_pattern_matching_over_as_with_null_check = true:suggestion
csharp_style_var_for_built_in_types = false:suggestion
csharp_style_var_when_type_is_apparent = true:suggestion
csharp_style_var_elsewhere = false:suggestion

# Inlined variable declarations
csharp_style_inlined_variable_declaration = true:suggestion

# Expression-level preferences
csharp_prefer_simple_default_expression = true:suggestion

# C# formatting rules
csharp_new_line_before_open_brace = all

# Default analyzer severity for most rules: suggestion (non-breaking for local dev)
dotnet_analyzer_diagnostic.severity = suggestion

# categories: sensible defaults for repository quality
# Style: formatting and stylistic suggestions
dotnet_analyzer_diagnostic.category-Style.severity = warning

# Performance: high-value performance rules treated as errors (e.g. hot-path logging)
dotnet_analyzer_diagnostic.category-Performance.severity = error

# Naming: recommendations; keep as suggestions to avoid developer friction
dotnet_analyzer_diagnostic.category-Naming.severity = suggestion

# Maintainability: suggestions for cleaner, maintainable code
dotnet_analyzer_diagnostic.category-Maintainability.severity = suggestion

# Interoperability: warn about platform/interop issues
dotnet_analyzer_diagnostic.category-Interoperability.severity = warning

# Design: API design and usage guidance
dotnet_analyzer_diagnostic.category-Design.severity = warning

# Documentation: XML/docs guidance as suggestions
dotnet_analyzer_diagnostic.category-Documentation.severity = suggestion

# Globalization: treat important globalization issues as errors (e.g. culture-sensitive formatting)
dotnet_analyzer_diagnostic.category-Globalization.severity = error

# Reliability: lifecycle/dispose and other reliability concerns - warn by default
dotnet_analyzer_diagnostic.category-Reliability.severity = warning

# Security: escalate security findings to errors
dotnet_analyzer_diagnostic.category-Security.severity = error

# Usage: general API usage guidance
dotnet_analyzer_diagnostic.category-Usage.severity = warning

# Modern C# style preferences (good defaults for .NET 10)
csharp_style_namespace_declarations = file_scoped
csharp_style_implicit_object_creation = true
csharp_style_target_typed_new_expression = true
csharp_style_pattern_matching_over_is_with_cast_check = true
csharp_style_prefer_not_pattern = true

csharp_style_pattern_matching_over_as_with_null_check = true
csharp_style_inlined_variable_declaration = true
csharp_style_throw_expression = true
csharp_style_prefer_switch_expression = true
csharp_prefer_simple_using_statement = true
csharp_style_prefer_pattern_matching = true
dotnet_style_operator_placement_when_wrapping = end_of_line

# # Prefer pattern-matching null checks (`is null` / `is not null`) over `== null` or ReferenceEquals
dotnet_style_prefer_is_null_check_over_reference_equality_method = true
dotnet_diagnostic.IDE0041.severity = warning
# Also enable related null-check simplification rules
dotnet_diagnostic.IDE0029.severity = warning
dotnet_diagnostic.IDE0030.severity = warning
dotnet_diagnostic.IDE0270.severity = warning
dotnet_diagnostic.IDE0019.severity = warning

# Prefer var when the type is apparent (modern and concise)
# how does this work with IDE0007?
# var and explicit typing preferences
# csharp_style_var_for_built_in_types = false:none
# csharp_style_var_when_type_is_apparent = true:suggestion
# csharp_style_var_elsewhere = false:suggestion
csharp_style_var_when_type_is_apparent = true

# # Expression-bodied members where concise
csharp_style_expression_bodied_methods = when_on_single_line
csharp_style_expression_bodied_properties = when_on_single_line

# # Naming conventions (kept as suggestions)
# dotnet_naming_rule.private_fields_should_be_camel_case.severity = suggestion
# dotnet_naming_rule.private_fields_should_be_camel_case.symbols = private_fields
# dotnet_naming_rule.private_fields_should_be_camel_case.style = camel_case_underscore
# dotnet_naming_symbols.private_fields.applicable_kinds = field
# dotnet_naming_symbols.private_fields.applicable_accessibilities = private
# dotnet_naming_style.camel_case_underscore.capitalization = camel_case
# dotnet_naming_style.camel_case_underscore.required_prefix = _
# csharp_style_unused_value_expression_statement_preference = discard_variable


# Helpful IDE rules as suggestions so dotnet-format can apply fixes
dotnet_diagnostic.IDE0005.severity = suggestion # Remove unnecessary usings
dotnet_diagnostic.IDE0059.severity = suggestion # Unused assignment
dotnet_diagnostic.IDE0051.severity = suggestion # Unused private members
dotnet_diagnostic.IDE0060.severity = suggestion # Unused parameters
dotnet_diagnostic.IDE0058.severity = suggestion # Expression value is never used
dotnet_diagnostic.IDE0130.severity = suggestion # Use 'new' expression where possible (target-typed new)
csharp_style_unused_value_expression_statement_preference = unused_local_variable
# Nullable reference types - enabled as suggestions; project opt-in controls runtime enforcement
nullable = enable
csharp_style_prefer_primary_constructors = false

# Formatting / newline preferences
# prefer Stroustrup
csharp_new_line_before_open_brace = false
csharp_new_line_before_else = true
csharp_new_line_before_catch = true
csharp_new_line_before_finally = true
csharp_new_line_before_members_in_object_initializers = true
csharp_new_line_before_members_in_anonymous_types = true
csharp_new_line_between_query_expression_clauses = true

csharp_prefer_braces = when_multiline
# 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_switch_labels = true
csharp_indent_labels = flush_left

# Space preferences
csharp_space_after_cast = false
csharp_space_after_keywords_in_control_flow_statements = true
csharp_space_between_method_call_parameter_list_parentheses = false
csharp_space_between_method_declaration_parameter_list_parentheses = false
csharp_space_between_parentheses = false
csharp_space_before_colon_in_inheritance_clause = true
csharp_space_after_colon_in_inheritance_clause = true
csharp_space_around_binary_operators = before_and_after
csharp_space_between_method_declaration_empty_parameter_list_parentheses = false
csharp_space_between_method_call_name_and_opening_parenthesis = false
csharp_space_between_method_call_empty_parameter_list_parentheses = false

# Wrapping preferences
csharp_preserve_single_line_statements = true
csharp_preserve_single_line_blocks = true

# Code analysis rules
[*.cs]
# CA1303: Do not pass literals as localized parameters
dotnet_diagnostic.CA1303.severity = none
csharp_indent_labels = one_less_than_current

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

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

# CA2007: Consider calling ConfigureAwait on the awaited task
dotnet_diagnostic.CA2007.severity = none
# Using directive placement
csharp_using_directive_placement = outside_namespace
Loading
Loading