Skip to content

Commit 6debcbd

Browse files
CopilotMalcolmnixonCopilot
authored
Sync VHDLTest with TemplateDotNetTool template (#103)
* Initial plan * Update project to align with TemplateDotNetTool template - Update .editorconfig to match template format: - Use LF line endings globally (not CRLF for C# files) - Simplified to cleaner template structure - Upgrade naming convention severity from suggestion to warning - Add csharp_nullable_reference_types = enable - Add csharp_prefer_braces = true:warning (was silent) - Add csharp_style_namespace_declarations = file_scoped:warning - Consolidate XML file groups - Convert all C# source and test files from CRLF to LF line endings - Apply dotnet format to fix new csharp_prefer_braces:warning violations - Update .markdownlint-cli2.jsonc: - Remove MD024 (siblings_only) rule not in template - Fix node_modules ignore pattern ('**/node_modules' -> 'node_modules') - Remove comment blocks not in template - Update .cspell.json ignorePaths to match template: - Remove non-template entries: *.csproj, *spdx.json, TestResults, .vs, *.bak - Fix spdx.json pattern to *.spdx.json - Reorder to match template structure - Update .github/ISSUE_TEMPLATE/config.yml: - Add documentation link matching template structure - Update discussions link name from 'Ask a Question' to 'Discussions' - Keep security issue link (VHDLTest-specific) - Add missing .github/ISSUE_TEMPLATE/question.yml (adapted from template) - Update .github/pull_request_template.md: - Add self-validation tests step with VHDLTest project path - Fix YAML linter command to match template (yamllint .) - Update 'All tests pass' to 'All unit tests pass' to match template - Update AGENTS.md: - Add Agent Selection Guide section - Add Project Structure section - Add Documentation section - Add Markdown Link Style section - Add CI/CD section - Add Agent Report Files section - Update Key Files to reference dotnet reqstream --enforce - Update Requirements section to use reqstream enforcement - Update Code Style section with full details - Update .github/agents/requirements-agent.md: - Add Test Source Filters section (matches template) - Update enforcement command to use dotnet reqstream - Update .github/dependabot.yml: - Rename NuGet group from 'dotnet-dependencies' to 'nuget-dependencies' - Update .github/workflows/build.yaml: - Fix quality check step names to match template: 'Spell Check' -> 'Run spell checker' 'Markdown Lint' -> 'Run markdown linter' 'YAML Lint' -> 'Run YAML linter' - Reorder quality checks: markdown first, then spell check, then YAML - Add name field to build job ('Build ${{ matrix.os }}') - Reorder build job: name, needs, permissions (matches template) - Remove inline comments from build job permissions - Add --pdf-variant pdf/a-3u to all Weasyprint PDF generation steps - Fix SonarMark step to use shell:bash and bash-compatible $SONAR_TOKEN * Add macOS support from template PR #54: build/test-ghdl matrices, OS_SHORT fix, requirements, AGENTS Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com> * Add brew install nvc for macOS, use mcode backend for GHDL, add macOS to test-nvc matrix Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com> * Fix MD024 lint failure by enabling siblings_only for duplicate headings Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com> * Restore llvm backend for GHDL on macOS (mcode unsupported) Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com> * Add diagnostic output (exit code + simulator log) on validation test failure Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com> * Add GHDL elaboration step (-e) before run (-r) to fix llvm backend on macOS Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com> * Fix cspell: rename elabResults to elaborateResults Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com> * Update .github/agents/requirements-agent.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Fix ActiveHdlSimulator: standardize output directory to VHDLTest.out/ActiveHDL Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com> * Fix deadlock risks in RunProgram/Runner; add const for ActiveHDL dir; fix VivadoSimulator comment Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com> Co-authored-by: Malcolm Nixon <Malcolm.nixon@gmail.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
1 parent 7c2ebec commit 6debcbd

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+6227
-6030
lines changed

.cspell.json

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -71,22 +71,17 @@
7171
],
7272
"ignorePaths": [
7373
"node_modules",
74+
".git",
7475
"bin",
7576
"obj",
76-
".git",
77-
"*.dll",
78-
"*.exe",
79-
"*.pdb",
8077
"*.nupkg",
8178
"*.snupkg",
79+
"*.dll",
80+
"*.exe",
8281
"*.trx",
83-
"*.csproj",
84-
"*spdx.json",
82+
"*.spdx.json",
8583
"package-lock.json",
8684
"yarn.lock",
87-
"TestResults",
88-
".vs",
89-
"*.bak",
9085
"AGENT_REPORT_*.md"
9186
]
9287
}

.editorconfig

Lines changed: 37 additions & 209 deletions
Original file line numberDiff line numberDiff line change
@@ -5,242 +5,66 @@ root = true
55

