diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..d5b3b81 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,144 @@ +root = true + +[*] +charset = utf-8 +end_of_line = crlf +trim_trailing_whitespace = true +insert_final_newline = true +indent_style = space + +[*.{cs,csx,vb,vbx}] +indent_size = 4 +tab_width = 4 + +[*.{json,js,jsx,ts,tsx}] +indent_size = 2 + +[*.{xml,xaml,csproj,vbproj,vcxproj,vcxproj.filters,proj,projitems,shproj}] +indent_size = 2 + +[*.{md,markdown}] +trim_trailing_whitespace = false + +# .NET formatting rules +[*.{cs,vb}] + +# Organize usings +dotnet_separate_import_directive_groups = false +dotnet_sort_system_directives_first = true +file_header_template = unset + +# this. and Me. preferences +dotnet_style_qualification_for_event = false +dotnet_style_qualification_for_field = false +dotnet_style_qualification_for_method = false +dotnet_style_qualification_for_property = false + +# Language keywords vs BCL types preferences +dotnet_style_predefined_type_for_locals_parameters_members = true +dotnet_style_predefined_type_for_member_access = true + +# Parentheses preferences +dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity +dotnet_style_parentheses_in_other_binary_operators = always_for_clarity +dotnet_style_parentheses_in_other_operators = never_if_unnecessary +dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity + +# Modifier preferences +dotnet_style_require_accessibility_modifiers = for_non_interface_members + +# Expression-level preferences +dotnet_style_coalesce_expression = true +dotnet_style_collection_initializer = true +dotnet_style_explicit_tuple_names = true +dotnet_style_null_propagation = true +dotnet_style_object_initializer = true +dotnet_style_operator_placement_when_wrapping = beginning_of_line +dotnet_style_prefer_auto_properties = true +dotnet_style_prefer_compound_assignment = true +dotnet_style_prefer_conditional_expression_over_assignment = true +dotnet_style_prefer_conditional_expression_over_return = true +dotnet_style_prefer_inferred_anonymous_type_member_names = true +dotnet_style_prefer_inferred_tuple_names = true +dotnet_style_prefer_is_null_check_over_reference_equality_method = true +dotnet_style_prefer_simplified_boolean_expressions = true +dotnet_style_prefer_simplified_interpolation = true + +# C# formatting rules +[*.cs] + +# 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 = all +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 = flush_left +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 = true + +# var preferences +csharp_style_var_elsewhere = false +csharp_style_var_for_built_in_types = false +csharp_style_var_when_type_is_apparent = true + +# Expression-bodied members +csharp_style_expression_bodied_accessors = true +csharp_style_expression_bodied_constructors = false +csharp_style_expression_bodied_indexers = true +csharp_style_expression_bodied_lambdas = true +csharp_style_expression_bodied_local_functions = false +csharp_style_expression_bodied_methods = false +csharp_style_expression_bodied_operators = false +csharp_style_expression_bodied_properties = true + +# Pattern matching preferences +csharp_style_pattern_matching_over_as_with_null_check = true +csharp_style_pattern_matching_over_is_with_cast_check = true +csharp_style_prefer_switch_expression = true + +# Null-checking preferences +csharp_style_conditional_delegate_call = true + +# Modifier preferences +csharp_prefer_static_local_functions = true +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 = true +csharp_prefer_simple_using_statement = true \ No newline at end of file diff --git a/.gitignore b/.gitignore index 02c57f9..0b0e0cf 100644 --- a/.gitignore +++ b/.gitignore @@ -24,7 +24,6 @@ bld/ # Visual Studio 2015 cache/options directory .vs/ -.vscode/ # Uncomment if you have tasks that create the project's static files in wwwroot #wwwroot/ diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..dd10eb8 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,10 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": ".NET Core Attach", + "type": "coreclr", + "request": "attach" + } + ] +} \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..943ce9b --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,67 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "label": "build", + "command": "dotnet", + "type": "process", + "args": [ + "build", + "${workspaceFolder}/SharpCAT/SharpCATLib.csproj", + "/property:GenerateFullPaths=true", + "/consoleloggerparameters:NoSummary" + ], + "problemMatcher": "$msCompile", + "group": { + "kind": "build", + "isDefault": true + } + }, + { + "label": "publish", + "command": "dotnet", + "type": "process", + "args": [ + "publish", + "${workspaceFolder}/SharpCAT/SharpCATLib.csproj", + "/property:GenerateFullPaths=true", + "/consoleloggerparameters:NoSummary" + ], + "problemMatcher": "$msCompile" + }, + { + "label": "watch", + "command": "dotnet", + "type": "process", + "args": [ + "watch", + "run", + "--project", + "${workspaceFolder}/SharpCAT/SharpCATLib.csproj" + ], + "problemMatcher": "$msCompile" + }, + { + "label": "clean", + "command": "dotnet", + "type": "process", + "args": [ + "clean", + "${workspaceFolder}/SharpCAT/SharpCATLib.csproj", + "/property:GenerateFullPaths=true", + "/consoleloggerparameters:NoSummary" + ], + "problemMatcher": "$msCompile" + }, + { + "label": "restore", + "command": "dotnet", + "type": "process", + "args": [ + "restore", + "${workspaceFolder}/SharpCAT/SharpCATLib.csproj" + ], + "problemMatcher": "$msCompile" + } + ] +} \ No newline at end of file diff --git a/README.md b/README.md index 7b0d316..6de175e 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,40 @@ C#, .NET Standard based CAT control library. I am targeting .Net Standard so that the assembly may be used with .Net Core or the .Net framework. +## Development Setup + +### Prerequisites +- [.NET 8.0 SDK](https://dotnet.microsoft.com/download) or later +- [Visual Studio Code](https://code.visualstudio.com/) +- [C# Extension for VS Code](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csharp) + +### Building and Running + +This project is configured for development in Visual Studio Code with the .NET CLI. + +**To build the project:** +```bash +dotnet build SharpCAT/SharpCATLib.csproj +``` + +**To clean the project:** +```bash +dotnet clean SharpCAT/SharpCATLib.csproj +``` + +**To restore packages:** +```bash +dotnet restore SharpCAT/SharpCATLib.csproj +``` + +**VS Code Tasks:** +The repository includes pre-configured VS Code tasks (`Ctrl+Shift+P` → "Tasks: Run Task"): +- **build** - Builds the project (default build task: `Ctrl+Shift+B`) +- **clean** - Cleans build outputs +- **restore** - Restores NuGet packages +- **publish** - Publishes the library +- **watch** - Watches for changes and rebuilds automatically + I'm starting with the FT818, I then plan on adding my ID-4100a, and TH-D74A. If you wish to help let me know, or create a pull request. I'm not a pro developer, just a hack diff --git a/SharpCAT.sln b/SharpCAT.sln deleted file mode 100644 index 8b836a1..0000000 --- a/SharpCAT.sln +++ /dev/null @@ -1,31 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.31112.23 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SharpCATLib", "SharpCAT\SharpCATLib.csproj", "{DAD3E7BE-905A-4768-A695-0BCF96171E35}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {DAD3E7BE-905A-4768-A695-0BCF96171E35}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DAD3E7BE-905A-4768-A695-0BCF96171E35}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DAD3E7BE-905A-4768-A695-0BCF96171E35}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DAD3E7BE-905A-4768-A695-0BCF96171E35}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {4BF99AE0-6109-48CE-955C-F4F31BA0D9BA} - EndGlobalSection - GlobalSection(MonoDevelopProperties) = preSolution - Policies = $0 - $0.DotNetNamingPolicy = $1 - $1.DirectoryNamespaceAssociation = PrefixedHierarchical - $0.VersionControlPolicy = $2 - EndGlobalSection -EndGlobal diff --git a/SharpCAT.sublime-project b/SharpCAT.sublime-project deleted file mode 100644 index db3281f..0000000 --- a/SharpCAT.sublime-project +++ /dev/null @@ -1,10 +0,0 @@ -{ - "folders": - [ - { - "follow_symlinks": true, - "path": "." - } - ], - "solution_file": "./SharpCAT.sln" -} \ No newline at end of file diff --git a/SharpCAT.sublime-workspace b/SharpCAT.sublime-workspace deleted file mode 100644 index bc00b1a..0000000 --- a/SharpCAT.sublime-workspace +++ /dev/null @@ -1,195 +0,0 @@ -{ - "auto_complete": - { - "selected_items": - [ - ] - }, - "buffers": - [ - ], - "build_system": "", - "build_system_choices": - [ - ], - "build_varint": "", - "command_palette": - { - "height": 0.0, - "last_filter": "", - "selected_items": - [ - [ - "inst", - "Package Control: Install Package" - ], - [ - "i", - "Package Control: Install Package" - ], - [ - "ins", - "Package Control: Install Package" - ], - [ - "insta", - "Package Control: Install Package" - ] - ], - "width": 0.0 - }, - "console": - { - "height": 0.0, - "history": - [ - ] - }, - "distraction_free": - { - "menu_visible": true, - "show_minimap": false, - "show_open_files": false, - "show_tabs": false, - "side_bar_visible": false, - "status_bar_visible": false - }, - "expanded_folders": - [ - "/Users/erick/Library/Mobile Documents/com~apple~CloudDocs/Projects/SharpCAT", - "/Users/erick/Library/Mobile Documents/com~apple~CloudDocs/Projects/SharpCAT/SharpCAT" - ], - "file_history": - [ - "/Users/erick/Library/Mobile Documents/com~apple~CloudDocs/Projects/SharpCAT/SharpCAT/SharpCAT.cs", - "/Users/erick/Library/Mobile Documents/com~apple~CloudDocs/Projects/SharpCAT/SharpCAT/Serial.cs" - ], - "find": - { - "height": 0.0 - }, - "find_in_files": - { - "height": 0.0, - "where_history": - [ - ] - }, - "find_state": - { - "case_sensitive": false, - "find_history": - [ - ], - "highlight": true, - "in_selection": false, - "preserve_case": false, - "regex": false, - "replace_history": - [ - ], - "reverse": false, - "show_context": true, - "use_buffer2": true, - "whole_word": false, - "wrap": true - }, - "groups": - [ - { - "sheets": - [ - ] - } - ], - "incremental_find": - { - "height": 0.0 - }, - "input": - { - "height": 0.0 - }, - "layout": - { - "cells": - [ - [ - 0, - 0, - 1, - 1 - ] - ], - "cols": - [ - 0.0, - 1.0 - ], - "rows": - [ - 0.0, - 1.0 - ] - }, - "menu_visible": true, - "output.exec": - { - "height": 108.0 - }, - "output.find_results": - { - "height": 0.0 - }, - "output.variable_get": - { - "height": 0.0 - }, - "pinned_build_system": "", - "project": "SharpCAT.sublime-project", - "replace": - { - "height": 0.0 - }, - "save_all_on_build": true, - "select_file": - { - "height": 0.0, - "last_filter": "", - "selected_items": - [ - ], - "width": 0.0 - }, - "select_project": - { - "height": 0.0, - "last_filter": "", - "selected_items": - [ - ], - "width": 0.0 - }, - "select_symbol": - { - "height": 0.0, - "last_filter": "", - "selected_items": - [ - ], - "width": 0.0 - }, - "selected_group": 0, - "settings": - { - }, - "show_minimap": true, - "show_open_files": false, - "show_tabs": true, - "side_bar_visible": true, - "side_bar_width": 269.0, - "status_bar_visible": true, - "template_settings": - { - } -} diff --git a/SharpCAT/SharpCATLib.sln b/SharpCAT/SharpCATLib.sln deleted file mode 100644 index b06762b..0000000 --- a/SharpCAT/SharpCATLib.sln +++ /dev/null @@ -1,25 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.808.10 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SharpCATLib", "SharpCATLib.csproj", "{DC978DDF-22CD-4FF2-8312-354A6F1174F9}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {DC978DDF-22CD-4FF2-8312-354A6F1174F9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DC978DDF-22CD-4FF2-8312-354A6F1174F9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DC978DDF-22CD-4FF2-8312-354A6F1174F9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DC978DDF-22CD-4FF2-8312-354A6F1174F9}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {1373D69F-5DEC-46AE-BC40-3D8B7A9D57BD} - EndGlobalSection -EndGlobal