diff --git a/.gitignore b/.gitignore index f101b3b15..42a5e999f 100644 --- a/.gitignore +++ b/.gitignore @@ -15,7 +15,6 @@ tests/TestArchives/*/Scratch tests/TestArchives/*/Scratch2 .vs tools -.vscode .idea/ .DS_Store diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 000000000..0c9d8a371 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,9 @@ +{ + "recommendations": [ + "ms-dotnettools.csdevkit", + "ms-dotnettools.csharp", + "ms-dotnettools.vscode-dotnet-runtime", + "csharpier.csharpier-vscode", + "formulahendry.dotnet-test-explorer" + ] +} diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 000000000..8171a42b1 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,97 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "Debug Tests (net10.0)", + "type": "coreclr", + "request": "launch", + "preLaunchTask": "build", + "program": "dotnet", + "args": [ + "test", + "${workspaceFolder}/tests/SharpCompress.Test/SharpCompress.Test.csproj", + "-f", + "net10.0", + "--no-build", + "--verbosity=normal" + ], + "cwd": "${workspaceFolder}", + "console": "internalConsole", + "stopAtEntry": false + }, + { + "name": "Debug Specific Test (net10.0)", + "type": "coreclr", + "request": "launch", + "preLaunchTask": "build", + "program": "dotnet", + "args": [ + "test", + "${workspaceFolder}/tests/SharpCompress.Test/SharpCompress.Test.csproj", + "-f", + "net10.0", + "--no-build", + "--filter", + "FullyQualifiedName~${input:testName}" + ], + "cwd": "${workspaceFolder}", + "console": "internalConsole", + "stopAtEntry": false + }, + { + "name": "Debug Performance Tests", + "type": "coreclr", + "request": "launch", + "preLaunchTask": "build", + "program": "dotnet", + "args": [ + "run", + "--project", + "${workspaceFolder}/tests/SharpCompress.Performance/SharpCompress.Performance.csproj", + "--no-build" + ], + "cwd": "${workspaceFolder}", + "console": "internalConsole", + "stopAtEntry": false + }, + { + "name": "Debug Build Script", + "type": "coreclr", + "request": "launch", + "program": "dotnet", + "args": [ + "run", + "--project", + "${workspaceFolder}/build/build.csproj", + "--", + "${input:buildTarget}" + ], + "cwd": "${workspaceFolder}", + "console": "internalConsole", + "stopAtEntry": false + } + ], + "inputs": [ + { + "id": "testName", + "type": "promptString", + "description": "Enter test name or pattern (e.g., TestMethodName or ClassName)", + "default": "" + }, + { + "id": "buildTarget", + "type": "pickString", + "description": "Select build target", + "options": [ + "clean", + "restore", + "build", + "test", + "format", + "publish", + "default" + ], + "default": "build" + } + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 000000000..079985397 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,29 @@ +{ + "dotnet.defaultSolution": "SharpCompress.sln", + "files.exclude": { + "**/bin": true, + "**/obj": true + }, + "files.watcherExclude": { + "**/bin/**": true, + "**/obj/**": true, + "**/artifacts/**": true + }, + "search.exclude": { + "**/bin": true, + "**/obj": true, + "**/artifacts": true + }, + "editor.formatOnSave": false, + "[csharp]": { + "editor.defaultFormatter": "csharpier.csharpier-vscode", + "editor.formatOnSave": true, + "editor.codeActionsOnSave": { + "source.fixAll": "explicit" + } + }, + "csharpier.enableDebugLogs": false, + "omnisharp.enableRoslynAnalyzers": true, + "omnisharp.enableEditorConfigSupport": true, + "dotnet-test-explorer.testProjectPath": "tests/**/*.csproj" +} diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 000000000..9f59e69dc --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,178 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "label": "build", + "command": "dotnet", + "type": "process", + "args": [ + "build", + "${workspaceFolder}/SharpCompress.sln", + "/property:GenerateFullPaths=true", + "/consoleloggerparameters:NoSummary;ForceNoAlign" + ], + "problemMatcher": "$msCompile", + "group": { + "kind": "build", + "isDefault": true + } + }, + { + "label": "build-release", + "command": "dotnet", + "type": "process", + "args": [ + "build", + "${workspaceFolder}/SharpCompress.sln", + "-c", + "Release", + "/property:GenerateFullPaths=true", + "/consoleloggerparameters:NoSummary;ForceNoAlign" + ], + "problemMatcher": "$msCompile", + "group": "build" + }, + { + "label": "build-library", + "command": "dotnet", + "type": "process", + "args": [ + "build", + "${workspaceFolder}/src/SharpCompress/SharpCompress.csproj", + "/property:GenerateFullPaths=true", + "/consoleloggerparameters:NoSummary;ForceNoAlign" + ], + "problemMatcher": "$msCompile", + "group": "build" + }, + { + "label": "restore", + "command": "dotnet", + "type": "process", + "args": [ + "restore", + "${workspaceFolder}/SharpCompress.sln" + ], + "problemMatcher": "$msCompile" + }, + { + "label": "clean", + "command": "dotnet", + "type": "process", + "args": [ + "clean", + "${workspaceFolder}/SharpCompress.sln" + ], + "problemMatcher": "$msCompile" + }, + { + "label": "test", + "command": "dotnet", + "type": "process", + "args": [ + "test", + "${workspaceFolder}/tests/SharpCompress.Test/SharpCompress.Test.csproj", + "--no-build", + "--verbosity=normal" + ], + "problemMatcher": "$msCompile", + "group": { + "kind": "test", + "isDefault": true + }, + "dependsOn": "build" + }, + { + "label": "test-net10", + "command": "dotnet", + "type": "process", + "args": [ + "test", + "${workspaceFolder}/tests/SharpCompress.Test/SharpCompress.Test.csproj", + "-f", + "net10.0", + "--no-build", + "--verbosity=normal" + ], + "problemMatcher": "$msCompile", + "group": "test", + "dependsOn": "build" + }, + { + "label": "test-net48", + "command": "dotnet", + "type": "process", + "args": [ + "test", + "${workspaceFolder}/tests/SharpCompress.Test/SharpCompress.Test.csproj", + "-f", + "net48", + "--no-build", + "--verbosity=normal" + ], + "problemMatcher": "$msCompile", + "group": "test", + "dependsOn": "build" + }, + { + "label": "format", + "command": "dotnet", + "type": "process", + "args": [ + "csharpier", + "." + ], + "problemMatcher": [] + }, + { + "label": "format-check", + "command": "dotnet", + "type": "process", + "args": [ + "csharpier", + "check", + "." + ], + "problemMatcher": [] + }, + { + "label": "run-build-script", + "command": "dotnet", + "type": "process", + "args": [ + "run", + "--project", + "${workspaceFolder}/build/build.csproj" + ], + "problemMatcher": "$msCompile" + }, + { + "label": "pack", + "command": "dotnet", + "type": "process", + "args": [ + "pack", + "${workspaceFolder}/src/SharpCompress/SharpCompress.csproj", + "-c", + "Release", + "-o", + "${workspaceFolder}/artifacts/" + ], + "problemMatcher": "$msCompile", + "dependsOn": "build-release" + }, + { + "label": "performance-tests", + "command": "dotnet", + "type": "process", + "args": [ + "run", + "--project", + "${workspaceFolder}/tests/SharpCompress.Performance/SharpCompress.Performance.csproj", + "-c", + "Release" + ], + "problemMatcher": "$msCompile" + } + ] +}