66
# All files
77
[*]
8+
charset = utf-8
9+
end_of_line = lf
810
indent_style = space
11+
indent_size = 4
912
insert_final_newline = true
1013
trim_trailing_whitespace = true
11-
charset = utf-8
12-
13-
# Code files
14-
[*.{cs,csx,vb,vbx}]
15-
indent_size = 4
1614

17-
# XML project files
18-
[*.{csproj,vbproj,vcxproj,vcxproj.filters,proj,projitems,shproj}]
19-
indent_size = 2
15+
# Markdown files
16+
[*.md]
17+
trim_trailing_whitespace = false
2018

21-
# XML config files
22-
[*.{props,targets,ruleset,config,nuspec,resx,vsixmanifest,vsct}]
19+
# YAML files
20+
[*.{yml,yaml}]
2321
indent_size = 2
2422

2523
# JSON files
2624
[*.json]
2725
indent_size = 2
2826

29-
# YAML files
30-
[*.{yml,yaml}]
27+
# XML files
28+
[*.{xml,csproj,props,targets}]
3129
indent_size = 2
3230

33-
# Markdown files
34-
[*.md]
35-
trim_trailing_whitespace = false
36-
37-
# Shell scripts
38-
[*.sh]
39-
end_of_line = lf
40-
41-
# Batch files
42-
[*.{cmd,bat}]
43-
end_of_line = crlf
44-
4531
# C# files
4632
[*.cs]
47-
48-
#### Core EditorConfig Options ####
49-
50-
# Indentation and spacing
5133
indent_size = 4
52-
tab_width = 4
53-
54-
# New line preferences
55-
end_of_line = crlf
56-
insert_final_newline = true
57-
58-
#### .NET Coding Conventions ####
59-
60-
# Organize usings
61-
dotnet_separate_import_directive_groups = false
62-
dotnet_sort_system_directives_first = true
63-
file_header_template = unset
64-
65-
# this. and Me. preferences
66-
dotnet_style_qualification_for_event = false:suggestion
67-
dotnet_style_qualification_for_field = false:suggestion
68-
dotnet_style_qualification_for_method = false:suggestion
69-
dotnet_style_qualification_for_property = false:suggestion
70-
71-
# Language keywords vs BCL types preferences
72-
dotnet_style_predefined_type_for_locals_parameters_members = true:suggestion
73-
dotnet_style_predefined_type_for_member_access = true:suggestion
74-
75-
# Parentheses preferences
76-
dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:silent
77-
dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:silent
78-
dotnet_style_parentheses_in_other_operators = never_if_unnecessary:silent
79-
dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:silent
80-
81-
# Modifier preferences
82-
dotnet_style_require_accessibility_modifiers = for_non_interface_members:suggestion
83-
84-
# Expression-level preferences
85-
dotnet_style_coalesce_expression = true:suggestion
86-
dotnet_style_collection_initializer = true:suggestion
87-
dotnet_style_explicit_tuple_names = true:suggestion
88-
dotnet_style_namespace_match_folder = true:suggestion
89-
dotnet_style_null_propagation = true:suggestion
90-
dotnet_style_object_initializer = true:suggestion
91-
dotnet_style_operator_placement_when_wrapping = beginning_of_line
92-
dotnet_style_prefer_auto_properties = true:suggestion
93-
dotnet_style_prefer_compound_assignment = true:suggestion
94-
dotnet_style_prefer_conditional_expression_over_assignment = true:silent
95-
dotnet_style_prefer_conditional_expression_over_return = true:silent
96-
dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion
97-
dotnet_style_prefer_inferred_tuple_names = true:suggestion
98-
dotnet_style_prefer_is_null_check_over_reference_equality_method = true:suggestion
99-
dotnet_style_prefer_simplified_boolean_expressions = true:suggestion
100-
dotnet_style_prefer_simplified_interpolation = true:suggestion
101-
102-
# Field preferences
103-
dotnet_style_readonly_field = true:suggestion
104-
105-
# Parameter preferences
106-
dotnet_code_quality_unused_parameters = all:suggestion
107-
108-
# Suppression preferences
109-
dotnet_remove_unnecessary_suppression_exclusions = none
110-
111-
#### C# Coding Conventions ####
112-
113-
# var preferences
114-
csharp_style_var_elsewhere = false:silent
115-
csharp_style_var_for_built_in_types = false:silent
116-
csharp_style_var_when_type_is_apparent = false:silent
11734

118-
# Expression-bodied members
119-
csharp_style_expression_bodied_accessors = true:silent
120-
csharp_style_expression_bodied_constructors = false:silent
121-
csharp_style_expression_bodied_indexers = true:silent
122-
csharp_style_expression_bodied_lambdas = true:suggestion
123-
csharp_style_expression_bodied_local_functions = false:silent
35+
# Code style rules
36+
csharp_prefer_braces = true:warning
37+
csharp_prefer_simple_using_statement = true:suggestion
38+
csharp_style_namespace_declarations = file_scoped:warning
39+
csharp_style_prefer_method_group_conversion = true:silent
40+
csharp_style_prefer_top_level_statements = true:silent
12441
csharp_style_expression_bodied_methods = false:silent
42+
csharp_style_expression_bodied_constructors = false:silent
12543
csharp_style_expression_bodied_operators = false:silent
12644
csharp_style_expression_bodied_properties = true:silent
45+
csharp_style_expression_bodied_indexers = true:silent
46+
csharp_style_expression_bodied_accessors = true:silent
47+
csharp_style_expression_bodied_lambdas = true:silent
48+
csharp_style_expression_bodied_local_functions = false:silent
12749

128-
# Pattern matching preferences
129-
csharp_style_pattern_matching_over_as_with_null_check = true:suggestion
130-
csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion
131-
csharp_style_prefer_not_pattern = true:suggestion
132-
csharp_style_prefer_pattern_matching = true:silent
133-
csharp_style_prefer_switch_expression = true:suggestion
134-
csharp_style_prefer_extended_property_pattern = true:suggestion
135-
136-
# Null-checking preferences
137-
csharp_style_conditional_delegate_call = true:suggestion
138-
csharp_style_prefer_parameter_null_checking = true:suggestion
139-
140-
# Modifier preferences
141-
csharp_prefer_static_local_function = true:suggestion
142-
csharp_preferred_modifier_order = public,private,protected,internal,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,volatile,async:suggestion
143-
144-
# Code-block preferences
145-
csharp_prefer_braces = true:silent
146-
csharp_prefer_simple_using_statement = true:suggestion
147-
148-
# Expression-level preferences
149-
csharp_prefer_simple_default_expression = true:suggestion
150-
csharp_style_deconstructed_variable_declaration = true:suggestion
151-
csharp_style_implicit_object_creation_when_type_is_apparent = true:suggestion
152-
csharp_style_inlined_variable_declaration = true:suggestion
153-
csharp_style_pattern_local_over_anonymous_function = true:suggestion
154-
csharp_style_prefer_index_operator = true:suggestion
155-
csharp_style_prefer_null_check_over_type_check = true:suggestion
156-
csharp_style_prefer_range_operator = true:suggestion
157-
csharp_style_throw_expression = true:suggestion
158-
csharp_style_unused_value_assignment_preference = discard_variable:suggestion
159-
csharp_style_unused_value_expression_statement_preference = discard_variable:silent
160-
161-
# 'using' directive preferences
162-
csharp_using_directive_placement = outside_namespace:silent
163-
164-
# Namespace preferences
165-
csharp_style_namespace_declarations = file_scoped:suggestion
166-
167-
#### C# Formatting Rules ####
168-
169-
# New line preferences
170-
csharp_new_line_before_catch = true
171-
csharp_new_line_before_else = true
172-
csharp_new_line_before_finally = true
173-
csharp_new_line_before_members_in_anonymous_types = true
174-
csharp_new_line_before_members_in_object_initializers = true
175-
csharp_new_line_before_open_brace = all
176-
csharp_new_line_between_query_expression_clauses = true
177-
178-
# Indentation preferences
179-
csharp_indent_block_contents = true
180-
csharp_indent_braces = false
181-
csharp_indent_case_contents = true
182-
csharp_indent_case_contents_when_block = true
183-
csharp_indent_labels = one_less_than_current
184-
csharp_indent_switch_labels = true
185-
186-
# Space preferences
187-
csharp_space_after_cast = false
188-
csharp_space_after_colon_in_inheritance_clause = true
189-
csharp_space_after_comma = true
190-
csharp_space_after_dot = false
191-
csharp_space_after_keywords_in_control_flow_statements = true
192-
csharp_space_after_semicolon_in_for_statement = true
193-
csharp_space_around_binary_operators = before_and_after
194-
csharp_space_around_declaration_statements = false
195-
csharp_space_before_colon_in_inheritance_clause = true
196-
csharp_space_before_comma = false
197-
csharp_space_before_dot = false
198-
csharp_space_before_open_square_brackets = false
199-
csharp_space_before_semicolon_in_for_statement = false
200-
csharp_space_between_empty_square_brackets = false
201-
csharp_space_between_method_call_empty_parameter_list_parentheses = false
202-
csharp_space_between_method_call_name_and_opening_parenthesis = false
203-
csharp_space_between_method_call_parameter_list_parentheses = false
204-
csharp_space_between_method_declaration_empty_parameter_list_parentheses = false
205-
csharp_space_between_method_declaration_name_and_open_parenthesis = false
206-
csharp_space_between_method_declaration_parameter_list_parentheses = false
207-
csharp_space_between_parentheses = false
208-
csharp_space_between_square_brackets = false
209-
210-
# Wrapping preferences
211-
csharp_preserve_single_line_blocks = true
212-
csharp_preserve_single_line_statements = true
213-
214-
#### Naming styles ####
215-
216-
# Naming rules
217-
218-
dotnet_naming_rule.interface_should_be_begins_with_i.severity = suggestion
50+
# Naming conventions
51+
dotnet_naming_rule.interface_should_be_begins_with_i.severity = warning
21952
dotnet_naming_rule.interface_should_be_begins_with_i.symbols = interface
22053
dotnet_naming_rule.interface_should_be_begins_with_i.style = begins_with_i
22154

222-
dotnet_naming_rule.types_should_be_pascal_case.severity = suggestion
55+
dotnet_naming_rule.types_should_be_pascal_case.severity = warning
22356
dotnet_naming_rule.types_should_be_pascal_case.symbols = types
22457
dotnet_naming_rule.types_should_be_pascal_case.style = pascal_case
22558

226-
dotnet_naming_rule.non_field_members_should_be_pascal_case.severity = suggestion
59+
dotnet_naming_rule.non_field_members_should_be_pascal_case.severity = warning
22760
dotnet_naming_rule.non_field_members_should_be_pascal_case.symbols = non_field_members
22861
dotnet_naming_rule.non_field_members_should_be_pascal_case.style = pascal_case
22962

230-
dotnet_naming_rule.private_or_internal_field_should_be_begins_with_underscore.severity = suggestion
231-
dotnet_naming_rule.private_or_internal_field_should_be_begins_with_underscore.symbols = private_or_internal_field
232-
dotnet_naming_rule.private_or_internal_field_should_be_begins_with_underscore.style = begins_with_underscore
233-
23463
# Symbol specifications
235-
23664
dotnet_naming_symbols.interface.applicable_kinds = interface
23765
dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
23866
dotnet_naming_symbols.interface.required_modifiers =
23967

240-
dotnet_naming_symbols.private_or_internal_field.applicable_kinds = field
241-
dotnet_naming_symbols.private_or_internal_field.applicable_accessibilities = internal, private, private_protected
242-
dotnet_naming_symbols.private_or_internal_field.required_modifiers =
243-
24468
dotnet_naming_symbols.types.applicable_kinds = class, struct, interface, enum
24569
dotnet_naming_symbols.types.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
24670
dotnet_naming_symbols.types.required_modifiers =
@@ -250,18 +74,22 @@ dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, int
25074
dotnet_naming_symbols.non_field_members.required_modifiers =
25175

25276
# Naming styles
77+
dotnet_naming_style.begins_with_i.required_prefix = I
78+
dotnet_naming_style.begins_with_i.required_suffix =
79+
dotnet_naming_style.begins_with_i.word_separator =
80+
dotnet_naming_style.begins_with_i.capitalization = pascal_case
25381

25482
dotnet_naming_style.pascal_case.required_prefix =
25583
dotnet_naming_style.pascal_case.required_suffix =
25684
dotnet_naming_style.pascal_case.word_separator =
25785
dotnet_naming_style.pascal_case.capitalization = pascal_case
25886

259-
dotnet_naming_style.begins_with_i.required_prefix = I
260-
dotnet_naming_style.begins_with_i.required_suffix =
261-
dotnet_naming_style.begins_with_i.word_separator =
262-
dotnet_naming_style.begins_with_i.capitalization = pascal_case
87+
# Organize usings
88+
dotnet_sort_system_directives_first = true
89+
dotnet_separate_import_directive_groups = false
90+
91+
# Code quality - set to suggestion to not break existing code
92+
dotnet_code_quality_unused_parameters = all:suggestion
26393

264-
dotnet_naming_style.begins_with_underscore.required_prefix = _
265-
dotnet_naming_style.begins_with_underscore.required_suffix =
266-
dotnet_naming_style.begins_with_underscore.word_separator =
267-
dotnet_naming_style.begins_with_underscore.capitalization = camel_case
94+
# Nullable reference types
95+
csharp_nullable_reference_types = enable

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
---
22
blank_issues_enabled: false
33
contact_links:
4-
- name: 💬 Ask a Question
4+
- name: 📚 Documentation
5+
url: https://github.com/demaconsulting/VHDLTest
6+
about: Read the documentation for VHDLTest
7+
- name: 💬 Discussions
58
url: https://github.com/demaconsulting/VHDLTest/discussions
69
about: Ask questions and discuss with the community
710
- name: 🔒 Security Issue

0 commit comments

Comments
 (0)