diff --git a/.claude/settings.json b/.claude/settings.json new file mode 100644 index 0000000000..8c923f0678 --- /dev/null +++ b/.claude/settings.json @@ -0,0 +1,18 @@ +{ + "permissions": { + "allow": [ + "Bash(grep -E \"\\\\.cs$\")", + "Bash(dotnet --version)", + "Bash(dotnet build *)", + "Bash(dotnet test *)", + "Bash(dotnet clean *)", + "Bash(dotnet restore *)", + "Bash(dotnet format *)" + ] + }, + "enabledPlugins": { + "csharp-lsp@claude-plugins-official": true, + "dotnet-test@dotnet-agent-skills": true, + "dotnet-upgrade@dotnet-agent-skills": true + } +} diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index df058170ac..5f35c29825 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,4 +1,4 @@ -FROM mcr.microsoft.com/devcontainers/dotnet:dev-9.0 +FROM mcr.microsoft.com/devcontainers/dotnet:dev-10.0 # [Optional] Uncomment this section to install additional OS packages. # RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \ diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 69b116d50b..6dad23a0ee 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -14,7 +14,7 @@ "userGid": "1000", "upgradePackages": "true" }, - "ghcr.io/devcontainers/features/git:1": { + "ghcr.io/devcontainers/features/git:1": { "version": "os-provided", "ppa": "false" }, @@ -26,13 +26,20 @@ }, "ghcr.io/devcontainers/features/docker-in-docker:2": { "version": "latest" + }, + "ghcr.io/eitsupi/devcontainer-features/jq-likes:2.1.1": { + "jqVersion": "latest", + "yqVersion": "latest", + "xqVersion": "none" } }, "customizations": { "vscode": { "settings": { "editor.fontFamily": "'Cascadia Code', Consolas, 'Courier New', monospace", - "editor.rulers": [ 90 ], + "editor.rulers": [ + 90 + ], "cSpell.words": [ "commiting", "gittools", @@ -47,9 +54,7 @@ ] } }, - "postCreateCommand": "dotnet restore src; dotnet build build", - // Comment out connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root. "remoteUser": "vscode" } diff --git a/.editorconfig b/.editorconfig index f199d80f9e..c6ada21b10 100644 --- a/.editorconfig +++ b/.editorconfig @@ -10,13 +10,7 @@ end_of_line = lf trim_trailing_whitespace = true insert_final_newline = true -# Microsoft .NET properties -dotnet_style_qualification_for_event = false:none -dotnet_style_qualification_for_field = false:none -dotnet_style_qualification_for_method = false:none -dotnet_style_qualification_for_property = false:none - -[*.yml] +[{*.yml,*.xml}] indent_size = 2 ### CSharp code style settings ### @@ -25,12 +19,6 @@ indent_size = 2 dotnet_separate_import_directive_groups = false dotnet_sort_system_directives_first = true -# Avoid "this." and "Me." if not necessary -dotnet_style_qualification_for_field = false:silent -dotnet_style_qualification_for_property = false:silent -dotnet_style_qualification_for_method = false:silent -dotnet_style_qualification_for_event = false:silent - # Use language keywords instead of framework type names for type references dotnet_style_predefined_type_for_locals_parameters_members = true:warning dotnet_style_predefined_type_for_member_access = true:warning @@ -158,9 +146,20 @@ resharper_csharp_use_roslyn_logic_for_evident_types = true # Alignment resharper_csharp_align_multiline_parameter = true -# Qualify fields with "this." +# Qualify fields with `this.` in ReSharper resharper_csharp_instance_members_qualify_members = field +# Qualify fields with `this.` in Roslyn +dotnet_style_qualification_for_field = true:error + +# Do not qualify properties, methods, and events with `this.` in Roslyn +dotnet_style_qualification_for_property = false:error +dotnet_style_qualification_for_method = false:error +dotnet_style_qualification_for_event = false:error + +# Make missing `this.` qualification an error +dotnet_diagnostic.IDE0009.severity = error + # IDE0005: Using directive is unnecessary. dotnet_diagnostic.ide0005.severity = warning @@ -170,8 +169,13 @@ dotnet_diagnostic.rcs1037.severity = error # RCS1036: Remove redundant empty line. dotnet_diagnostic.rcs1036.severity = error +dotnet_diagnostic.S2325.severity = none +dotnet_diagnostic.S4136.severity = none + xml_space_before_self_closing = true +resharper_arrange_this_qualifier_highlighting = none + resharper_arrange_object_creation_when_type_not_evident_highlighting = none resharper_unused_auto_property_accessor_global_highlighting = none diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 4f351aa9c3..21d268617f 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,40 +1,49 @@ - + ## Description - + ## Related Issue - + +This project only accepts pull requests related to open issues. +If suggesting a new feature or change, please discuss it in an issue first. +If fixing a bug, there should be an issue describing it with steps to reproduce. +Please replace "XYZ" below with the issue number that is being resolved by this +pull request. - +--> - +Resolves #XYZ ## Motivation and Context - + ## How Has This Been Tested? - + +Include details of your testing environment, and the tests you ran to +see how your change affects other areas of the code, etc. +Please describe in detail how you tested your changes. - +--> ## Screenshots (if appropriate): - + ## Checklist: - + +Go over all the following points, and put an `x` in all the boxes that apply. +If you're unsure about any of these, don't hesitate to ask. We're here to help! + +--> * \[ ] My code follows the code style of this project. * \[ ] My change requires a change to the documentation. diff --git a/.github/actions/artifacts-attest/action.yml b/.github/actions/artifacts-attest/action.yml index 7722489c36..aa4547a256 100644 --- a/.github/actions/artifacts-attest/action.yml +++ b/.github/actions/artifacts-attest/action.yml @@ -4,10 +4,9 @@ description: 'Artifacts attestation' runs: using: 'composite' steps: - - - name: 'Attestation' - uses: actions/attest-build-provenance@v2.0.1 - with: - subject-path: | - ${{ github.workspace }}/artifacts/packages/native - ${{ github.workspace }}/artifacts/packages/nuget \ No newline at end of file + - name: 'Attestation' + uses: actions/attest-build-provenance@v4.1.0 + with: + subject-path: | + ${{ github.workspace }}/artifacts/packages/native + ${{ github.workspace }}/artifacts/packages/nuget diff --git a/.github/actions/artifacts-restore/action.yml b/.github/actions/artifacts-restore/action.yml index acca453639..b69757c8c1 100644 --- a/.github/actions/artifacts-restore/action.yml +++ b/.github/actions/artifacts-restore/action.yml @@ -4,27 +4,26 @@ description: 'Artifacts restore' runs: using: 'composite' steps: - - - uses: actions/download-artifact@v4 - name: Download native linux packages - with: - name: native-Linux - path: ${{ github.workspace }}/artifacts/packages/native - - - uses: actions/download-artifact@v4 - name: Download native windows packages - with: - name: native-Windows - path: ${{ github.workspace }}/artifacts/packages/native - - - uses: actions/download-artifact@v4 - name: Download native macos packages - with: - name: native-macOS - path: ${{ github.workspace }}/artifacts/packages/native - - - uses: actions/download-artifact@v4 - name: Download nuget packages - with: - name: nuget - path: ${{ github.workspace }}/artifacts/packages/nuget \ No newline at end of file + - uses: actions/download-artifact@v8 + name: Download native linux packages + with: + name: native-Linux + path: ${{ github.workspace }}/artifacts/packages/native + + - uses: actions/download-artifact@v8 + name: Download native windows packages + with: + name: native-Windows + path: ${{ github.workspace }}/artifacts/packages/native + + - uses: actions/download-artifact@v8 + name: Download native macos packages + with: + name: native-macOS + path: ${{ github.workspace }}/artifacts/packages/native + + - uses: actions/download-artifact@v8 + name: Download nuget packages + with: + name: nuget + path: ${{ github.workspace }}/artifacts/packages/nuget diff --git a/.github/actions/cache-restore/action.yml b/.github/actions/cache-restore/action.yml index 3a3487843b..192a459441 100644 --- a/.github/actions/cache-restore/action.yml +++ b/.github/actions/cache-restore/action.yml @@ -4,22 +4,21 @@ description: 'Cache restore' runs: using: 'composite' steps: - - - name: Use cached cake frosting - id: cache-cake - uses: actions/cache@v4 - with: - path: run - key: run-${{ runner.os }}-${{ hashFiles('./build/**') }} - - - name: Use cached tools - id: cache-tools - uses: actions/cache@v4 - with: - path: tools - key: tools-${{ runner.os }}-${{ hashFiles('./build/**') }} - - - name: Setup .NET SDK - uses: actions/setup-dotnet@v4 - with: - global-json-file: global.json \ No newline at end of file + - name: Use cached cake frosting + id: cache-cake + uses: actions/cache@v5 + with: + path: run + key: run-${{ runner.os }}-${{ hashFiles('./build/**') }} + + - name: Use cached tools + id: cache-tools + uses: actions/cache@v5 + with: + path: tools + key: tools-${{ runner.os }}-${{ hashFiles('./build/**') }} + + - name: Setup .NET SDK + uses: actions/setup-dotnet@v5 + with: + global-json-file: global.json diff --git a/.github/actions/docker-manifests/action.yml b/.github/actions/docker-manifests/action.yml index 23de24c989..5c1acd4771 100644 --- a/.github/actions/docker-manifests/action.yml +++ b/.github/actions/docker-manifests/action.yml @@ -23,30 +23,29 @@ inputs: runs: using: 'composite' steps: - - - name: Login to DockerHub - uses: docker/login-action@v3 - with: - username: ${{ inputs.docker_registry_username }} - password: ${{ inputs.docker_registry_password }} - - - name: '[Docker Publish Manifests] DockerHub' - shell: pwsh - run: | + - name: Login to DockerHub + uses: docker/login-action@v4 + with: + username: ${{ inputs.docker_registry_username }} + password: ${{ inputs.docker_registry_password }} + + - name: '[Docker Publish Manifests] DockerHub' + shell: pwsh + run: | dotnet run/docker.dll ` --target=DockerManifest --arch=amd64 --arch=arm64 --dotnet_version=${{ inputs.dotnet_version }} ` --docker_distro=${{ inputs.docker_distro }} --docker_registry dockerhub - - - name: Login to GitHub - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ inputs.github_registry_username }} - password: ${{ inputs.github_registry_password }} - - - name: '[Docker Publish Manifests] GitHub' - shell: pwsh - run: | + + - name: Login to GitHub + uses: docker/login-action@v4 + with: + registry: ghcr.io + username: ${{ inputs.github_registry_username }} + password: ${{ inputs.github_registry_password }} + + - name: '[Docker Publish Manifests] GitHub' + shell: pwsh + run: | dotnet run/docker.dll ` --target=DockerManifest --arch=amd64 --arch=arm64 --dotnet_version=${{ inputs.dotnet_version }} ` --docker_distro=${{ inputs.docker_distro }} --docker_registry github diff --git a/.github/actions/docker-publish/action.yml b/.github/actions/docker-publish/action.yml index e5f2e05757..8835c1e733 100644 --- a/.github/actions/docker-publish/action.yml +++ b/.github/actions/docker-publish/action.yml @@ -22,34 +22,33 @@ inputs: github_registry_password: description: 'GitHub Registry Password' required: true - + runs: using: 'composite' steps: - - - name: Login to DockerHub - uses: docker/login-action@v3 - with: - username: ${{ inputs.docker_registry_username }} - password: ${{ inputs.docker_registry_password }} - - - name: '[Docker Publish] DockerHub' - shell: pwsh - run: | + - name: Login to DockerHub + uses: docker/login-action@v4 + with: + username: ${{ inputs.docker_registry_username }} + password: ${{ inputs.docker_registry_password }} + + - name: '[Docker Publish] DockerHub' + shell: pwsh + run: | dotnet run/docker.dll ` --target=DockerPublish --arch=${{ inputs.arch }} --dotnet_version=${{ inputs.dotnet_version }} ` --docker_distro=${{ inputs.docker_distro }} --docker_registry dockerhub --verbosity=diagnostic - - - name: Login to GitHub - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ inputs.github_registry_username }} - password: ${{ inputs.github_registry_password }} - - - name: '[Docker Publish] GitHub' - shell: pwsh - run: | + + - name: Login to GitHub + uses: docker/login-action@v4 + with: + registry: ghcr.io + username: ${{ inputs.github_registry_username }} + password: ${{ inputs.github_registry_password }} + + - name: '[Docker Publish] GitHub' + shell: pwsh + run: | dotnet run/docker.dll ` --target=DockerPublish --arch=${{ inputs.arch }} --dotnet_version=${{ inputs.dotnet_version }} ` --docker_distro=${{ inputs.docker_distro }} --docker_registry github --verbosity=diagnostic diff --git a/.github/actions/docker-setup/action.yml b/.github/actions/docker-setup/action.yml index 7b75cebdfd..2e43c229be 100644 --- a/.github/actions/docker-setup/action.yml +++ b/.github/actions/docker-setup/action.yml @@ -2,15 +2,9 @@ name: 'Docker Setup' description: 'Setups the docker engine' runs: - using: 'composite' - steps: - - name: Set up Docker - uses: docker/setup-docker-action@v4 - with: - daemon-config: '{ "features": { "containerd-snapshotter": true } }' - - name: Setup Docker Buildx - uses: docker/setup-buildx-action@v3 - with: - version: 'latest' - driver-opts: 'image=moby/buildkit:buildx-stable-1' - install: true + using: 'composite' + steps: + - name: Set up Docker + uses: docker/setup-docker-action@v5 + with: + daemon-config: '{ "features": { "containerd-snapshotter": true } }' diff --git a/.github/actions/docker-test/action.yml b/.github/actions/docker-test/action.yml index 5b8e20bba2..2b9686f419 100644 --- a/.github/actions/docker-test/action.yml +++ b/.github/actions/docker-test/action.yml @@ -14,27 +14,26 @@ inputs: runs: using: 'composite' steps: - - - name: '[Docker Build & Test] DockerHub' - uses: nick-fields/retry@v3 - with: - shell: pwsh - timeout_minutes: 30 - max_attempts: 3 - retry_on: error - command: | - dotnet run/docker.dll --target=DockerTest ` - --arch=${{ inputs.arch }} --dotnet_version=${{ inputs.dotnet_version }} ` - --docker_distro=${{ inputs.docker_distro }} --docker_registry dockerhub --verbosity=diagnostic - - - name: '[Docker Build & Test] GitHub' - uses: nick-fields/retry@v3 - with: - shell: pwsh - timeout_minutes: 30 - max_attempts: 3 - retry_on: error - command: | - dotnet run/docker.dll --target=DockerTest ` - --arch=${{ inputs.arch }} --dotnet_version=${{ inputs.dotnet_version }} ` - --docker_distro=${{ inputs.docker_distro }} --docker_registry github --verbosity=diagnostic + - name: '[Docker Build & Test] DockerHub' + uses: nick-fields/retry@v4 + with: + shell: pwsh + timeout_minutes: 30 + max_attempts: 3 + retry_on: error + command: | + dotnet run/docker.dll --target=DockerTest ` + --arch=${{ inputs.arch }} --dotnet_version=${{ inputs.dotnet_version }} ` + --docker_distro=${{ inputs.docker_distro }} --docker_registry dockerhub --verbosity=diagnostic + + - name: '[Docker Build & Test] GitHub' + uses: nick-fields/retry@v4 + with: + shell: pwsh + timeout_minutes: 30 + max_attempts: 3 + retry_on: error + command: | + dotnet run/docker.dll --target=DockerTest ` + --arch=${{ inputs.arch }} --dotnet_version=${{ inputs.dotnet_version }} ` + --docker_distro=${{ inputs.docker_distro }} --docker_registry github --verbosity=diagnostic diff --git a/.github/codecov.yml b/.github/codecov.yml index f755f56800..311b097fce 100644 --- a/.github/codecov.yml +++ b/.github/codecov.yml @@ -1,11 +1,46 @@ +comment: + layout: "header, diff, flags, components" + behavior: default + require_changes: false +component_management: + individual_components: + - component_id: gitversion-app + name: GitVersion.App + paths: [ src/GitVersion.App/** ] + - component_id: gitversion-buildagents + name: GitVersion.BuildAgents + paths: [ src/GitVersion.BuildAgents/** ] + - component_id: gitversion-configuration + name: GitVersion.Configuration + paths: [ src/GitVersion.Configuration/** ] + - component_id: gitversion-core + name: GitVersion.Core + paths: [ src/GitVersion.Core/** ] + - component_id: gitversion-libgit2sharp + name: GitVersion.LibGit2Sharp + paths: [ src/GitVersion.LibGit2Sharp/** ] + - component_id: gitversion-msbuild + name: GitVersion.MsBuild + paths: [ src/GitVersion.MsBuild/** ] + - component_id: gitversion-output + name: GitVersion.Output + paths: [ src/GitVersion.Output/** ] coverage: range: 50..70 round: down precision: 2 status: + project: + default: + target: auto + base: auto + paths: + - src + branches: + - main patch: default: # basic target: auto threshold: 1% - base: auto + base: auto diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md new file mode 100644 index 0000000000..c5a06145a5 --- /dev/null +++ b/.github/copilot-instructions.md @@ -0,0 +1,4 @@ + +# GitVersion — Copilot agent instructions + +See [AGENTS.md](../AGENTS.md) for repo-specific guidance (architecture, developer commands, conventions, and testing patterns). \ No newline at end of file diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 87b6a493c0..cf320504ae 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -1,6 +1,7 @@ version: 2 updates: - package-ecosystem: dotnet-sdk + milestone: 82 # Corresponds to 6.x labels: - "dependencies" commit-message: @@ -10,31 +11,39 @@ updates: interval: cron cronjob: "0 12 * * *" - package-ecosystem: nuget + milestone: 82 # Corresponds to 6.x labels: - "dependencies" commit-message: prefix: "(deps)" groups: microsoft: + group-by: dependency-name patterns: - "Microsoft.*" - "System.*" Microsoft_CodeAnalysis: + group-by: dependency-name patterns: - "Microsoft.CodeAnalysis.*" analyzers: + group-by: dependency-name patterns: - "*Analyzers" serilog: + group-by: dependency-name patterns: - "Serilog.*" nunit: + group-by: dependency-name patterns: - "NUnit.*" LibGit2Sharp: + group-by: dependency-name patterns: - "LibGit2Sharp.*" JsonSchemaNet: + group-by: dependency-name patterns: - "JsonSchemaNet.*" directories: @@ -55,7 +64,9 @@ updates: actions: patterns: - "actions/*" - directory: "/" + directories: + - "/.github/workflows" + - "/.github/actions" schedule: interval: cron cronjob: "0 12 * * *" diff --git a/.github/mergify.yml b/.github/mergify.yml index 2a9dca3674..ec9e3fd82c 100644 --- a/.github/mergify.yml +++ b/.github/mergify.yml @@ -1,19 +1,22 @@ +# $schema: https://docs.mergify.com/mergify-configuration-schema.json pull_request_rules: - - name: Automatic approve on dependabot PR + # 1. Handle Dependabot: Approve and Queue for merge + - name: Automatic merge and approval for Dependabot conditions: - author~=^dependabot(|-preview)\[bot\]$ - actions: - review: - type: APPROVE - - name: Automatic merge on dependabot PR after success CI - conditions: - - author~=^dependabot(|-preview)\[bot\]$ - - '#commits-behind=0' # Only merge up to date pull requests - check-success=DotNet Format - check-success=Release - - repository-full-name=GitTools/GitVersion # Don't auto-merge PRs in forks + - check-success=Build & Test (new-cli) + # Using repository-name is cleaner than full-name if you just care about the repo name + - repository-full-name=GitTools/GitVersion actions: - merge: + review: + type: APPROVE + message: "Automatic approval for Dependabot update." + queue: + name: default + + # 2. Thank human contributors - name: Thank contributor conditions: - merged @@ -21,3 +24,14 @@ pull_request_rules: actions: comment: message: "Thank you @{{author}} for your contribution!" + +# 3. Use a Queue to handle the "up-to-date" requirement automatically +queue_rules: + - name: default + merge_method: merge + queue_conditions: + - check-success=DotNet Format + - check-success=Release + - check-success=Build & Test (new-cli) +merge_protections_settings: + reporting_method: check-runs diff --git a/.github/prompts/create-issue-from-branch.prompt.md b/.github/prompts/create-issue-from-branch.prompt.md new file mode 100644 index 0000000000..c26eab6748 --- /dev/null +++ b/.github/prompts/create-issue-from-branch.prompt.md @@ -0,0 +1,114 @@ +# Create Issue From Branch Changes + +Create or update a GitHub issue from the changes in the current branch compared to main. + +## Requirements + +1. Compare changes from origin/main..HEAD and infer the user-facing goal. +2. Do not include implementation details (no file lists, refactor notes, internal mechanics). +3. Ask before editing the issue: + - Which label should be used? + - Which milestone should be used? +4. Defaults: + - If label is not provided, use improvement. + - If milestone is not provided, use the latest open milestone. +5. The issue description must be well-formatted Markdown. +6. Use this Markdown structure exactly (omit empty sections): + + - ## Summary + + - ## Goal + + - ## Success Criteria + + - ## References + +7. Keep language concise, goal-oriented, and user-facing. +8. Prefer plain non-interactive `gh` commands. + - Do not prefix commands with `GH_PAGER=cat` by default. + - Only disable the pager when command output would otherwise not be captured reliably. + +## Operational Steps + +Use standard `gh` commands by default. +Only disable the pager when needed to make command output reliably readable in the execution environment. + +1. Ensure branch comparison is up to date: + +```bash +git fetch origin main --quiet +git log --oneline --no-merges origin/main..HEAD +git diff --name-status origin/main..HEAD +``` + +1. Ask: + - Label? (default: improvement) + - Milestone? (default: latest open milestone) + +2. Resolve defaults: + +```bash +LABEL="${LABEL:-improvement}" + +if [ -z "$MILESTONE" ]; then + MILESTONE="$(gh api repos/{owner}/{repo}/milestones --paginate -f state=open --jq 'sort_by(.number) | last | .title')" +fi +``` + +1. Build a well-formatted Markdown body in a temp file: + +```bash +cat > /tmp/issue-body.md <<'EOF' +## Summary + + +## Goal + + +## Success Criteria +- +- + +## References +- +EOF +``` + +1. Suggest a title in this style: + - Adapt prefix to selected label where appropriate (for example: [FEATURE]: ...). + +2. Create or update issue: + +Create: + +```bash +gh issue create \ + --title "" \ + --label "$LABEL" \ + --milestone "$MILESTONE" \ + --body-file /tmp/issue-body.md +``` + +Update existing: + +```bash +gh issue edit <ISSUE_NUMBER> \ + --title "<TITLE>" \ + --add-label "$LABEL" \ + --milestone "$MILESTONE" \ + --body-file /tmp/issue-body.md +``` + +1. Verify and report final state: + +```bash +gh issue view <ISSUE_NUMBER> --json number,title,url,labels,milestone,body +``` + +Report: + +- Issue number and URL +- Final title +- Final label(s) +- Final milestone +- Confirmation that body is well-formatted Markdown and goal-focused diff --git a/.github/prompts/create-pr-from-branch.prompt.md b/.github/prompts/create-pr-from-branch.prompt.md new file mode 100644 index 0000000000..4ce8cb1b9e --- /dev/null +++ b/.github/prompts/create-pr-from-branch.prompt.md @@ -0,0 +1,125 @@ +# Create PR From Branch Changes + +Create or update a GitHub pull request from the current branch into the fork's main branch with a well-formatted PR description. + +## Requirements + +1. Compare changes from origin/main..HEAD and infer the user-facing intent. +2. Keep the PR description aligned with the actual branch changes. +3. The PR description must be well-formatted Markdown. +4. The PR must reference the issue it resolves using closing keywords (for example: Resolves #1234). +5. If no issue number is provided, ask for it before creating or updating the PR. +6. Keep language concise, outcome-focused, and reviewer-friendly. +7. Do not include irrelevant implementation noise; summarize what matters for review. +8. Whenever new commits are pushed that change scope, update the PR description so it stays in sync with current branch changes. +9. Prefer plain non-interactive `gh` commands. + +- Do not prefix commands with `GH_PAGER=cat` by default. +- Only disable the pager when command output would otherwise not be captured reliably. + +## PR Markdown Template + +Use this structure (omit empty sections): + +- ## Summary + +- ## Why + +- ## Validation + +- ## Issue + +Example: + +```md +## Summary +- <high-level change 1> +- <high-level change 2> + +## Why +- <problem or goal> + +## Validation +- <tests run> +- <results> + +## Issue +Resolves #<issue-number> +``` + +## Operational Steps + +Use standard `gh` commands by default. +Only disable the pager when needed to make command output reliably readable in the execution environment. + +1. Ensure branch comparison is current: + +```bash +git fetch origin main --quiet +git log --oneline --no-merges origin/main..HEAD +git diff --name-status origin/main..HEAD +``` + +1. Determine branch and existing PR state: + +```bash +BRANCH="$(git rev-parse --abbrev-ref HEAD)" +GH_FORCE_TTY=0 gh pr list --head "$BRANCH" --json number,title,url,state +``` + +1. Ask for required metadata if missing: + +- Target issue number to resolve +- PR title override (optional) + +1. Build or refresh PR body in a temp file: + +```bash +cat > /tmp/pr-body.md <<'EOF' +## Summary +- <high-level change 1> +- <high-level change 2> + +## Why +- <problem or goal> + +## Validation +- <tests run> +- <results> + +## Issue +Resolves #<issue-number> +EOF +``` + +1. Create PR if none exists: + +```bash +GH_FORCE_TTY=0 gh pr create \ + --base main \ + --head "$BRANCH" \ + --title "<PR title>" \ + --body-file /tmp/pr-body.md +``` + +1. Update PR if one already exists, or after new commits change scope: + +```bash +GH_FORCE_TTY=0 gh pr edit <PR_NUMBER> \ + --title "<PR title>" \ + --body-file /tmp/pr-body.md +``` + +1. Verify final PR state: + +```bash +GH_FORCE_TTY=0 gh pr view <PR_NUMBER> --json number,title,url,body +``` + +## Completion Checklist + +- PR exists and targets main +- Description is well-formatted Markdown +- Description matches current branch changes +- Issue reference uses closing keyword (Resolves/Fixes/Closes #...) +- PR body was refreshed after any scope-changing push diff --git a/.github/prompts/prepare-release-milestone.prompt.md b/.github/prompts/prepare-release-milestone.prompt.md new file mode 100644 index 0000000000..9c0c4d8a61 --- /dev/null +++ b/.github/prompts/prepare-release-milestone.prompt.md @@ -0,0 +1,104 @@ +# Prepare Release Milestone + +Prepare release tracking on GitHub without creating a release. + +## Requirements + +1. Describe the release preparation workflow before taking action: + - Confirm the destination milestone exists or create it. + - Move the closed issues and closed pull requests from the source milestone to the destination milestone. + - Verify that every moved issue and pull request has at least one allowed label. + - Do not create a GitHub release. +2. Ask the user for both: + - Source milestone + - Destination milestone +3. Use only these allowed labels when validating moved items: + - breaking change + - bug + - dependencies + - documentation + - feature + - improvement + - build +4. Treat an item as invalid if: + - It has no labels. + - None of its labels are in the allowed list. +5. Report any invalid items clearly and stop before any release creation step. +6. Keep the response concise and operational. +7. Prefer plain non-interactive `gh` commands. + - Do not prefix commands with `GH_PAGER=cat` by default. + - Only disable the pager when command output would otherwise not be captured reliably. + +## Operational Steps + +Use standard `gh` commands by default. +Only disable the pager when needed to make command output reliably readable in the execution environment. + +1. Ask: + - Source milestone? + - Destination milestone? + +2. Summarize the plan: + - Check whether the destination milestone already exists. + - Create the destination milestone if needed. + - Find closed issues in the source milestone. + - Find closed pull requests in the source milestone. + - Move those closed items to the destination milestone. + - Verify labels on all moved items using the allowed label list. + - Do not create a release. + +3. Resolve milestone state: + +```bash +gh api repos/{owner}/{repo}/milestones --paginate --jq '.[] | [.number,.title,.state] | @tsv' +gh api repos/{owner}/{repo}/milestones -X POST -f title='<DESTINATION_MILESTONE>' +``` + +1. Collect closed items from the source milestone: + +```bash +gh issue list --repo {owner}/{repo} --milestone '<SOURCE_MILESTONE>' --state closed --limit 200 --json number,title,labels +gh pr list --repo {owner}/{repo} --state closed --search 'milestone:"<SOURCE_MILESTONE>"' --limit 200 --json number,title,labels,state +``` + +1. Move closed issues and closed pull requests to the destination milestone: + +```bash +gh issue edit <ISSUE_NUMBER> --repo {owner}/{repo} --milestone '<DESTINATION_MILESTONE>' +gh pr edit <PR_NUMBER> --repo {owner}/{repo} --milestone '<DESTINATION_MILESTONE>' +``` + +1. Verify labels against this allowlist: + +```text +breaking change +bug +dependencies +documentation +feature +improvement +build +``` + +Validation rules: + +- Each moved item must have at least one label. +- At least one assigned label must match the allowlist exactly. +- If any moved item fails validation, report the item number, title, and labels. + +1. Verify final milestone state and report: + +```bash +gh issue list --repo {owner}/{repo} --milestone '<DESTINATION_MILESTONE>' --state closed --limit 200 --json number,title,labels +gh pr list --repo {owner}/{repo} --state closed --search 'milestone:"<DESTINATION_MILESTONE>"' --limit 200 --json number,title,labels,state +``` + +Report: + +- Source milestone +- Destination milestone +- Whether the destination milestone was created or already existed +- Count of moved closed issues +- Count of moved closed pull requests +- Any moved items missing allowed labels +- Confirmation that no GitHub release was created diff --git a/.github/prompts/prepare-release.prompt.md b/.github/prompts/prepare-release.prompt.md new file mode 100644 index 0000000000..092a58d282 --- /dev/null +++ b/.github/prompts/prepare-release.prompt.md @@ -0,0 +1,142 @@ +# Prepare Release + +Prepare a GitHub release after confirming the target version and release type. + +## Requirements + +1. Describe the release workflow before taking action: + - Confirm whether the release should be published as a prerelease or a release. + - After the release type is confirmed, check for an open milestone that is a concrete version and not a spec milestone such as `4.x` or `4.5.x`. + - If a valid open milestone exists, ask the user to confirm that version with a yes/no question. + - If no valid open milestone exists, require the user to provide the release version. + - Verify whether the tag already exists. + - Verify whether a GitHub release already exists for the version. + - Create or update the GitHub release with the title set to the version. +2. Ask the user for both: + - Release type: prerelease or release + - Release version (or milestone confirmation yes/no when a valid milestone exists) +3. Use the release version as both: + - Tag name + - Release title +4. If the user selects prerelease: + - Create the release with the prerelease flag enabled. +5. If the user selects release: + - Create the release without the prerelease flag. + - Ensure the release is linked to the repository announcement discussion for that version. +6. Treat milestone titles such as `v4.x` or `v4.5.x` as spec milestones and do not suggest them as the release version. +7. If a release already exists for the selected tag: + - Do not fail or stop at `gh release create`. + - Inspect the existing release and update it instead. + - If the requested type is release and the existing release is a prerelease, convert it to a full release. + - If the requested type is release and there is no linked discussion, link or create the announcement discussion during the update. +8. Keep the response concise and operational. +9. Prefer plain non-interactive `gh` commands. + - Do not prefix commands with `GH_PAGER=cat` by default. + - Only disable the pager when command output would otherwise not be captured reliably. + +## Operational Steps + +1. Ask: + - Is this a prerelease or a release? + +Ask for the release type first. + +After release type is selected, check open milestones before asking for a version. + +Use standard `gh` commands by default. +Only disable the pager when needed to make command output reliably readable in the execution environment. + +1. Summarize the plan: + - Confirm whether this should be a prerelease or a release. + - Inspect open milestones and find the latest concrete version milestone. + - If found, ask the user to confirm that version with yes/no. + - If not found, ask the user to provide a release version. + - Verify whether the tag already exists. + - Verify whether a GitHub release already exists for that tag. + - Create or update the GitHub release using the version as the tag and title. + - Apply the prerelease flag only when requested. + - When publishing a full release, ensure the `Announcements` discussion is linked. + +2. After the release type is selected, inspect open milestones and find the latest non-spec milestone: + +```bash +gh api repos/{owner}/{repo}/milestones --paginate --jq '.[] | select(.state == "open") | .title' +``` + +Suggestion rules: + +- Exclude milestone titles that match spec patterns such as `v4.x` or `v4.5.x`. +- Prefer the latest milestone that looks like a concrete release version such as `v4.5.0`. +- If a valid milestone exists, ask: `Use <MILESTONE_VERSION> as the release version? (yes/no)`. +- If the answer is yes, use that version. +- If the answer is no, ask the user to provide the release version explicitly. +- If no valid milestone exists, ask the user to provide the release version explicitly. + +1. Confirm release version: + +- Ensure a final release version is confirmed from either: + - Milestone confirmation (yes), or + - User-provided version. + +1. Check whether the tag already exists: + +```bash +gh api repos/{owner}/{repo}/git/ref/tags/<RELEASE_VERSION> +``` + +If the tag already exists, proceed only if that is intentional for the repository workflow. + +1. Check whether a GitHub release already exists for the selected version: + +```bash +gh api repos/{owner}/{repo}/releases/tags/<RELEASE_VERSION> +``` + +Decision rules: + +- If the release does not exist, create it. +- If the release exists, inspect whether it is draft, prerelease, or already a full release. +- If the user selected `prerelease`, update the existing release to keep or set `prerelease=true` as needed. +- If the user selected `release`, update the existing release to set `prerelease=false`. +- Do not attempt `gh release create` again when a release already exists for the tag. + +1. When the user selected `release`, ensure the announcement discussion is linked: + +- Prefer the repository discussion category named `Announcements`. +- If needed, inspect repository discussion categories before updating the release. +- When creating a release, use `discussion_category_name` with `Announcements`. +- When updating an existing release, use the release update API with `discussion_category_name=Announcements`. +- If a discussion is already linked, preserve it. + +1. Create the release: + +Prerelease: + +```bash +gh release create <RELEASE_VERSION> --repo {owner}/{repo} --title '<RELEASE_VERSION>' --prerelease +``` + +Release: + +```bash +gh api repos/{owner}/{repo}/releases -X POST -f tag_name='<RELEASE_VERSION>' -f name='<RELEASE_VERSION>' -F prerelease=false -f discussion_category_name='Announcements' +``` + +Update existing release to full release and link announcement discussion: + +```bash +gh api repos/{owner}/{repo}/releases/<RELEASE_ID> -X PATCH -F prerelease=false -F make_latest=true -f discussion_category_name='Announcements' +``` + +1. Report: + +- Release version +- Release type +- Whether a valid milestone version was found +- Whether the milestone version was confirmed (yes/no) +- Whether the version was milestone-confirmed or user-provided +- Whether the tag already existed +- Whether a GitHub release already existed for the version +- Whether the GitHub release was created or updated successfully +- Whether the release ended as prerelease or full release +- Whether the announcement discussion was linked diff --git a/.github/skills/dotnet-dev/SKILL.md b/.github/skills/dotnet-dev/SKILL.md new file mode 100644 index 0000000000..baa8d73a92 --- /dev/null +++ b/.github/skills/dotnet-dev/SKILL.md @@ -0,0 +1,267 @@ +--- +name: dotnet-dev +description: 'Expert guidance for .NET development in this repository. Use this skill for building, testing, debugging, and understanding project structure, coding conventions, dependency injection patterns, and testing practices.' +--- + +# .NET Development Skills + +Expert guidance for .NET development in this repository. + +## Build & Test Commands + +```bash +# Build the solution +dotnet build ./src/GitVersion.slnx + +# Build a single project +dotnet build --project ./src/GitVersion.Core/GitVersion.Core.csproj + +# Run all tests +dotnet test --solution ./src/GitVersion.slnx + +# Run tests for a specific project +dotnet test --project ./src/GitVersion.Core.Tests/GitVersion.Core.Tests.csproj + +# Run tests with specific framework +dotnet test --project ./src/GitVersion.Core.Tests/GitVersion.Core.Tests.csproj --framework net10.0 + +# Run specific test by filter +dotnet test --project ./src/GitVersion.Core.Tests/GitVersion.Core.Tests.csproj --filter "FullyQualifiedName~TestClassName" + +# Format code +dotnet format ./src/GitVersion.slnx + +# Verify formatting (CI-friendly) +dotnet format --verify-no-changes ./src/GitVersion.slnx +``` + +## Package Management + +This repository uses **Central Package Management** via `Directory.Packages.props`. + +### Adding/Updating Packages + +```bash +# Add a package (version managed centrally) +dotnet add ./src/ProjectName/ProjectName.csproj package PackageName + +# Update central package version in src/Directory.Packages.props +``` + +**Important**: Always update versions in `src/Directory.Packages.props`, not in individual `.csproj` files. + +### Directory.Packages.props Structure + +```xml + +<Project> + <PropertyGroup> + <ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally> + </PropertyGroup> + <ItemGroup> + <PackageVersion Include="PackageName" Version="1.0.0" /> + </ItemGroup> +</Project> +``` + +## Project Structure + +- `src/` - Main solution with production code and tests +- `new-cli/` - New CLI implementation (separate solution) +- `build/` - Build automation (Cake-based) +- `docs/` - Documentation + +### Key Projects + +| Project | Purpose | +|----------------------------|---------------------------------------| +| `GitVersion.Core` | Core version calculation logic | +| `GitVersion.App` | CLI application | +| `GitVersion.Configuration` | Configuration file handling | +| `GitVersion.Output` | Output formatters (JSON, BuildServer) | +| `GitVersion.BuildAgents` | CI/CD platform integrations | +| `GitVersion.MsBuild` | MSBuild task integration | +| `GitVersion.LibGit2Sharp` | Git repository abstraction | + +## Coding Conventions + +### Primary Constructors + +Prefer primary constructors with readonly field assignments: + +```csharp +internal class BuildAgentResolver(IEnumerable<IBuildAgent> buildAgents, ILogger<BuildAgentResolver> logger) : IBuildAgentResolver +{ + private readonly IEnumerable<IBuildAgent> buildAgents = buildAgents.NotNull(); + private readonly ILogger<BuildAgentResolver> logger = logger.NotNull(); + + public IBuildAgent? Resolve() + { + // Use this.buildAgents and this.logger + } +} +``` + +### Dependency Injection + +Use constructor injection with `ILogger<T>` for logging: + +```csharp +public class MyService +{ + private readonly ILogger<MyService> logger; + + public MyService(ILogger<MyService> logger) + { + this.logger = logger; + } +} +``` + +### Logging + +Use Microsoft.Extensions.Logging with Serilog: + +```csharp +// Information level +this.logger.LogInformation("Processing {BranchName}", branch.Name); + +// Warning level +this.logger.LogWarning("Configuration not found, using defaults"); + +// Error level +this.logger.LogError(ex, "Failed to calculate version"); + +// Debug level (verbose) +this.logger.LogDebug("Cache hit for {CacheKey}", key); +``` + +### Nullable Reference Types + +All projects use nullable reference types. Handle nullability explicitly: + +```csharp +public string? OptionalProperty { get; set; } + +public string RequiredProperty { get; set; } = string.Empty; +``` + +### File-Scoped Namespaces + +Use file-scoped namespaces: + +```csharp +namespace GitVersion; + +public class MyClass +{ + // ... +} +``` + +## Testing + +### Test Project Naming + +- Test projects mirror source projects: `GitVersion.Core` → `GitVersion.Core.Tests` + +### Test Frameworks + +- **NUnit** - Primary test framework +- **NSubstitute** - Mocking framework +- **Shouldly** - Assertion library + +### Test Patterns + +```csharp +[TestFixture] +public class MyServiceTests +{ + [Test] + public void MethodName_Scenario_ExpectedResult() + { + // Arrange + var service = new MyService(); + + // Act + var result = service.DoSomething(); + + // Assert + result.ShouldBe(expected); + } + + [TestCase("input1", "expected1")] + [TestCase("input2", "expected2")] + public void MethodName_WithParameters_ReturnsExpected(string input, string expected) + { + var result = service.Process(input); + result.ShouldBe(expected); + } +} +``` + +## Configuration Files + +### Supported Names + +- `GitVersion.yml` +- `GitVersion.yaml` +- `.GitVersion.yml` +- `.GitVersion.yaml` + +### Schema Location + +JSON schemas are in `schemas/` directory for validation. + +## Build Agents + +Build agent integrations write environment variables with `GitVersion_` prefix: + +```csharp +// Example: GitHub Actions +Environment.SetEnvironmentVariable($"GitVersion_{name}", value); +``` + +## Common Tasks + +### Running the CLI Locally + +```bash +dotnet run --project src/GitVersion.App +``` + +### Debugging Tests + +```bash +# Run with detailed output +dotnet test --project ./src/GitVersion.Core.Tests/GitVersion.Core.Tests.csproj -v detailed + +# Run specific test +dotnet test --filter "FullyQualifiedName=GitVersion.Core.Tests.MyTest" +``` + +### Checking for Errors + +```bash +# Build with warnings as errors +dotnet build ./src/GitVersion.slnx -warnaserror +``` + +## Public API Management + +This repository +uses [Microsoft.CodeAnalysis.PublicApiAnalyzers](https://github.com/dotnet/roslyn-analyzers/blob/main/src/PublicApiAnalyzers/PublicApiAnalyzers.Help.md) +to track public API surface. + +### Rules + +- **`PublicAPI.Unshipped.txt`**: All new or modified public APIs go here +- **`PublicAPI.Shipped.txt`**: Only deletions are allowed; never add or modify entries directly + +### Workflow + +1. When adding new public APIs, they automatically get flagged and should be added to `PublicAPI.Unshipped.txt` +2. When modifying existing APIs, move the old entry from `PublicAPI.Shipped.txt` to `PublicAPI.Unshipped.txt` (marked as + removed) and add the new signature to `PublicAPI.Unshipped.txt` +3. Only remove entries from `PublicAPI.Shipped.txt` when an API is being deleted +4. During release, unshipped APIs get moved to shipped via the `mark-shipped.ps1` script diff --git a/.github/skills/git-commit/SKILL.md b/.github/skills/git-commit/SKILL.md new file mode 100644 index 0000000000..90b1f5cb1b --- /dev/null +++ b/.github/skills/git-commit/SKILL.md @@ -0,0 +1,125 @@ +--- +name: git-commit +description: 'Execute git commit with conventional commit message analysis, intelligent staging, and message generation. Use when user asks to commit changes, create a git commit, or mentions "/commit". Supports: (1) Auto-detecting type and scope from changes, (2) Generating conventional commit messages from diff, (3) Interactive commit with optional type/scope/description overrides, (4) Intelligent file staging for logical grouping' +license: MIT +allowed-tools: Bash +--- + +# Git Commit with Conventional Commits + +## Overview + +Create standardized, semantic git commits using the Conventional Commits specification. Analyze the actual diff to +determine appropriate type, scope, and message. + +## Conventional Commit Format + +```bash +<type>[optional scope]: <description> + +[optional body] + +[optional footer(s)] +``` + +## Commit Types + +| Type | Purpose | +|------------|--------------------------------| +| `feat` | New feature | +| `fix` | Bug fix | +| `docs` | Documentation only | +| `style` | Formatting/style (no logic) | +| `refactor` | Code refactor (no feature/fix) | +| `perf` | Performance improvement | +| `test` | Add/update tests | +| `build` | Build system/dependencies | +| `ci` | CI/config changes | +| `chore` | Maintenance/misc | +| `revert` | Revert commit | + +## Breaking Changes + +```bash +# Exclamation mark after type/scope +feat!: remove deprecated endpoint + +# BREAKING CHANGE footer +feat: allow config to extend other configs + +BREAKING CHANGE: `extends` key behavior changed +``` + +## Workflow + +### 1. Analyze Diff + +```bash +# If files are staged, use staged diff +git diff --staged + +# If nothing staged, use working tree diff +git diff + +# Also check status +git status --porcelain +``` + +### 2. Stage Files (if needed) + +If nothing is staged, or you want to group changes differently: + +```bash +# Stage specific files +git add path/to/file1 path/to/file2 + +# Stage by pattern +git add *.test.* +git add src/components/* + +# Interactive staging +git add -p +``` + +**Never commit secrets** (.env, credentials.json, private keys). + +### 3. Generate Commit Message + +Analyze the diff to determine: + +- **Type**: What kind of change is this? +- **Scope**: What area/module is affected? +- **Description**: One-line summary of what changed (present tense, imperative mood, <72 chars) + +### 4. Execute Commit + +```bash +# Single line +git commit -m "<type>[scope]: <description>" + +# Multi-line with body/footer +git commit -m "$(cat <<'EOF' +<type>[scope]: <description> + +<optional body> + +<optional footer> +EOF +)" +``` + +## Best Practices + +- One logical change per commit +- Present tense: "add" not "added" +- Imperative mood: "fix bug" not "fixes bug" +- Reference issues: `Closes #123`, `Refs #456` +- Keep the description under 72 characters + +## Git Safety Protocol + +- NEVER update git config +- NEVER run destructive commands (--force, hard reset) without an explicit request +- NEVER skip hooks (--no-verify) unless user asks +- NEVER force push to main/master +- If the commit fails due to hooks, fix and create a NEW commit (don't amend) diff --git a/.github/skills/nuget-manager/SKILL.md b/.github/skills/nuget-manager/SKILL.md new file mode 100644 index 0000000000..f32d018452 --- /dev/null +++ b/.github/skills/nuget-manager/SKILL.md @@ -0,0 +1,79 @@ +--- +name: nuget-manager +description: 'Manage NuGet packages in .NET projects/solutions. Use this skill when adding, removing, or updating NuGet package versions. It enforces using `dotnet` CLI for package management and provides strict procedures for direct file edits only when updating versions.' +--- + +# NuGet Manager + +## Overview + +This skill ensures consistent and safe management of NuGet packages across .NET projects. It prioritizes using the +`dotnet` CLI to maintain project integrity and enforces a strict verification and restoration workflow for version +updates. + +## Prerequisites + +- .NET SDK installed (typically .NET 10.0 SDK or later, or a version compatible with the target solution). +- `dotnet` CLI available on your `PATH`. +- `jq` (JSON processor) OR PowerShell (for version verification using `dotnet package search`). + +## Core Rules + +1. **NEVER** directly edit `.csproj`, `.props`, or `Directory.Packages.props` files to **add** or **remove** packages. + Always use `dotnet add package` and `dotnet remove package` commands. +2. **DIRECT EDITING** is ONLY permitted for **changing versions** of existing packages. +3. **VERSION UPDATES** must follow the mandatory workflow: + - Verify the target version exists on NuGet. + - Determine if versions are managed per-project (`.csproj`) or centrally (`Directory.Packages.props`). + - Update the version string in the appropriate file. + - Immediately run `dotnet restore` to verify compatibility. + +## Workflows + +### Adding a Package + +Use `dotnet add [<PROJECT>] package <PACKAGE_NAME> [--version <VERSION>]`. +Example: `dotnet add src/MyProject/MyProject.csproj package Newtonsoft.Json` + +### Removing a Package + +Use `dotnet remove [<PROJECT>] package <PACKAGE_NAME>`. +Example: `dotnet remove src/MyProject/MyProject.csproj package Newtonsoft.Json` + +### Updating Package Versions + +When updating a version, follow these steps: + +1. **Verify Version Existence**: + Check if the version exists using the `dotnet package search` command with exact match and JSON formatting. + Using `jq`: + `dotnet package search <PACKAGE_NAME> --exact-match --format json | jq -e '.searchResult[].packages[] | select(.version == "<VERSION>")'` + Using PowerShell: + `(dotnet package search <PACKAGE_NAME> --exact-match --format json | ConvertFrom-Json).searchResult.packages | Where-Object { $_.version -eq "<VERSION>" }` + +2. **Determine Version Management**: + - Search for `Directory.Packages.props` in the solution root. If present, versions should be managed there via + `<PackageVersion Include="Package.Name" Version="1.2.3" />`. + - If absent, check individual `.csproj` files for `<PackageReference Include="Package.Name" Version="1.2.3" />`. + +3. **Apply Changes**: + Modify the identified file with the new version string. + +4. **Verify Stability**: + Run `dotnet restore` on the project or solution. If errors occur, revert the change and investigate. + +## Examples + +### User: "Add Serilog to the WebApi project" + +**Action**: Execute `dotnet add src/WebApi/WebApi.csproj package Serilog`. + +### User: "Update Newtonsoft.Json to 13.0.3 in the whole solution" + +**Action**: + +1. Verify 13.0.3 exists: `dotnet package search Newtonsoft.Json --exact-match --format json` (and parse output to + confirm "13.0.3" is present). +2. Find where it's defined (e.g., `Directory.Packages.props`). +3. Edit the file to update the version. +4. Run `dotnet restore`. diff --git a/.github/workflows/_artifacts_linux.yml b/.github/workflows/_artifacts_linux.yml index f7091bdfc5..2a2f2c62c9 100644 --- a/.github/workflows/_artifacts_linux.yml +++ b/.github/workflows/_artifacts_linux.yml @@ -28,39 +28,38 @@ jobs: docker_distro: ${{ fromJson(inputs.docker_distros) }} dotnet_version: ${{ fromJson(inputs.dotnet_versions) }} steps: - - - name: Checkout - uses: actions/checkout@v5 - with: - fetch-depth: 0 - - - name: Restore State - uses: ./.github/actions/cache-restore - - - uses: actions/download-artifact@v6 - name: Download nuget packages - with: - name: nuget - path: ${{ github.workspace }}/artifacts/packages/nuget - - - uses: actions/download-artifact@v6 - name: Download native packages - with: - name: native-Linux - path: ${{ github.workspace }}/artifacts/packages/native - - - name: Set up Docker - uses: ./.github/actions/docker-setup - - - name: '[Test Artifacts]' - uses: nick-fields/retry@v3 - with: - shell: pwsh - timeout_minutes: 30 - max_attempts: 3 - retry_on: error - command: | - dotnet run/artifacts.dll ` - --target=ArtifactsTest --arch=${{ inputs.arch }} ` - --dotnet_version=${{ matrix.dotnet_version }} ` - --docker_distro=${{ matrix.docker_distro }} + - name: Checkout + uses: actions/checkout@v7 + with: + fetch-depth: 0 + + - name: Restore State + uses: ./.github/actions/cache-restore + + - uses: actions/download-artifact@v8 + name: Download nuget packages + with: + name: nuget + path: ${{ github.workspace }}/artifacts/packages/nuget + + - uses: actions/download-artifact@v8 + name: Download native packages + with: + name: native-Linux + path: ${{ github.workspace }}/artifacts/packages/native + + - name: Set up Docker + uses: ./.github/actions/docker-setup + + - name: '[Test Artifacts]' + uses: nick-fields/retry@v4 + with: + shell: pwsh + timeout_minutes: 30 + max_attempts: 3 + retry_on: error + command: | + dotnet run/artifacts.dll ` + --target=ArtifactsTest --arch=${{ inputs.arch }} ` + --dotnet_version=${{ matrix.dotnet_version }} ` + --docker_distro=${{ matrix.docker_distro }} diff --git a/.github/workflows/_artifacts_windows.yml b/.github/workflows/_artifacts_windows.yml index fb7c2e0696..6079a2c6b7 100644 --- a/.github/workflows/_artifacts_windows.yml +++ b/.github/workflows/_artifacts_windows.yml @@ -4,32 +4,36 @@ on: env: DOTNET_INSTALL_DIR: "./.dotnet" DOTNET_ROLL_FORWARD: "Major" - + jobs: artifacts: name: ${{ matrix.package }} - runs-on: windows-2025 + runs-on: windows-2025-vs2026 strategy: fail-fast: false matrix: package: [ Executable, MsBuildFull ] steps: - - - name: Checkout - uses: actions/checkout@v5 - with: - fetch-depth: 0 - - - name: Restore State - uses: ./.github/actions/cache-restore - - - uses: actions/download-artifact@v6 - name: Download nuget packages - with: - name: nuget - path: ${{ github.workspace }}/artifacts/packages/nuget - - - name: '[Test Artifacts]' - shell: pwsh - run: dotnet run/artifacts.dll --target=Artifacts${{ matrix.package }}Test + - name: Checkout + uses: actions/checkout@v7 + with: + fetch-depth: 0 + + - name: Restore State + uses: ./.github/actions/cache-restore + + - uses: actions/download-artifact@v8 + name: Download nuget packages + with: + name: nuget + path: ${{ github.workspace }}/artifacts/packages/nuget + + - name: '[Test Artifacts]' + uses: nick-fields/retry@v4 + with: + shell: pwsh + timeout_minutes: 30 + max_attempts: 3 + retry_on: error + command: dotnet run/artifacts.dll --target=Artifacts${{ matrix.package }}Test diff --git a/.github/workflows/_build.yml b/.github/workflows/_build.yml index c34e570287..b432a80349 100644 --- a/.github/workflows/_build.yml +++ b/.github/workflows/_build.yml @@ -4,47 +4,46 @@ on: env: DOTNET_INSTALL_DIR: "./.dotnet" DOTNET_ROLL_FORWARD: "Major" - + jobs: build: name: ${{ matrix.os }} strategy: fail-fast: false matrix: - os: [windows-2025, ubuntu-24.04, macos-15] + os: [ windows-2025-vs2026, ubuntu-24.04, macos-26 ] runs-on: ${{ matrix.os }} steps: - - - name: Checkout - uses: actions/checkout@v5 - with: - fetch-depth: 0 - - - name: Restore State - uses: ./.github/actions/cache-restore - - - name: '[Build]' - shell: pwsh - run: dotnet run/build.dll --target=Package - - - name: 'Upload nuget packages' - uses: actions/upload-artifact@v5 - if: matrix.os == 'windows-2025' - with: - name: nuget - path: ${{ github.workspace }}/artifacts/packages/nuget - - - name: 'Upload native packages' - uses: actions/upload-artifact@v5 - if: matrix.os == 'windows-2025' - with: - name: native-${{ runner.os }} - path: ${{ github.workspace }}/artifacts/packages/native/*.zip - - - name: 'Upload native packages' - uses: actions/upload-artifact@v5 - if: matrix.os != 'windows-2025' - with: - name: native-${{ runner.os }} - path: ${{ github.workspace }}/artifacts/packages/native/*.tar.gz + - name: Checkout + uses: actions/checkout@v7 + with: + fetch-depth: 0 + + - name: Restore State + uses: ./.github/actions/cache-restore + + - name: '[Build]' + shell: pwsh + run: dotnet run/build.dll --target=Package + + - name: 'Upload nuget packages' + uses: actions/upload-artifact@v7 + if: matrix.os == 'windows-2025-vs2026' + with: + name: nuget + path: ${{ github.workspace }}/artifacts/packages/nuget + + - name: 'Upload native packages' + uses: actions/upload-artifact@v7 + if: matrix.os == 'windows-2025-vs2026' + with: + name: native-${{ runner.os }} + path: ${{ github.workspace }}/artifacts/packages/native/*.zip + + - name: 'Upload native packages' + uses: actions/upload-artifact@v7 + if: matrix.os != 'windows-2025-vs2026' + with: + name: native-${{ runner.os }} + path: ${{ github.workspace }}/artifacts/packages/native/*.tar.gz diff --git a/.github/workflows/_docker.yml b/.github/workflows/_docker.yml index cd415edfa5..6c58b56bff 100644 --- a/.github/workflows/_docker.yml +++ b/.github/workflows/_docker.yml @@ -13,11 +13,17 @@ on: dotnet_versions: required: true type: string + publish_images: + required: true + type: boolean env: DOTNET_INSTALL_DIR: "./.dotnet" DOTNET_ROLL_FORWARD: "Major" +permissions: + packages: write + jobs: docker: name: ${{ matrix.docker_distro }} - net${{ matrix.dotnet_version }} @@ -28,40 +34,46 @@ jobs: docker_distro: ${{ fromJson(inputs.docker_distros) }} dotnet_version: ${{ fromJson(inputs.dotnet_versions) }} steps: - - - name: Checkout - uses: actions/checkout@v5 - with: - fetch-depth: 0 - - - name: Restore State - uses: ./.github/actions/cache-restore - - - uses: actions/download-artifact@v6 - name: Download nuget packages - with: - name: nuget - path: ${{ github.workspace }}/artifacts/packages/nuget - - - name: Set up Docker - uses: ./.github/actions/docker-setup - - - name: Docker Test - if: success() && github.event_name == 'pull_request' || github.repository_owner != 'GitTools' - uses: ./.github/actions/docker-test - with: - arch: ${{ inputs.arch }} - docker_distro: ${{ matrix.docker_distro }} - dotnet_version: ${{ matrix.dotnet_version }} - - - name: Docker Publish - if: success() && github.event_name != 'pull_request' && github.repository_owner == 'GitTools' && github.ref_name == 'main' - uses: ./.github/actions/docker-publish - with: - arch: ${{ inputs.arch }} - docker_distro: ${{ matrix.docker_distro }} - dotnet_version: ${{ matrix.dotnet_version }} - docker_registry_username: ${{ secrets.DOCKER_USERNAME }} - docker_registry_password: ${{ secrets.DOCKER_PASSWORD }} - github_registry_username: ${{ github.repository_owner }} - github_registry_password: ${{ secrets.DOCKER_GITHUB_TOKEN }} \ No newline at end of file + - name: Checkout + uses: actions/checkout@v7 + with: + fetch-depth: 0 + + - name: Restore State + uses: ./.github/actions/cache-restore + + - uses: actions/download-artifact@v8 + name: Download nuget packages + with: + name: nuget + path: ${{ github.workspace }}/artifacts/packages/nuget + + - name: Set up Docker + uses: ./.github/actions/docker-setup + + - name: Docker Test + if: success() && inputs.publish_images == false + uses: ./.github/actions/docker-test + with: + arch: ${{ inputs.arch }} + docker_distro: ${{ matrix.docker_distro }} + dotnet_version: ${{ matrix.dotnet_version }} + + - name: Load DockerHub credentials + id: dockerhub-creds + if: success() && inputs.publish_images + uses: gittools/cicd/dockerhub-creds@v5 + with: + op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} + + - name: Docker Publish + if: success() && inputs.publish_images + uses: ./.github/actions/docker-publish + with: + arch: ${{ inputs.arch }} + docker_distro: ${{ matrix.docker_distro }} + dotnet_version: ${{ matrix.dotnet_version }} + docker_registry_username: ${{ steps.dockerhub-creds.outputs.docker_username }} + docker_registry_password: ${{ steps.dockerhub-creds.outputs.docker_password }} + github_registry_username: ${{ github.repository_owner }} + github_registry_password: ${{ github.token }} diff --git a/.github/workflows/_docker_manifests.yml b/.github/workflows/_docker_manifests.yml index 0fb895ec27..bd89806de2 100644 --- a/.github/workflows/_docker_manifests.yml +++ b/.github/workflows/_docker_manifests.yml @@ -7,11 +7,17 @@ on: dotnet_versions: required: true type: string + publish_manifests: + required: true + type: boolean env: DOTNET_INSTALL_DIR: "./.dotnet" DOTNET_ROLL_FORWARD: "Major" +permissions: + packages: write + jobs: manifest: name: ${{ matrix.docker_distro }} - net${{ matrix.dotnet_version }} @@ -22,25 +28,31 @@ jobs: docker_distro: ${{ fromJson(inputs.docker_distros) }} dotnet_version: ${{ fromJson(inputs.dotnet_versions) }} steps: - - - name: Checkout - uses: actions/checkout@v5 - with: - fetch-depth: 0 - - - name: Restore State - uses: ./.github/actions/cache-restore - - - name: Set up Docker - uses: ./.github/actions/docker-setup - - - name: Docker Manifests - if: success() && github.event_name != 'pull_request' && github.repository_owner == 'GitTools' && github.ref_name == 'main' - uses: ./.github/actions/docker-manifests - with: - docker_distro: ${{ matrix.docker_distro }} - dotnet_version: ${{ matrix.dotnet_version }} - docker_registry_username: ${{ secrets.DOCKER_USERNAME }} - docker_registry_password: ${{ secrets.DOCKER_PASSWORD }} - github_registry_username: ${{ github.repository_owner }} - github_registry_password: ${{ secrets.DOCKER_GITHUB_TOKEN }} + - name: Checkout + uses: actions/checkout@v7 + with: + fetch-depth: 0 + + - name: Restore State + uses: ./.github/actions/cache-restore + + - name: Set up Docker + uses: ./.github/actions/docker-setup + + - name: Load DockerHub credentials + if: inputs.publish_manifests + id: dockerhub-creds + uses: gittools/cicd/dockerhub-creds@v5 + with: + op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} + + - name: Docker Manifests + uses: ./.github/actions/docker-manifests + if: inputs.publish_manifests + with: + docker_distro: ${{ matrix.docker_distro }} + dotnet_version: ${{ matrix.dotnet_version }} + docker_registry_username: ${{ steps.dockerhub-creds.outputs.docker_username }} + docker_registry_password: ${{ steps.dockerhub-creds.outputs.docker_password }} + github_registry_username: ${{ github.repository_owner }} + github_registry_password: ${{ github.token }} diff --git a/.github/workflows/_prepare.yml b/.github/workflows/_prepare.yml index 4a0abe2050..75b0750922 100644 --- a/.github/workflows/_prepare.yml +++ b/.github/workflows/_prepare.yml @@ -18,39 +18,39 @@ jobs: strategy: fail-fast: false matrix: - os: [windows-2025, ubuntu-24.04, macos-15] + os: [ windows-2025-vs2026, ubuntu-24.04, macos-26 ] runs-on: ${{ matrix.os }} steps: - - - name: Checkout - uses: actions/checkout@v5 - - - name: Cache cake frosting - id: cache-cake - uses: actions/cache@v4 - with: - path: run - key: run-${{ runner.os }}-${{ hashFiles('./build/**') }} - - name: Use cached tools - id: cache-tools - uses: actions/cache@v4 - with: - path: tools - key: tools-${{ runner.os }}-${{ hashFiles('./build/**') }} - - - name: Setup .NET SDK - uses: actions/setup-dotnet@v5 - with: - global-json-file: global.json - - - name: '[Build]' - if: steps.cache-cake.outputs.cache-hit != 'true' - run: dotnet build build/ --configuration=Release - - - name: '[Prepare]' - shell: pwsh - run: dotnet run/build.dll --target=BuildPrepare + - name: Checkout + uses: actions/checkout@v7 + + - name: Cache cake frosting + id: cache-cake + uses: actions/cache@v6 + with: + path: run + key: run-${{ runner.os }}-${{ hashFiles('./build/**') }} + + - name: Use cached tools + id: cache-tools + uses: actions/cache@v6 + with: + path: tools + key: tools-${{ runner.os }}-${{ hashFiles('./build/**') }} + + - name: Setup .NET SDK + uses: actions/setup-dotnet@v5 + with: + global-json-file: global.json + + - name: '[Build]' + if: steps.cache-cake.outputs.cache-hit != 'true' + run: dotnet build build/ --configuration=Release + + - name: '[Prepare]' + shell: pwsh + run: dotnet run/build.dll --target=BuildPrepare set_matrix: needs: [ prepare ] name: Set Matrix @@ -59,14 +59,13 @@ jobs: docker_distros: ${{ steps.set_matrix.outputs.docker_distros }} dotnet_versions: ${{ steps.set_matrix.outputs.dotnet_versions }} steps: - - - name: Checkout - uses: actions/checkout@v5 - - - name: Restore State + - name: Checkout + uses: actions/checkout@v7 + + - name: Restore State uses: ./.github/actions/cache-restore - - - name: '[Matrix]' + + - name: '[Matrix]' id: set_matrix shell: pwsh - run: dotnet run/config.dll --target=SetMatrix \ No newline at end of file + run: dotnet run/config.dll --target=SetMatrix diff --git a/.github/workflows/_publish.yml b/.github/workflows/_publish.yml index 864431558b..af9d462c07 100644 --- a/.github/workflows/_publish.yml +++ b/.github/workflows/_publish.yml @@ -1,39 +1,61 @@ on: workflow_call: + inputs: + publish_packages: + required: true + type: boolean env: DOTNET_INSTALL_DIR: "./.dotnet" DOTNET_ROLL_FORWARD: "Major" - + jobs: publish: name: ${{ matrix.taskName }} - runs-on: windows-2025 + runs-on: windows-2025-vs2026 + permissions: + id-token: write + packages: write + contents: read strategy: fail-fast: false matrix: taskName: [ NuGet, Chocolatey ] - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }} - CHOCOLATEY_API_KEY: ${{ secrets.CHOCOLATEY_API_KEY }} steps: - - - name: Checkout - uses: actions/checkout@v5 - with: - fetch-depth: 0 - - - name: Restore State - uses: ./.github/actions/cache-restore - - - uses: actions/download-artifact@v6 - name: Download nuget packages - with: - name: nuget - path: ${{ github.workspace }}/artifacts/packages/nuget - - - name: '[Publish]' - shell: pwsh - run: dotnet run/publish.dll --target=Publish${{ matrix.taskName }} \ No newline at end of file + - name: Checkout + uses: actions/checkout@v7 + with: + fetch-depth: 0 + + - name: Restore State + uses: ./.github/actions/cache-restore + + - uses: actions/download-artifact@v8 + name: Download nuget packages + with: + name: nuget + path: ${{ github.workspace }}/artifacts/packages/nuget + + - name: Load NuGet credentials + id: nuget-creds + if: inputs.publish_packages + uses: gittools/cicd/nuget-creds@v5 + with: + op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} + + - name: Load Chocolatey credentials + id: choco-creds + if: inputs.publish_packages + uses: gittools/cicd/choco-creds@v5 + with: + op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} + + - name: '[Publish]' + if: inputs.publish_packages + shell: pwsh + run: dotnet run/publish.dll --target=Publish${{ matrix.taskName }} + env: + GITHUB_TOKEN: ${{ github.token }} + NUGET_API_KEY: ${{ steps.nuget-creds.outputs.nuget_api_key }} + CHOCOLATEY_API_KEY: ${{ steps.choco-creds.outputs.choco_api_key }} diff --git a/.github/workflows/_unit_tests.yml b/.github/workflows/_unit_tests.yml index 502f1d507e..146bf6522d 100644 --- a/.github/workflows/_unit_tests.yml +++ b/.github/workflows/_unit_tests.yml @@ -4,6 +4,9 @@ on: dotnet_versions: required: true type: string + publish_coverage: + required: true + type: boolean env: DOTNET_INSTALL_DIR: "./.dotnet" DOTNET_ROLL_FORWARD: "Major" @@ -11,37 +14,50 @@ env: jobs: unit_test: name: ${{ matrix.os }} - net${{ matrix.dotnet_version }} - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} + permissions: + id-token: write strategy: fail-fast: false matrix: - os: [ windows-2025, ubuntu-24.04, macos-15 ] + os: [ windows-2025-vs2026, ubuntu-24.04, macos-26 ] dotnet_version: ${{ fromJson(inputs.dotnet_versions) }} runs-on: ${{ matrix.os }} steps: - - - name: Checkout - uses: actions/checkout@v5 - with: - fetch-depth: 0 - - - name: Restore State - uses: ./.github/actions/cache-restore + - name: Checkout + uses: actions/checkout@v7 + with: + fetch-depth: 0 + - name: Restore State + uses: ./.github/actions/cache-restore + + - name: '[Unit Test]' + uses: nick-fields/retry@v4 + with: + shell: pwsh + timeout_minutes: 30 + max_attempts: 3 + retry_on: error + command: 'dotnet run/build.dll --target=UnitTest --dotnet_version=${{ matrix.dotnet_version }}' + + - name: Test Summary + uses: test-summary/action@v2.6 + if: always() && matrix.dotnet_version == '10.0' + with: + paths: artifacts/test-results/**/results.xml - - name: '[Unit Test]' - uses: nick-fields/retry@v3 - with: - shell: pwsh - timeout_minutes: 30 - max_attempts: 3 - retry_on: error - command: 'dotnet run/build.dll --target=Test --dotnet_version=${{ matrix.dotnet_version }}' + - name: Upload Coverage + uses: codecov/codecov-action@v7 + if: success() && inputs.publish_coverage && matrix.dotnet_version == '10.0' + with: + files: artifacts/test-results/**/results.xml + report_type: 'test_results' + use_oidc: true - - - name: Test Summary - uses: test-summary/action@v2.4 - if: ${{ always() && matrix.dotnet_version == '9.0' }} - with: - paths: artifacts/test-results/*.results.xml + - name: Upload Coverage + uses: codecov/codecov-action@v7 + if: success() && inputs.publish_coverage && matrix.dotnet_version == '10.0' + with: + directory: artifacts/test-results + report_type: 'coverage' + use_oidc: true diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2421ae3dd3..bc832275bc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -8,6 +8,7 @@ on: - 'feature/*' - 'poc/*' - 'support/*' + - 'next/*' paths: - '**' - '!docs/**' @@ -16,12 +17,13 @@ on: branches: - main - 'support/*' + - 'next/*' paths: - '**' - '!docs/**' merge_group: - types: [checks_requested] - + types: [ checks_requested ] + repository_dispatch: types: [ ci-release ] @@ -30,8 +32,9 @@ env: DOTNET_CLI_TELEMETRY_OPTOUT: 1 DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1 DOTNET_NOLOGO: 1 + TESTINGPLATFORM_TELEMETRY_OPTOUT: 1 - ENABLED_DIAGNOSTICS: ${{ secrets.ENABLED_DIAGNOSTICS }} + ENABLED_DIAGNOSTICS: ${{ vars.ENABLED_DIAGNOSTICS }} permissions: id-token: write @@ -43,7 +46,18 @@ jobs: prepare: name: Prepare uses: ./.github/workflows/_prepare.yml - + + publish_flags: + name: Publish Flags + runs-on: ubuntu-24.04 + outputs: + can_publish: ${{ steps.flags.outputs.can_publish }} + steps: + - name: Resolve publish flag + id: flags + shell: bash + run: echo "can_publish=${{ github.repository == 'GitTools/GitVersion' && github.ref_name == 'main' }}" >> "$GITHUB_OUTPUT" + build: name: Build & Package needs: [ prepare ] @@ -51,10 +65,11 @@ jobs: unit_test: name: Test - needs: [ prepare ] + needs: [ prepare, publish_flags ] uses: ./.github/workflows/_unit_tests.yml with: dotnet_versions: ${{ needs.prepare.outputs.dotnet_versions }} + publish_coverage: ${{ fromJson(needs.publish_flags.outputs.can_publish) }} secrets: inherit artifacts_windows_test: @@ -81,7 +96,7 @@ jobs: dotnet_versions: ${{ needs.prepare.outputs.dotnet_versions }} docker_linux_images: - needs: [ prepare, build ] + needs: [ prepare, build, publish_flags ] name: Docker Images (${{ matrix.arch }}) strategy: fail-fast: false @@ -98,63 +113,85 @@ jobs: arch: ${{ matrix.arch }} docker_distros: ${{ needs.prepare.outputs.docker_distros }} dotnet_versions: ${{ needs.prepare.outputs.dotnet_versions }} + publish_images: ${{ fromJson(needs.publish_flags.outputs.can_publish) }} secrets: inherit docker_linux_manifests: - needs: [ prepare, docker_linux_images ] + needs: [ prepare, docker_linux_images, publish_flags ] name: Docker Manifests uses: ./.github/workflows/_docker_manifests.yml with: docker_distros: ${{ needs.prepare.outputs.docker_distros }} dotnet_versions: ${{ needs.prepare.outputs.dotnet_versions }} + publish_manifests: ${{ fromJson(needs.publish_flags.outputs.can_publish) }} secrets: inherit publish: name: Publish - needs: [ artifacts_windows_test, artifacts_linux_test ] + needs: [ artifacts_windows_test, artifacts_linux_test, publish_flags ] uses: ./.github/workflows/_publish.yml + with: + publish_packages: ${{ fromJson(needs.publish_flags.outputs.can_publish) }} secrets: inherit release: name: Release needs: [ publish, docker_linux_manifests ] - runs-on: windows-2025 + runs-on: windows-2025-vs2026 + permissions: + contents: write + packages: write + id-token: write + attestations: write + issues: write env: - GITHUB_TOKEN: ${{ secrets.RELEASE_GITHUB_TOKEN }} + GITHUB_TOKEN: ${{ github.token }} + CAN_PUBLISH: ${{ github.event_name == 'repository_dispatch' }} steps: - - - name: Checkout - uses: actions/checkout@v5 - with: - fetch-depth: 0 - - - name: Restore State - uses: ./.github/actions/cache-restore - - - name: Restore Artifacts - uses: ./.github/actions/artifacts-restore - - - name: Attetstation - if: ${{ github.event_name == 'repository_dispatch' }} - uses: ./.github/actions/artifacts-attest - - - name: DockerHub Publish Readme - if: ${{ github.event_name == 'repository_dispatch' }} - shell: pwsh - run: dotnet run/docker.dll --target=DockerHubReadmePublish - env: - DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} - DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} - - - name: '[Release]' - shell: pwsh - run: dotnet run/release.dll --target=PublishRelease - - - name: '[Publish Release]' - if: ${{ github.event_name == 'repository_dispatch' }} - uses: peter-evans/repository-dispatch@v4 - with: - token: ${{ secrets.RELEASE_GITHUB_TOKEN }} - repository: ${{ github.repository }} - event-type: publish-release - client-payload: '{"ref": "${{ github.ref }}", "sha": "${{ github.sha }}", "tag": "${{ github.event.client_payload.tag }}"}' \ No newline at end of file + - name: Checkout + uses: actions/checkout@v7 + with: + fetch-depth: 0 + + - name: Restore State + uses: ./.github/actions/cache-restore + + - name: Restore Artifacts + uses: ./.github/actions/artifacts-restore + + - name: Attestation + if: env.CAN_PUBLISH == 'true' + uses: ./.github/actions/artifacts-attest + + - name: Load DockerHub credentials + id: dockerhub-creds + if: env.CAN_PUBLISH == 'true' + uses: gittools/cicd/dockerhub-creds@v5 + with: + op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} + + - name: DockerHub Publish Readme + if: env.CAN_PUBLISH == 'true' + shell: pwsh + run: dotnet run/docker.dll --target=DockerHubReadmePublish + env: + DOCKER_USERNAME: ${{ steps.dockerhub-creds.outputs.docker_username }} + DOCKER_PASSWORD: ${{ steps.dockerhub-creds.outputs.docker_password }} + + - name: '[Release]' + shell: pwsh + run: dotnet run/release.dll --target=PublishRelease + + - name: '[Publish Release]' + if: github.event_name == 'repository_dispatch' + uses: peter-evans/repository-dispatch@v4 + with: + token: ${{ github.token }} + repository: ${{ github.repository }} + event-type: publish-release + client-payload: | + { + "ref": "${{ github.ref }}", + "sha": "${{ github.sha }}", + "tag": "${{ github.event.client_payload.tag }}" + } diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index c53b7a4cd7..208fec3c83 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -3,23 +3,25 @@ name: CodeQL on: push: branches: - - main - - 'support/*' + - main + - 'support/*' + - 'next/*' paths: - - '**' - - '!docs/**' - - '!.github/**' - - .github/workflows/codeql-analysis.yml + - '**' + - '!docs/**' + - '!.github/**' + - .github/workflows/codeql-analysis.yml pull_request: branches: - - main - - 'support/*' + - main + - 'support/*' + - 'next/*' paths: - - '**' - - '!docs/**' - - '!.github/**' - - .github/workflows/codeql-analysis.yml + - '**' + - '!docs/**' + - '!.github/**' + - .github/workflows/codeql-analysis.yml schedule: - cron: '0 12 * * *' @@ -47,39 +49,36 @@ jobs: language: [ 'csharp' ] steps: - - - name: Checkout - uses: actions/checkout@v5 - with: - fetch-depth: 0 + - name: Checkout + uses: actions/checkout@v7 + with: + fetch-depth: 0 - - name: Initialize CodeQL - uses: github/codeql-action/init@v4 - with: - languages: ${{ matrix.language }} + - name: Initialize CodeQL + uses: github/codeql-action/init@v4 + with: + languages: ${{ matrix.language }} + tools: linked - - - name: Cache cake frosting - id: cache-cake - uses: actions/cache@v4 - with: - path: run - key: run-${{ runner.os }}-${{ hashFiles('./build/**') }} + - name: Cache cake frosting + id: cache-cake + uses: actions/cache@v6 + with: + path: run + key: run-${{ runner.os }}-${{ hashFiles('./build/**') }} - - - name: Setup .NET SDK - uses: actions/setup-dotnet@v5 - with: - global-json-file: global.json - - - name: '[Prepare]' - if: steps.cache-cake.outputs.cache-hit != 'true' - run: dotnet build build/ --configuration=Release + - name: Setup .NET SDK + uses: actions/setup-dotnet@v5 + with: + global-json-file: global.json - - - name: '[Build]' - shell: pwsh - run: dotnet run/build.dll --target=BuildPrepare --exclusive + - name: '[Prepare]' + if: steps.cache-cake.outputs.cache-hit != 'true' + run: dotnet build build/ --configuration=Release - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v4 + - name: '[Build]' + shell: pwsh + run: dotnet run/build.dll --target=BuildPrepare --exclusive + + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v4 diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index f3874e8c13..cd7f68ce68 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -6,24 +6,24 @@ on: types: [ publish-release ] push: branches: - - main + - main paths: - - docs/** - - package*.json - - markdownlint.json - - .remarkrc.yaml - - mkdocs.yml - - .github/workflows/docs.yml + - docs/** + - package*.json + - markdownlint.json + - .remarkrc.yaml + - mkdocs.yml + - .github/workflows/docs.yml pull_request: branches: - - main + - main paths: - - docs/** - - package*.json - - markdownlint.json - - .remarkrc.yaml - - mkdocs.yml - - .github/workflows/docs.yml + - docs/** + - package*.json + - markdownlint.json + - .remarkrc.yaml + - mkdocs.yml + - .github/workflows/docs.yml env: DOTNET_ROLL_FORWARD: "Major" DOTNET_CLI_TELEMETRY_OPTOUT: 1 @@ -36,117 +36,112 @@ jobs: runs-on: ubuntu-24.04 steps: - - - name: Checkout - uses: actions/checkout@v5 - with: - fetch-depth: 0 - - - name: Cache cake frosting - id: cache-cake - uses: actions/cache@v4 - with: - path: run - key: run-${{ runner.os }}-${{ hashFiles('./build/**') }} - - - name: Use cached tools - id: cache-tools - uses: actions/cache@v4 - with: - path: tools - key: tools-${{ runner.os }}-${{ hashFiles('./build/**') }} - - - name: Get npm cache directory - shell: bash - id: cache-node-dir - run: | - cacheDir=$(npm config get cache) - echo "dir=$cacheDir" >> $GITHUB_OUTPUT - - - name: Cache Node Modules - id: cache-node - uses: actions/cache@v4 - with: - path: ${{ steps.cache-node-dir.outputs.dir }} - key: node-${{ runner.os }}-${{ hashFiles('./package-lock.json') }} - restore-keys: node-${{ runner.os }} - - - name: Setup .NET SDK - uses: actions/setup-dotnet@v5 - with: - global-json-file: global.json - - - name: '[Build]' - if: steps.cache-cake.outputs.cache-hit != 'true' - run: dotnet build build/ --configuration=Release - - - name: '[Prepare]' - shell: pwsh - run: dotnet run/build.dll --target=BuildPrepare + - name: Checkout + uses: actions/checkout@v7 + with: + fetch-depth: 0 + + - name: Cache cake frosting + id: cache-cake + uses: actions/cache@v6 + with: + path: run + key: run-${{ runner.os }}-${{ hashFiles('./build/**') }} + + - name: Use cached tools + id: cache-tools + uses: actions/cache@v6 + with: + path: tools + key: tools-${{ runner.os }}-${{ hashFiles('./build/**') }} + + - name: Get npm cache directory + shell: bash + id: cache-node-dir + run: | + cacheDir=$(npm config get cache) + echo "dir=$cacheDir" >> $GITHUB_OUTPUT + + - name: Cache Node Modules + id: cache-node + uses: actions/cache@v6 + with: + path: ${{ steps.cache-node-dir.outputs.dir }} + key: node-${{ runner.os }}-${{ hashFiles('./package-lock.json') }} + restore-keys: node-${{ runner.os }} + + - name: Setup .NET SDK + uses: actions/setup-dotnet@v5 + with: + global-json-file: global.json + + - name: '[Build]' + if: steps.cache-cake.outputs.cache-hit != 'true' + run: dotnet build build/ --configuration=Release + + - name: '[Prepare]' + shell: pwsh + run: dotnet run/build.dll --target=BuildPrepare validate: name: Validates Html needs: [ prepare ] runs-on: ubuntu-24.04 steps: - - - name: Checkout - uses: actions/checkout@v5 - with: - fetch-depth: 0 - - - name: Restore State - uses: ./.github/actions/cache-restore - - - name: '[Build Documentation]' - shell: pwsh - run: dotnet run/docs.dll --target=BuildDocs - - - name: '[HTMLProofer]' - uses: chabad360/htmlproofer@master - with: - directory: ./artifacts/docs/preview - arguments: --ignore-urls /api/,/docs/,/5.12.0/ --allow-hash-href --allow-missing-href --assume-extension --disable-external --no-check_external_hash - - - name: '[Reviewdog Reporter]' - id: reporter - run: | - value=$([ ${{ github.event_name == 'pull_request' }} ] && echo "github-pr-review" || echo "github-check") - echo "value=$value" >> $GITHUB_OUTPUT - - - name: '[Remark Lint]' - uses: reviewdog/action-remark-lint@v5 - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - reporter: ${{ steps.reporter.outputs.value }} + - name: Checkout + uses: actions/checkout@v7 + with: + fetch-depth: 0 + + - name: Restore State + uses: ./.github/actions/cache-restore + + - name: '[Build Documentation]' + shell: pwsh + run: dotnet run/docs.dll --target=BuildDocs + + - name: '[HTMLProofer]' + uses: chabad360/htmlproofer@master + with: + directory: ./artifacts/docs/preview + arguments: --ignore-urls /api/,/docs/,/5.12.0/ --allow-hash-href --allow-missing-href --assume-extension --disable-external --no-check_external_hash + + - name: '[Reviewdog Reporter]' + id: reporter + run: | + value=$([ ${{ github.event_name == 'pull_request' }} ] && echo "github-pr-review" || echo "github-check") + echo "value=$value" >> $GITHUB_OUTPUT + + - name: '[Remark Lint]' + uses: reviewdog/action-remark-lint@v5 + with: + github_token: ${{ github.token }} + reporter: ${{ steps.reporter.outputs.value }} publish: + if: github.event_name == 'repository_dispatch' || github.event_name == 'workflow_dispatch' name: Publish docs needs: [ validate ] runs-on: ubuntu-24.04 + permissions: + contents: write env: - GITHUB_TOKEN: ${{ secrets.RELEASE_GITHUB_TOKEN }} + GITHUB_TOKEN: ${{ github.token }} GITHUB_USERNAME: ${{ github.actor }} steps: - - - name: Checkout - uses: actions/checkout@v5 - with: - fetch-depth: 0 - - - name: Restore State - uses: ./.github/actions/cache-restore - - - name: '[Build Schemas]' - shell: pwsh - run: dotnet run/docs.dll --target=GenerateSchemas - - - name: '[Publish Documentation]' - if: ${{ github.event_name == 'repository_dispatch' }} - shell: pwsh - run: dotnet run/docs.dll --target=PublishDocs - - - name: '[Publish Documentation]' - if: ${{ github.event_name == 'workflow_dispatch' }} - shell: pwsh - run: dotnet run/docs.dll --target=PublishDocs --force + - name: Checkout + uses: actions/checkout@v7 + with: + fetch-depth: 0 + + - name: Restore State + uses: ./.github/actions/cache-restore + + - name: '[Build Schemas]' + shell: pwsh + run: dotnet run/docs.dll --target=GenerateSchemas + + - name: '[Publish Documentation]' + if: github.event_name == 'repository_dispatch' || github.event_name == 'workflow_dispatch' + shell: pwsh + run: dotnet run/docs.dll --target=PublishDocs --force diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml index ffe858459c..28aa8540b0 100644 --- a/.github/workflows/format.yml +++ b/.github/workflows/format.yml @@ -2,26 +2,28 @@ name: Code Format on: push: branches: - - main - - 'fix/*' - - 'feature/*' - - 'poc/*' - - 'support/*' + - main + - 'fix/*' + - 'feature/*' + - 'poc/*' + - 'support/*' + - 'next/*' paths: - - '**' - - '!docs/**' - - '!.github/**' - - .github/workflows/format.yml + - '**' + - '!docs/**' + - '!.github/**' + - .github/workflows/format.yml pull_request: branches: - - main - - 'support/*' + - main + - 'support/*' + - 'next/*' paths: - - '**' - - '!docs/**' - - '!.github/**' - - .github/workflows/format.yml + - '**' + - '!docs/**' + - '!.github/**' + - .github/workflows/format.yml permissions: contents: read @@ -37,17 +39,16 @@ jobs: runs-on: ubuntu-24.04 name: DotNet Format steps: - - - name: Checkout - uses: actions/checkout@v5 - - - name: Setup .NET SDK + - name: Checkout + uses: actions/checkout@v7 + + - name: Setup .NET SDK uses: actions/setup-dotnet@v5 with: global-json-file: global.json - - - name: Run Format 'ci' solution + + - name: Run Format 'ci' solution run: dotnet format ./build/ --verify-no-changes - - - name: Run Format 'GitVersion' solution + + - name: Run Format 'GitVersion' solution run: dotnet format ./src/ --exclude **/AddFormats/ --verify-no-changes diff --git a/.github/workflows/gittools-actions.yml b/.github/workflows/gittools-actions.yml new file mode 100644 index 0000000000..33b018fbd5 --- /dev/null +++ b/.github/workflows/gittools-actions.yml @@ -0,0 +1,63 @@ +name: Update GitTools Actions + +on: + workflow_dispatch: + inputs: + tag-name: + description: 'Tag name to use for the release' + required: true + repository_dispatch: + types: [ publish-release ] + +defaults: + run: + shell: pwsh + +permissions: + contents: read + +jobs: + homebrew: + permissions: + contents: none + name: Update GitTools Actions + runs-on: ubuntu-24.04 + steps: + - name: Get version + id: get-version + shell: pwsh + run: | + $version = "${{ github.event.client_payload.tag }}" + if ($version -eq "") { + $version = "${{ github.event.inputs.tag-name }}" + } + "version=$version" >> $env:GITHUB_OUTPUT + + - name: Load GitHub App credentials + id: github-app-creds + uses: gittools/cicd/github-app-creds@v5 + with: + op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} + + - name: Generate GitHub App Token + id: app-token + uses: actions/create-github-app-token@v3 + with: + app-id: ${{ steps.github-app-creds.outputs.gh_app_id }} + private-key: ${{ steps.github-app-creds.outputs.gh_app_private_key }} + owner: ${{ github.repository_owner }} + repositories: actions + permission-contents: write + + - uses: peter-evans/repository-dispatch@v4 + name: Update GitTools Actions + with: + token: ${{ steps.app-token.outputs.token }} + repository: ${{ github.repository_owner }}/actions + event-type: gitversion-release-published + client-payload: | + { + "ref": "${{ github.ref }}", + "sha": "${{ github.sha }}", + "newTag": "${{ steps.get-version.outputs.version }}" + } diff --git a/.github/workflows/homebrew.yml b/.github/workflows/homebrew.yml index 12cfa22056..0b9091b4cc 100644 --- a/.github/workflows/homebrew.yml +++ b/.github/workflows/homebrew.yml @@ -27,17 +27,24 @@ jobs: if ($version -eq "") { $version = "${{ github.event.inputs.tag-name }}" } - "version=$version" >> $env:GITHUB_OUTPUT - - - uses: mislav/bump-homebrew-formula-action@v3 + "version=$version" >> $env:GITHUB_OUTPUT + + - name: Load GitHub release token + id: github-creds + uses: gittools/cicd/github-creds@v5 + with: + op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} + + - uses: mislav/bump-homebrew-formula-action@v4 name: Bump Homebrew formula with: formula-name: gitversion tag-name: ${{ steps.get-version.outputs.version }} download-url: https://github.com/GitTools/GitVersion/archive/refs/tags/${{ steps.get-version.outputs.version }}.tar.gz + push-to: gittools-bot/homebrew-core commit-message: | {{formulaName}} {{version}} For additional details see https://github.com/GitTools/GitVersion/releases/tag/${{ steps.get-version.outputs.version }} env: - COMMITTER_TOKEN: ${{ secrets.RELEASE_GITHUB_TOKEN }} \ No newline at end of file + COMMITTER_TOKEN: ${{ steps.github-creds.outputs.github_release_token }} diff --git a/.github/workflows/mkdocs.yml b/.github/workflows/mkdocs.yml index 47a2f981f0..7b878553c1 100644 --- a/.github/workflows/mkdocs.yml +++ b/.github/workflows/mkdocs.yml @@ -1,6 +1,17 @@ name: Markdown Update on: + workflow_dispatch: push: + paths: + - 'docs/**' + + pull_request: + branches: + - main + - 'support/*' + - 'next/*' + paths: + - 'docs/**' env: DOTNET_ROLL_FORWARD: "Major" @@ -17,38 +28,24 @@ jobs: name: Update Markdown (embedded snippets) runs-on: ubuntu-24.04 steps: - - - name: Checkout - uses: actions/checkout@v5 - if: github.event_name == 'push' + - name: Checkout + uses: gittools/cicd/checkout@v5 with: - token: ${{ secrets.PUSH_GITHUB_TOKEN }} - - - name: Checkout - uses: actions/checkout@v5 - if: github.event_name == 'pull_request' - - - name: Setup .NET SDK + op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} + fetch-depth: 1 + + - name: Setup .NET SDK uses: actions/setup-dotnet@v5 with: global-json-file: global.json - - - name: Run MarkdownSnippets + + - name: Run MarkdownSnippets run: | dotnet tool install --global MarkdownSnippets.Tool mdsnippets --write-header false working-directory: ${{ github.workspace }}/docs/input - - - name: Check for changes - id: status - run: | - if ($null -ne (git status --porcelain)) { echo "has_changes=1"; echo "has_changes=1" >> $env:GITHUB_OUTPUT } - - - name: Push changes - run: | - git add --verbose . - git config user.name 'gittools-bot' - git config user.email 'gittoolsbot@outlook.com' - git commit -m 'Docs changes' --allow-empty - git push --force - if: steps.status.outputs.has_changes == '1' + + - name: Commit and push markdown docs changes + uses: gittools/cicd/git-commit-push@v5 + with: + message: "include markdown docs changes" diff --git a/.github/workflows/new-cli.yml b/.github/workflows/new-cli.yml index 6793b7eee4..65479803ca 100644 --- a/.github/workflows/new-cli.yml +++ b/.github/workflows/new-cli.yml @@ -2,26 +2,28 @@ name: Build (new-cli) on: push: branches: - - main - - 'fix/*' - - 'feature/*' - - 'poc/*' - - 'support/*' + - main + - 'fix/*' + - 'feature/*' + - 'poc/*' + - 'support/*' + - 'next/*' paths: - - '**' - - '!docs/**' - - '!.github/**' - - .github/workflows/new-cli.yml + - '**' + - '!docs/**' + - '!.github/**' + - .github/workflows/new-cli.yml pull_request: branches: - - main - - 'support/*' + - main + - 'support/*' + - 'next/*' paths: - - '**' - - '!docs/**' - - '!.github/**' - - .github/workflows/new-cli.yml + - '**' + - '!docs/**' + - '!.github/**' + - .github/workflows/new-cli.yml permissions: contents: read @@ -31,26 +33,26 @@ env: DOTNET_CLI_TELEMETRY_OPTOUT: 1 DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1 DOTNET_NOLOGO: 1 + TESTINGPLATFORM_TELEMETRY_OPTOUT: 1 jobs: format: runs-on: ubuntu-24.04 name: Build & Test (new-cli) steps: - - - name: Checkout - uses: actions/checkout@v5 - - - name: Setup .NET SDK + - name: Checkout + uses: actions/checkout@v7 + + - name: Setup .NET SDK uses: actions/setup-dotnet@v5 with: global-json-file: global.json - - - name: Build 'new-cli' solution + + - name: Build 'new-cli' solution run: dotnet build ./new-cli - - - name: Run Format 'new-cli' solution + + - name: Run Format 'new-cli' solution run: dotnet format ./new-cli --exclude ~/.nuget/packages --verify-no-changes - - - name: Test 'new-cli' solution - run: dotnet test ./new-cli --no-build --verbosity normal + + - name: Test 'new-cli' solution + run: dotnet test --solution ./new-cli/GitVersion.slnx --no-build --verbosity normal diff --git a/.github/workflows/public-api.yml b/.github/workflows/public-api.yml index 97898f72ff..58a5205a72 100644 --- a/.github/workflows/public-api.yml +++ b/.github/workflows/public-api.yml @@ -9,36 +9,21 @@ defaults: run: shell: pwsh -permissions: - contents: read - jobs: - homebrew: - permissions: - contents: none + public-api: name: Mark public API as shipped runs-on: ubuntu-24.04 steps: - - - name: Checkout - uses: actions/checkout@v5 - if: github.event_name == 'repository_dispatch' || github.event_name == 'workflow_dispatch' + - name: Checkout + uses: gittools/cicd/checkout@v5 with: - token: ${{ secrets.PUSH_GITHUB_TOKEN }} - - - name: Mark public API as shipped + op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} + fetch-depth: 0 + + - name: Mark public API as shipped run: ./src/mark-shipped.ps1 - - - name: Check for changes - id: status - run: | - if ($null -ne (git status --porcelain)) { echo "has_changes=1"; echo "has_changes=1" >> $env:GITHUB_OUTPUT } - - - name: Push changes - run: | - git add --verbose . - git config user.name 'gittools-bot' - git config user.email 'gittoolsbot@outlook.com' - git commit -m 'Mark public API as shipped' --allow-empty - git push --force - if: steps.status.outputs.has_changes == '1' + + - name: Commit and push changes + uses: gittools/cicd/git-commit-push@v5 + with: + message: "include public API changes" diff --git a/.github/workflows/qodana_analysis.yml b/.github/workflows/qodana_analysis.yml deleted file mode 100644 index 3d7c0e1eca..0000000000 --- a/.github/workflows/qodana_analysis.yml +++ /dev/null @@ -1,35 +0,0 @@ -name: Qodana -on: - workflow_dispatch: - push: - branches: - - main - - 'fix/*' - - 'feature/*' -jobs: - qodana: - runs-on: ubuntu-latest - permissions: - contents: write - pull-requests: write - checks: write - steps: - - - uses: actions/checkout@v5 - with: - ref: ${{ github.event.pull_request.head.sha }} - fetch-depth: 0 - - - name: Setup .NET SDK - uses: actions/setup-dotnet@v5 - with: - global-json-file: global.json - - - name: 'Qodana Scan' - uses: jetbrains/qodana-action@v2025.2.1 - with: - args: --baseline,qodana.sarif.json - cache-default-branch-only: true - pr-mode: true - env: - QODANA_TOKEN: ${{ secrets.QODANA_TOKEN }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c663002892..cdb77cc68f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -7,22 +7,28 @@ jobs: release: name: Trigger ci flow runs-on: ubuntu-24.04 + permissions: + contents: write steps: - - - name: Checkout - uses: actions/checkout@v5 - - - name: Get version + - name: Checkout + uses: actions/checkout@v7 + + - name: Get version id: get-version shell: pwsh run: | # Finding the version from release tag - $VERSION="${{ github.ref }}".Replace("refs/tags/", "") - "version=$VERSION" >> $env:GITHUB_OUTPUT - - - uses: peter-evans/repository-dispatch@v4 + $TAG="${{ github.ref }}".Replace("refs/tags/", "") + "tag=$TAG" >> $env:GITHUB_OUTPUT + + - uses: peter-evans/repository-dispatch@v4 with: - token: ${{ secrets.RELEASE_GITHUB_TOKEN }} + token: ${{ github.token }} repository: ${{ github.repository }} event-type: ci-release - client-payload: '{"ref": "${{ github.ref }}", "sha": "${{ github.sha }}", "tag": "${{ steps.get-version.outputs.version }}"}' \ No newline at end of file + client-payload: | + { + "ref": "${{ github.ref }}", + "sha": "${{ github.sha }}", + "tag": "${{ steps.get-version.outputs.tag }}" + } diff --git a/.github/workflows/winget.yml b/.github/workflows/winget.yml index f6ad004ed9..6a6852a5ac 100644 --- a/.github/workflows/winget.yml +++ b/.github/workflows/winget.yml @@ -14,27 +14,34 @@ permissions: jobs: homebrew: - permissions: - contents: none name: Bump winget manifest runs-on: ubuntu-24.04 steps: - - name: Get version - id: get-version - shell: pwsh - run: | - $version = "${{ github.event.client_payload.tag }}" - if ($version -eq "") { - $version = "${{ github.event.inputs.tag-name }}" - } - - $url = "https://github.com/GitTools/GitVersion/releases/download/{0}/gitversion-win-{1}-{0}.zip" - $urls = @(($url -f $version, "x64"), ($url -f $version, "arm64")) -Join " " - - $run_args = "update GitTools.GitVersion --version $version --urls $urls --token ${{ secrets.RELEASE_GITHUB_TOKEN }} --submit" - "version=$version" >> $env:GITHUB_OUTPUT - "run_args=$run_args" >> $env:GITHUB_OUTPUT - - - uses: michidk/run-komac@v2.1.0 - with: - args: '${{ steps.get-version.outputs.run_args }}' \ No newline at end of file + - name: Get version + id: get-version + shell: pwsh + run: | + $version = "${{ github.event.client_payload.tag }}" + if ($version -eq "") { + $version = "${{ github.event.inputs.tag-name }}" + } + + $url = "https://github.com/GitTools/GitVersion/releases/download/{0}/gitversion-win-{1}-{0}.zip" + $urls = @(($url -f $version, "x64"), ($url -f $version, "arm64")) -Join " " + + $run_args = "update GitTools.GitVersion --version $version --urls $urls --submit" + "version=$version" >> $env:GITHUB_OUTPUT + "run_args=$run_args" >> $env:GITHUB_OUTPUT + + - name: Load GitHub release token + id: github-creds + uses: gittools/cicd/github-creds@v5 + with: + op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} + + - uses: michidk/run-komac@v2.1.0 + env: + GITHUB_TOKEN: ${{ steps.github-creds.outputs.github_release_token }} + with: + args: '${{ steps.get-version.outputs.run_args }}' + custom-fork-owner: gittools-bot diff --git a/.gitignore b/.gitignore index dfc424aaaa..af6fb0a064 100644 --- a/.gitignore +++ b/.gitignore @@ -93,12 +93,6 @@ Packages/ .idea -#################### -# Visual Studio Code -#################### - -.vscode - #################### # Cake #################### diff --git a/.gitversion.yml b/.gitversion.yml index 7c62fc859e..088814cbfe 100644 --- a/.gitversion.yml +++ b/.gitversion.yml @@ -1,3 +1,4 @@ +# $schema: https://gitversion.net/schemas/6.4/GitVersion.configuration.json workflow: GitFlow/v1 mode: ManualDeployment branches: diff --git a/.sonarlint/GitVersion.json b/.sonarlint/GitVersion.json new file mode 100644 index 0000000000..9ec1ad5ae8 --- /dev/null +++ b/.sonarlint/GitVersion.json @@ -0,0 +1,5 @@ +{ + "sonarCloudOrganization": "gittools", + "projectKey": "GitTools_GitVersion", + "region": "EU" +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000000..7da94fd386 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,109 @@ +{ + "chat.useAgentSkills": true, + "chat.plugins.enabled": true, + "chat.tools.terminal.autoApprove": { + "dotnet --version": true, + "dotnet --info": true, + "dotnet restore": true, + "dotnet clean": true, + "dotnet build": true, + "dotnet format": true, + "dotnet test": true, + "dotnet run": true, + "cd": true, + "echo": true, + "ls": true, + "pwd": true, + "cat": true, + "head": true, + "tail": true, + "findstr": true, + "wc": true, + "tr": true, + "cut": true, + "cmp": true, + "which": true, + "basename": true, + "dirname": true, + "realpath": true, + "readlink": true, + "stat": true, + "file": true, + "du": true, + "df": true, + "sleep": true, + "nl": true, + "grep": true, + "/^git(\\s+(-C\\s+\\S+|--no-pager))*\\s+status\\b/": true, + "/^git(\\s+(-C\\s+\\S+|--no-pager))*\\s+log\\b/": true, + "/^git(\\s+(-C\\s+\\S+|--no-pager))*\\s+show\\b/": true, + "/^git(\\s+(-C\\s+\\S+|--no-pager))*\\s+diff\\b/": true, + "/^git(\\s+(-C\\s+\\S+|--no-pager))*\\s+ls-files\\b/": true, + "/^git(\\s+(-C\\s+\\S+|--no-pager))*\\s+grep\\b/": true, + "/^git(\\s+(-C\\s+\\S+|--no-pager))*\\s+branch\\b/": true, + "/^git(\\s+(-C\\s+\\S+|--no-pager))*\\s+branch\\b.*-(d|D|m|M|-delete|-force)\\b/": false, + "Get-ChildItem": true, + "Get-Content": true, + "Get-Date": true, + "Get-Random": true, + "Get-Location": true, + "Write-Host": true, + "Write-Output": true, + "Out-String": true, + "Split-Path": true, + "Join-Path": true, + "Start-Sleep": true, + "Where-Object": true, + "/^Select-[a-z0-9]/i": true, + "/^Measure-[a-z0-9]/i": true, + "/^Compare-[a-z0-9]/i": true, + "/^Format-[a-z0-9]/i": true, + "/^Sort-[a-z0-9]/i": true, + "column": true, + "/^column\\b.*-c\\s+[0-9]{4,}/": false, + "date": true, + "/^date\\b.*(-s|--set)\\b/": false, + "find": true, + "/^find\\b.*-(delete|exec|execdir|fprint|fprintf|fls|ok|okdir)\\b/": false, + "rg": true, + "/^rg\\b.*(--pre|--hostname-bin)\\b/": false, + "sed": true, + "/^sed\\b.*(-[a-zA-Z]*(e|i|I|f)[a-zA-Z]*|--expression|--file|--in-place)\\b/": false, + "/^sed\\b.*(/e|/w|;W)/": false, + "sort": true, + "/^sort\\b.*-(o|S)\\b/": false, + "tree": true, + "/^tree\\b.*-o\\b/": false, + "rm": false, + "rmdir": false, + "del": false, + "Remove-Item": false, + "ri": false, + "rd": false, + "erase": false, + "dd": false, + "kill": false, + "ps": false, + "top": false, + "Stop-Process": false, + "spps": false, + "taskkill": false, + "taskkill.exe": false, + "curl": false, + "wget": false, + "Invoke-RestMethod": false, + "Invoke-WebRequest": false, + "irm": false, + "iwr": false, + "chmod": false, + "chown": false, + "Set-ItemProperty": false, + "sp": false, + "Set-Acl": false, + "jq": false, + "xargs": false, + "eval": false, + "Invoke-Expression": false, + "iex": false + } +} diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000000..b95de44f33 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,132 @@ +# GitVersion — AI Agent Instructions + +This file provides repo-specific guidance for AI coding agents (e.g. Claude Code, Codex, Copilot Workspace). + +## Project overview + +GitVersion is a multi-project .NET repository that calculates semantic versions from Git history. +Primary source code lives under `src/`. CLI examples and documentation live under `docs/`. + +## Key files + +- `README.md` — project overview and links to documentation +- `global.json` — SDK version pin (.NET 10) and solution roots (`build`, `new-cli`, `src`) +- `build.ps1` — primary build entry point (Cake-based); day-to-day work uses `dotnet` CLI directly +- `src/Directory.Packages.props` — central NuGet package versioning (edit here, not in individual csproj files) +- `src/GitVersion.slnx` — main solution file +- `docs/` — CLI usage examples and I/O patterns (JSON stdout, environment outputs) +- `src/GitVersion.Configuration/ConfigurationFileLocator.cs` — config file lookup logic + +## Architecture + +The repo has two parallel solution trees: + +### `src/` — legacy/stable CLI + +| Project | Role | +| -------------------------- | -------------------------------------- | +| `GitVersion.Core` | Core version calculation logic | +| `GitVersion.Configuration` | Configuration loading and validation | +| `GitVersion.App` | CLI entry point | +| `GitVersion.BuildAgents` | Platform-specific build agent adapters | +| `GitVersion.LibGit2Sharp` | Git repository access | +| `*Tests` projects | Unit and integration tests | + +Build-agent adapters live in `src/GitVersion.BuildAgents/Agents/`. They write `GitVersion_`-prefixed environment variables — preserve that prefix when reading or writing outputs. + +### `new-cli/` — new CLI (actively developed, `new-cli/GitVersion.slnx`) + +| Project | Role | +| -------------------------------- | ------------------------------------------ | +| `GitVersion.Cli` | New CLI entry point | +| `GitVersion.Core` | Core version calculation (new-cli variant) | +| `GitVersion.Calculation` | Version calculation plugin | +| `GitVersion.Configuration` | Configuration plugin | +| `GitVersion.Normalization` | Normalization plugin | +| `GitVersion.Output` | Output plugin | +| `GitVersion.Common` | Shared utilities | +| `GitVersion.Core.Libgit2Sharp` | Git repository access | +| `GitVersion.Cli.Generator` | Source generator for CLI commands | +| `GitVersion.Cli.Generator.Tests` | Generator tests | + +The `new-cli/` tree has its own `Directory.Packages.props` for centralized package versions. + +## Developer commands + +```bash +# --- src/ (legacy CLI) --- + +# Build the solution +dotnet build ./src/GitVersion.slnx + +# Run all tests +dotnet test ./src/GitVersion.slnx + +# Run tests for a single project +dotnet test --project ./src/GitVersion.Core.Tests/GitVersion.Core.Tests.csproj + +# Run the legacy CLI locally +dotnet run --project src/GitVersion.App + +# Format code +dotnet format ./src/GitVersion.slnx + +# Verify formatting (CI-friendly, non-zero exit if changes needed) +dotnet format --verify-no-changes ./src/GitVersion.slnx + +# --- new-cli/ (new CLI) --- + +# Build the new CLI solution +dotnet build ./new-cli/GitVersion.slnx + +# Run tests for the new CLI +dotnet test ./new-cli/GitVersion.slnx + +# Run the new CLI locally +dotnet run --project new-cli/GitVersion.Cli +``` + +## Conventions + +- **SDK / TFM**: .NET 10 (`global.json`); most projects target `net10.0`. +- **C# version**: `LangVersion=latest` (C# 14). Prefer new syntax where it improves clarity: + - `field` keyword — access auto-property backing field inside the property body instead of a manual backing field + - Extension members — use the new `extension(Type t) { }` block syntax for extension methods/properties + - Null-conditional assignment — `x?.Property = value` + - `params` collections — `params` now works with any collection type, not just arrays + - Partial properties — analogous to partial methods for source generators +- **Package versions**: update `src/Directory.Packages.props`, not individual csproj files. Add packages via `dotnet add package <Package> --version <Version>`. +- **Config file names**: `GitVersion.yml`, `GitVersion.yaml`, `.GitVersion.yml`, `.GitVersion.yaml` — use these names or pass `--configfile`. +- **Code style**: `.editorconfig` defines style; run `dotnet format` to apply. +- **Commit style**: prefer atomic commits; rebase onto `main` rather than merging. +- **Tests**: integration tests live in `src/GitVersion.Core.Tests/IntegrationTests/`. Use `EmptyRepositoryFixture` / `BaseGitFlowRepositoryFixture` and builder patterns (`GitFlowConfigurationBuilder`, `GitHubFlowConfigurationBuilder`). + +## Tips + +- For `gh` commands, set `GH_PAGER=cat GH_FORCE_TTY=0` to avoid pager/TTY issues in non-interactive terminals. + +## What to check when changing behavior + +- CLI output shape changed → update `docs/` examples and build-agent adapters that parse JSON or env vars. +- New dependency added → update `src/Directory.Packages.props` and verify with `dotnet build`. +- Configuration schema changed → regenerate schemas: + + ```bash + ./build.ps1 -Stage build -Target BuildPrepare + ./build.ps1 -Stage docs -Target GenerateSchemas + ``` + +## Testing guidance + +Most relevant tests are in `src/GitVersion.Core.Tests/IntegrationTests/`. There is a scenario class per branch type (e.g. `MainScenarios`, `FeatureBranchScenarios`). Use `fixture.AssertFullSemver("x.y.z-label.n", configuration)` to assert calculated versions. + +```csharp +using var fixture = new EmptyRepositoryFixture(); +fixture.Repository.MakeATaggedCommit("1.0.0"); +fixture.Repository.CreateBranch("feature/my-feature"); +fixture.Checkout("feature/my-feature"); // use fixture.Checkout(), not fixture.Repository.Checkout() +fixture.Repository.MakeACommit(); + +var configuration = GitFlowConfigurationBuilder.New.Build(); +fixture.AssertFullSemver("1.0.1-my-feature.1", configuration); +``` diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000000..6093296f3b --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,92 @@ +# CLAUDE.md + +This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. + +## Project overview + +GitVersion is a multi-project .NET repository that calculates semantic versions from Git history. It supports multiple versioning strategies (GitFlow, GitHubFlow, Mainline) and integrates with CI/CD systems (GitHub Actions, Azure Pipelines, TeamCity, etc.). + +## Developer commands + +```bash +# Build +dotnet build ./src/GitVersion.slnx +dotnet build ./new-cli/GitVersion.slnx + +# Test +dotnet test ./src/GitVersion.slnx +dotnet test --project ./src/GitVersion.Core.Tests/GitVersion.Core.Tests.csproj + +# Run the legacy CLI locally +dotnet run --project src/GitVersion.App + +# Run the new CLI locally +dotnet run --project new-cli/GitVersion.Cli + +# Format +dotnet format ./src/GitVersion.slnx +dotnet format --verify-no-changes ./src/GitVersion.slnx # CI check + +# Regenerate schemas (after changing GitVersionVariables or GitVersionConfiguration) +./build.ps1 -Stage build -Target BuildPrepare +./build.ps1 -Stage docs -Target GenerateSchemas +``` + +## Architecture + +The repo has two parallel solution trees: + +### `src/` — legacy/stable CLI (`src/GitVersion.slnx`) + +| Project | Role | +|---|---| +| `GitVersion.Core` | Core version calculation logic, version calculators, version search strategies | +| `GitVersion.Configuration` | Config loading/validation (YAML), `ConfigurationFileLocator.cs` | +| `GitVersion.App` | CLI entry point | +| `GitVersion.BuildAgents` | Platform adapters; write `GitVersion_`-prefixed env vars — preserve that prefix | +| `GitVersion.LibGit2Sharp` | Git repository access | +| `GitVersion.Output` | JSON/env/text output formatters | +| `GitVersion.MsBuild` | MSBuild task integration | +| `GitVersion.Testing` | Shared test fixtures and builders | + +Key internal directories in `GitVersion.Core`: +- `VersionCalculation/VersionCalculators/` — deployment-mode calculators (Mainline, ContinuousDeployment, ContinuousDelivery) +- `VersionCalculation/VersionSearchStrategies/` — strategies for finding a base version in Git history +- `VersionCalculation/Mainline/` — mainline versioning implementation + +### `new-cli/` — new CLI (`new-cli/GitVersion.slnx`, actively developed) + +Plugin-based architecture: `GitVersion.Cli`, `GitVersion.Core`, `GitVersion.Calculation`, `GitVersion.Configuration`, `GitVersion.Normalization`, `GitVersion.Output`, `GitVersion.Common`, `GitVersion.Core.Libgit2Sharp`, `GitVersion.Cli.Generator`. + +Each tree has its own `Directory.Packages.props` for centralized package versions. + +## Conventions + +- **Package versions**: update `src/Directory.Packages.props` (or `new-cli/Directory.Packages.props`), not individual csproj files. Add packages via `dotnet add package <Package> --version <Version>`. +- **Config file names**: `GitVersion.yml`, `GitVersion.yaml`, `.GitVersion.yml`, `.GitVersion.yaml` — see `ConfigurationFileLocator.cs` for the lookup order. +- **Code style**: defined in `.editorconfig`; run `dotnet format` to apply. Nullable reference types and implicit usings are enabled. +- **C# version**: `LangVersion=latest` (C# 14). Prefer new syntax where it improves clarity: + - `field` keyword — access auto-property backing field inside the property body instead of a manual backing field + - Extension members — use the new `extension(Type t) { }` block syntax for extension methods/properties + - Null-conditional assignment — `x?.Property = value` + - `params` collections — `params` now works with any collection type, not just arrays + - Partial properties — analogous to partial methods for source generators +- **Commit style**: prefer atomic commits; rebase onto `main` rather than merging. +- **CLI output changes**: update `docs/` examples and build-agent adapters that parse JSON or env vars. + +## Testing + +Integration tests live in `src/GitVersion.Core.Tests/IntegrationTests/` with a scenario class per branch type (`MainScenarios`, `FeatureBranchScenarios`, `ReleaseScenarios`, etc.). Use `fixture.AssertFullSemver("x.y.z-label.n", configuration)` to assert calculated versions. + +```csharp +using var fixture = new EmptyRepositoryFixture(); +fixture.Repository.MakeATaggedCommit("1.0.0"); +fixture.Repository.CreateBranch("feature/my-feature"); +fixture.Checkout("feature/my-feature"); // use fixture.Checkout(), not fixture.Repository.Checkout() +fixture.Repository.MakeACommit(); + +var configuration = GitFlowConfigurationBuilder.New.Build(); +fixture.AssertFullSemver("1.0.1-my-feature.1", configuration); +``` + +Test stack: NUnit 4.x, Shouldly assertions, NSubstitute mocks, `EmptyRepositoryFixture` / `BaseGitFlowRepositoryFixture`, config builders (`GitFlowConfigurationBuilder`, `GitHubFlowConfigurationBuilder`, `EmptyConfigurationBuilder`). \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ac82b46b95..4debf219d0 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -21,6 +21,37 @@ Issues are also welcome, [failing tests](#writing-tests) are even more welcome. on how to improve the documentation and please include documentation updates with your PR. +### Git history & pull request updates + +We prefer a **linear commit history**. + +* Keep your branch **up to date by rebasing on `main`** (not by merging `main` into your branch). +* Prefer **atomic commits**: each commit should represent one logical change and leave the repo in a working state. +* **Don’t squash everything into one commit** by default. + Squash is fine when it helps you *create atomic commits* (for example, folding “fix tests” into the commit that introduced the tests). + +A typical workflow looks like: + +```shell +# update your local main +git fetch origin +git checkout main +git pull --ff-only + +# rebase your feature branch onto the latest main +git checkout my-feature +git rebase origin/main + +# if your branch is already on GitHub, you'll likely need a force push after rebasing +git push --force-with-lease +``` + +If you need to reorganize commits (split/merge/reword) before opening the PR, use an interactive rebase: + +```shell +git rebase -i origin/main +``` + ## How it works See [how it works](https://gitversion.net/docs/learn/how-it-works) in GitVersion's documentation @@ -111,6 +142,51 @@ We use Cake for our build and deployment process. The way the release process is and other distribution channels. 9. The issues and pull requests will get updated with message specifying in which release it was included. +### NuGet Trusted Publishing + +NuGet packages are published to nuget.org using [Trusted Publishing](https://learn.microsoft.com/en-us/nuget/nuget-org/trusted-publishing), +which replaces long-lived API keys with short-lived, identity-based tokens issued by GitHub Actions OIDC. + +**How it works:** + +1. The publish workflow requests a GitHub OIDC token scoped to `https://www.nuget.org`. +2. That token is exchanged with the nuget.org token service for a short-lived API key. +3. Packages are pushed using that short-lived key — no long-lived secret is stored or rotated. + +**One-time setup on nuget.org:** + +Trusted Publishing is configured once for the repository and workflow — not per package. A single trusted +publisher entry covers every package pushed by the same workflow run. + +1. Sign in to [nuget.org](https://www.nuget.org) as a package owner. +2. Go to **Account settings** → **Trusted Publishers** (or navigate to any of the + [GitVersion packages](https://www.nuget.org/profiles/GitTools) and open **Manage package** → **Settings** → + **Trusted Publishers**). +3. Click **Add trusted publisher** and fill in the following fields: + + | Field | Value | + |------------------------|-----------------| + | **Publisher type** | GitHub Actions | + | **Owner** | `GitTools` | + | **Repository** | `GitVersion` | + | **Workflow file name** | `ci.yml` | + | **Environment** | *(leave blank)* | + +4. Click **Add** to save the entry. + +> **Note:** nuget.org will only issue a short-lived key when the OIDC claims from the workflow run match *all* +> registered fields exactly. A mismatch on any field (e.g. wrong workflow file name) will cause the token +> exchange to fail and the publish step will fall back to the static `NUGET_API_KEY`. + +**Verification and troubleshooting:** + +- If the OIDC token exchange fails the workflow falls back to a static `NUGET_API_KEY` environment variable + loaded from 1Password via the `gittools/cicd/nuget-creds@v1` action. Check the "Publishing to Nuget.org" log + group for error details. +- The publish job requires `id-token: write` permission, which is declared in `.github/workflows/_publish.yml`. +- If a package fails to publish with a permissions error, verify that nuget.org Trusted Publishing is configured + and that the owner, repository, and workflow file name match exactly. + ## Code Style In order to apply the code style defined by by the `.editorconfig` file you can use [`dotnet-format`](https://github.com/dotnet/format). diff --git a/GitReleaseManager.yml b/GitReleaseManager.yml index 8e0b3fb546..cd5962bedf 100644 --- a/GitReleaseManager.yml +++ b/GitReleaseManager.yml @@ -11,12 +11,6 @@ issue-labels-alias: - name: breaking change header: Breaking change plural: Breaking changes -- name: bug - header: Bug - plural: Bugs -- name: dependencies - header: Dependencies - plural: Dependencies - name: documentation header: Documentation plural: Documentation @@ -26,6 +20,12 @@ issue-labels-alias: - name: improvement header: Improvements plural: Improvements +- name: bug + header: Bug + plural: Bugs +- name: dependencies + header: Dependencies + plural: Dependencies create: include-sha-section: true sha-section-heading: "SHA256 Hashes of the release artifacts" diff --git a/README.md b/README.md index 202043f4b5..e5715077a1 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,6 @@ Versioning when using Git, solved. GitVersion looks at your git history and works out the [Semantic Version][semver] of the commit being built. -[![Build status][azure-pipeline-badge]][azure-pipeline] [![Build status][github-actions-badge]][github-actions] [![codecov][codecov-badge]][codecov] @@ -50,13 +49,9 @@ from The Noun Project. [semver]: https://semver.org -[azure-pipeline]: https://dev.azure.com/GitTools/GitVersion/_build/latest?definitionId=1 +[github-actions]: https://github.com/GitTools/GitVersion/actions/workflows/ci.yml -[azure-pipeline-badge]: https://dev.azure.com/GitTools/GitVersion/_apis/build/status/GitTools.GitVersion - -[github-actions]: https://github.com/GitTools/GitVersion/actions - -[github-actions-badge]: https://github.com/GitTools/GitVersion/workflows/CI/badge.svg +[github-actions-badge]: https://github.com/GitTools/GitVersion/actions/workflows/ci.yml/badge.svg [codecov]: https://codecov.io/gh/GitTools/GitVersion diff --git a/build/.run/Artifacts DotnetTool Test.run.xml b/build/.run/Artifacts DotnetTool Test.run.xml index ffb49db890..ac637febb2 100644 --- a/build/.run/Artifacts DotnetTool Test.run.xml +++ b/build/.run/Artifacts DotnetTool Test.run.xml @@ -15,7 +15,7 @@ <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="0" /> <option name="PROJECT_KIND" value="DotNetCore" /> - <option name="PROJECT_TFM" value="net9.0" /> + <option name="PROJECT_TFM" value="net10.0" /> <method v="2"> <option name="Build" /> </method> diff --git a/build/.run/Artifacts Executable Test.run.xml b/build/.run/Artifacts Executable Test.run.xml index 85538064f0..6e783555c6 100644 --- a/build/.run/Artifacts Executable Test.run.xml +++ b/build/.run/Artifacts Executable Test.run.xml @@ -15,9 +15,9 @@ <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="0" /> <option name="PROJECT_KIND" value="DotNetCore" /> - <option name="PROJECT_TFM" value="net9.0" /> + <option name="PROJECT_TFM" value="net10.0" /> <method v="2"> <option name="Build" /> </method> </configuration> -</component> \ No newline at end of file +</component> diff --git a/build/.run/Artifacts MsBuildCore Test.run.xml b/build/.run/Artifacts MsBuildCore Test.run.xml index 8478f08108..9c99fb04c5 100644 --- a/build/.run/Artifacts MsBuildCore Test.run.xml +++ b/build/.run/Artifacts MsBuildCore Test.run.xml @@ -15,7 +15,7 @@ <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="0" /> <option name="PROJECT_KIND" value="DotNetCore" /> - <option name="PROJECT_TFM" value="net9.0" /> + <option name="PROJECT_TFM" value="net10.0" /> <method v="2"> <option name="Build" /> </method> diff --git a/build/.run/Artifacts MsBuildFull Test.run.xml b/build/.run/Artifacts MsBuildFull Test.run.xml index 537874156c..b7f3868d0f 100644 --- a/build/.run/Artifacts MsBuildFull Test.run.xml +++ b/build/.run/Artifacts MsBuildFull Test.run.xml @@ -15,9 +15,9 @@ <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="0" /> <option name="PROJECT_KIND" value="DotNetCore" /> - <option name="PROJECT_TFM" value="net9.0" /> + <option name="PROJECT_TFM" value="net10.0" /> <method v="2"> <option name="Build" /> </method> </configuration> -</component> \ No newline at end of file +</component> diff --git a/build/.run/Artifacts Native Test.run.xml b/build/.run/Artifacts Native Test.run.xml index b7ea118f83..db24e6631a 100644 --- a/build/.run/Artifacts Native Test.run.xml +++ b/build/.run/Artifacts Native Test.run.xml @@ -15,7 +15,7 @@ <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="0" /> <option name="PROJECT_KIND" value="DotNetCore" /> - <option name="PROJECT_TFM" value="net9.0" /> + <option name="PROJECT_TFM" value="net10.0" /> <method v="2"> <option name="Build" /> </method> diff --git a/build/.run/Artifacts Prepare.run.xml b/build/.run/Artifacts Prepare.run.xml index 43c9e42042..2ca9aae938 100644 --- a/build/.run/Artifacts Prepare.run.xml +++ b/build/.run/Artifacts Prepare.run.xml @@ -15,7 +15,7 @@ <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="0" /> <option name="PROJECT_KIND" value="DotNetCore" /> - <option name="PROJECT_TFM" value="net9.0" /> + <option name="PROJECT_TFM" value="net10.0" /> <method v="2"> <option name="Build" /> </method> diff --git a/build/.run/Artifacts Test.run.xml b/build/.run/Artifacts Test.run.xml index b9807ea4a4..74ba913fd5 100644 --- a/build/.run/Artifacts Test.run.xml +++ b/build/.run/Artifacts Test.run.xml @@ -15,7 +15,7 @@ <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="0" /> <option name="PROJECT_KIND" value="DotNetCore" /> - <option name="PROJECT_TFM" value="net9.0" /> + <option name="PROJECT_TFM" value="net10.0" /> <method v="2"> <option name="Build" /> </method> diff --git a/build/.run/Build Docs.run.xml b/build/.run/Build Docs.run.xml index 43431e74bb..06a7e06e57 100644 --- a/build/.run/Build Docs.run.xml +++ b/build/.run/Build Docs.run.xml @@ -15,9 +15,9 @@ <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="0" /> <option name="PROJECT_KIND" value="DotNetCore" /> - <option name="PROJECT_TFM" value="net9.0" /> + <option name="PROJECT_TFM" value="net10.0" /> <method v="2"> <option name="Build" /> </method> </configuration> -</component> \ No newline at end of file +</component> diff --git a/build/.run/Build Prepare.run.xml b/build/.run/Build Prepare.run.xml index 2e820c42fe..e2d26b70e1 100644 --- a/build/.run/Build Prepare.run.xml +++ b/build/.run/Build Prepare.run.xml @@ -6,16 +6,20 @@ <option name="PASS_PARENT_ENVS" value="1" /> <envs> <env name="DOTNET_ROLL_FORWARD" value="Major" /> + <env name="ENABLED_DIAGNOSTICS" value="false" /> </envs> - <option name="USE_EXTERNAL_CONSOLE" value="0" /> + <option name="ENV_FILE_PATHS" value="" /> + <option name="REDIRECT_INPUT_PATH" value="" /> + <option name="MIXED_MODE_DEBUG" value="0" /> <option name="USE_MONO" value="0" /> <option name="RUNTIME_ARGUMENTS" value="" /> + <option name="AUTO_ATTACH_CHILDREN" value="0" /> <option name="PROJECT_PATH" value="$PROJECT_DIR$/build/build.csproj" /> <option name="PROJECT_EXE_PATH_TRACKING" value="1" /> <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="0" /> <option name="PROJECT_KIND" value="DotNetCore" /> - <option name="PROJECT_TFM" value="net9.0" /> + <option name="PROJECT_TFM" value="net10.0" /> <method v="2"> <option name="Build" /> </method> diff --git a/build/.run/Build.run.xml b/build/.run/Build.run.xml index e178484aae..0dc4e8dcaf 100644 --- a/build/.run/Build.run.xml +++ b/build/.run/Build.run.xml @@ -15,9 +15,9 @@ <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="0" /> <option name="PROJECT_KIND" value="DotNetCore" /> - <option name="PROJECT_TFM" value="net9.0" /> + <option name="PROJECT_TFM" value="net10.0" /> <method v="2"> <option name="Build" /> </method> </configuration> -</component> \ No newline at end of file +</component> diff --git a/build/.run/Clean.run.xml b/build/.run/Clean.run.xml index d1c8841cc2..a868440dcb 100644 --- a/build/.run/Clean.run.xml +++ b/build/.run/Clean.run.xml @@ -15,9 +15,9 @@ <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="0" /> <option name="PROJECT_KIND" value="DotNetCore" /> - <option name="PROJECT_TFM" value="net9.0" /> + <option name="PROJECT_TFM" value="net10.0" /> <method v="2"> <option name="Build" /> </method> </configuration> -</component> \ No newline at end of file +</component> diff --git a/build/.run/Code Format.run.xml b/build/.run/Code Format.run.xml index 560927676b..1766cb3588 100644 --- a/build/.run/Code Format.run.xml +++ b/build/.run/Code Format.run.xml @@ -15,9 +15,9 @@ <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="0" /> <option name="PROJECT_KIND" value="DotNetCore" /> - <option name="PROJECT_TFM" value="net9.0" /> + <option name="PROJECT_TFM" value="net10.0" /> <method v="2"> <option name="Build" /> </method> </configuration> -</component> \ No newline at end of file +</component> diff --git a/build/.run/Default Artifacts.run.xml b/build/.run/Default Artifacts.run.xml index fe2a2c7a99..e4d3a3d141 100644 --- a/build/.run/Default Artifacts.run.xml +++ b/build/.run/Default Artifacts.run.xml @@ -15,9 +15,9 @@ <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="0" /> <option name="PROJECT_KIND" value="DotNetCore" /> - <option name="PROJECT_TFM" value="net9.0" /> + <option name="PROJECT_TFM" value="net10.0" /> <method v="2"> <option name="Build" /> </method> </configuration> -</component> \ No newline at end of file +</component> diff --git a/build/.run/Default Build.run.xml b/build/.run/Default Build.run.xml index 6abaa465f3..e57f500364 100644 --- a/build/.run/Default Build.run.xml +++ b/build/.run/Default Build.run.xml @@ -15,9 +15,9 @@ <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="0" /> <option name="PROJECT_KIND" value="DotNetCore" /> - <option name="PROJECT_TFM" value="net9.0" /> + <option name="PROJECT_TFM" value="net10.0" /> <method v="2"> <option name="Build" /> </method> </configuration> -</component> \ No newline at end of file +</component> diff --git a/build/.run/Default Config.run.xml b/build/.run/Default Config.run.xml index 1d2cb9fab3..110139461a 100644 --- a/build/.run/Default Config.run.xml +++ b/build/.run/Default Config.run.xml @@ -15,9 +15,9 @@ <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="0" /> <option name="PROJECT_KIND" value="DotNetCore" /> - <option name="PROJECT_TFM" value="net9.0" /> + <option name="PROJECT_TFM" value="net10.0" /> <method v="2"> <option name="Build" /> </method> </configuration> -</component> \ No newline at end of file +</component> diff --git a/build/.run/Default Docker.run.xml b/build/.run/Default Docker.run.xml index 461aaa85bc..679c299eaf 100644 --- a/build/.run/Default Docker.run.xml +++ b/build/.run/Default Docker.run.xml @@ -15,9 +15,9 @@ <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="0" /> <option name="PROJECT_KIND" value="DotNetCore" /> - <option name="PROJECT_TFM" value="net9.0" /> + <option name="PROJECT_TFM" value="net10.0" /> <method v="2"> <option name="Build" /> </method> </configuration> -</component> \ No newline at end of file +</component> diff --git a/build/.run/Default Docs.run.xml b/build/.run/Default Docs.run.xml index b4ea267b7b..c4e4f37498 100644 --- a/build/.run/Default Docs.run.xml +++ b/build/.run/Default Docs.run.xml @@ -15,9 +15,9 @@ <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="0" /> <option name="PROJECT_KIND" value="DotNetCore" /> - <option name="PROJECT_TFM" value="net9.0" /> + <option name="PROJECT_TFM" value="net10.0" /> <method v="2"> <option name="Build" /> </method> </configuration> -</component> \ No newline at end of file +</component> diff --git a/build/.run/Default Publish.run.xml b/build/.run/Default Publish.run.xml index 03f349b259..0312d93626 100644 --- a/build/.run/Default Publish.run.xml +++ b/build/.run/Default Publish.run.xml @@ -15,9 +15,9 @@ <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="0" /> <option name="PROJECT_KIND" value="DotNetCore" /> - <option name="PROJECT_TFM" value="net9.0" /> + <option name="PROJECT_TFM" value="net10.0" /> <method v="2"> <option name="Build" /> </method> </configuration> -</component> \ No newline at end of file +</component> diff --git a/build/.run/Docker Build.run.xml b/build/.run/Docker Build.run.xml index b2da1eadd5..dddb517c18 100644 --- a/build/.run/Docker Build.run.xml +++ b/build/.run/Docker Build.run.xml @@ -15,7 +15,7 @@ <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="0" /> <option name="PROJECT_KIND" value="DotNetCore" /> - <option name="PROJECT_TFM" value="net9.0" /> + <option name="PROJECT_TFM" value="net10.0" /> <method v="2"> <option name="Build" /> </method> diff --git a/build/.run/Docker Manifest.run.xml b/build/.run/Docker Manifest.run.xml index deb625e045..7bac96983b 100644 --- a/build/.run/Docker Manifest.run.xml +++ b/build/.run/Docker Manifest.run.xml @@ -15,7 +15,7 @@ <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="0" /> <option name="PROJECT_KIND" value="DotNetCore" /> - <option name="PROJECT_TFM" value="net9.0" /> + <option name="PROJECT_TFM" value="net10.0" /> <method v="2"> <option name="Build" /> </method> diff --git a/build/.run/Docker Publish.run.xml b/build/.run/Docker Publish.run.xml index 25a5f9d7a7..3bea5a43de 100644 --- a/build/.run/Docker Publish.run.xml +++ b/build/.run/Docker Publish.run.xml @@ -15,7 +15,7 @@ <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="0" /> <option name="PROJECT_KIND" value="DotNetCore" /> - <option name="PROJECT_TFM" value="net9.0" /> + <option name="PROJECT_TFM" value="net10.0" /> <method v="2"> <option name="Build" /> </method> diff --git a/build/.run/Docker Test.run.xml b/build/.run/Docker Test.run.xml index f7664d6759..d821ef967d 100644 --- a/build/.run/Docker Test.run.xml +++ b/build/.run/Docker Test.run.xml @@ -15,7 +15,7 @@ <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="0" /> <option name="PROJECT_KIND" value="DotNetCore" /> - <option name="PROJECT_TFM" value="net9.0" /> + <option name="PROJECT_TFM" value="net10.0" /> <method v="2"> <option name="Build" /> </method> diff --git a/build/.run/DockerHub Readme Publish.run.xml b/build/.run/DockerHub Readme Publish.run.xml index 4ac6c97d64..dcae856c01 100644 --- a/build/.run/DockerHub Readme Publish.run.xml +++ b/build/.run/DockerHub Readme Publish.run.xml @@ -17,9 +17,9 @@ <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="0" /> <option name="PROJECT_KIND" value="DotNetCore" /> - <option name="PROJECT_TFM" value="net9.0" /> + <option name="PROJECT_TFM" value="net10.0" /> <method v="2"> <option name="Build" /> </method> </configuration> -</component> \ No newline at end of file +</component> diff --git a/build/.run/Generate Schemas.run.xml b/build/.run/Generate Schemas.run.xml index e009ddc54a..cacf21449e 100644 --- a/build/.run/Generate Schemas.run.xml +++ b/build/.run/Generate Schemas.run.xml @@ -7,18 +7,20 @@ <envs> <env name="DOTNET_ROLL_FORWARD" value="Major" /> </envs> - <option name="USE_EXTERNAL_CONSOLE" value="0" /> + <option name="ENV_FILE_PATHS" value="" /> + <option name="REDIRECT_INPUT_PATH" value="" /> + <option name="MIXED_MODE_DEBUG" value="0" /> <option name="USE_MONO" value="0" /> <option name="RUNTIME_ARGUMENTS" value="" /> + <option name="AUTO_ATTACH_CHILDREN" value="0" /> <option name="PROJECT_PATH" value="$PROJECT_DIR$/docs/docs.csproj" /> <option name="PROJECT_EXE_PATH_TRACKING" value="1" /> <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="0" /> <option name="PROJECT_KIND" value="DotNetCore" /> - <option name="PROJECT_TFM" value="net9.0" /> + <option name="PROJECT_TFM" value="net10.0" /> <method v="2"> <option name="Build" /> - <option name="RunConfigurationTask" enabled="false" run_configuration_name="Build Prepare" run_configuration_type="DotNetProject" /> </method> </configuration> </component> \ No newline at end of file diff --git a/build/.run/Package Archive.run.xml b/build/.run/Package Archive.run.xml index fa6cca1b56..bea73dddb4 100644 --- a/build/.run/Package Archive.run.xml +++ b/build/.run/Package Archive.run.xml @@ -15,9 +15,9 @@ <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="0" /> <option name="PROJECT_KIND" value="DotNetCore" /> - <option name="PROJECT_TFM" value="net9.0" /> + <option name="PROJECT_TFM" value="net10.0" /> <method v="2"> <option name="Build" /> </method> </configuration> -</component> \ No newline at end of file +</component> diff --git a/build/.run/Package Chocolatey.run.xml b/build/.run/Package Chocolatey.run.xml index 88b86ef25c..85c6b81350 100644 --- a/build/.run/Package Chocolatey.run.xml +++ b/build/.run/Package Chocolatey.run.xml @@ -15,9 +15,9 @@ <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="0" /> <option name="PROJECT_KIND" value="DotNetCore" /> - <option name="PROJECT_TFM" value="net9.0" /> + <option name="PROJECT_TFM" value="net10.0" /> <method v="2"> <option name="Build" /> </method> </configuration> -</component> \ No newline at end of file +</component> diff --git a/build/.run/Package Nuget.run.xml b/build/.run/Package Nuget.run.xml index 841a3a4fc8..b53ba74eb4 100644 --- a/build/.run/Package Nuget.run.xml +++ b/build/.run/Package Nuget.run.xml @@ -15,9 +15,9 @@ <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="0" /> <option name="PROJECT_KIND" value="DotNetCore" /> - <option name="PROJECT_TFM" value="net9.0" /> + <option name="PROJECT_TFM" value="net10.0" /> <method v="2"> <option name="Build" /> </method> </configuration> -</component> \ No newline at end of file +</component> diff --git a/build/.run/Package Prepare.run.xml b/build/.run/Package Prepare.run.xml index 9c72d75e52..37df46f54a 100644 --- a/build/.run/Package Prepare.run.xml +++ b/build/.run/Package Prepare.run.xml @@ -15,9 +15,9 @@ <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="0" /> <option name="PROJECT_KIND" value="DotNetCore" /> - <option name="PROJECT_TFM" value="net9.0" /> + <option name="PROJECT_TFM" value="net10.0" /> <method v="2"> <option name="Build" /> </method> </configuration> -</component> \ No newline at end of file +</component> diff --git a/build/.run/Package.run.xml b/build/.run/Package.run.xml index ecb147deb9..28628d18e8 100644 --- a/build/.run/Package.run.xml +++ b/build/.run/Package.run.xml @@ -15,9 +15,9 @@ <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="0" /> <option name="PROJECT_KIND" value="DotNetCore" /> - <option name="PROJECT_TFM" value="net9.0" /> + <option name="PROJECT_TFM" value="net10.0" /> <method v="2"> <option name="Build" /> </method> </configuration> -</component> \ No newline at end of file +</component> diff --git a/build/.run/Preview Docs.run.xml b/build/.run/Preview Docs.run.xml index d0bd79cb9e..ddd3ea3588 100644 --- a/build/.run/Preview Docs.run.xml +++ b/build/.run/Preview Docs.run.xml @@ -15,9 +15,9 @@ <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="0" /> <option name="PROJECT_KIND" value="DotNetCore" /> - <option name="PROJECT_TFM" value="net9.0" /> + <option name="PROJECT_TFM" value="net10.0" /> <method v="2"> <option name="Build" /> </method> </configuration> -</component> \ No newline at end of file +</component> diff --git a/build/.run/Publish Chocolatey.run.xml b/build/.run/Publish Chocolatey.run.xml index 1dae103da1..0dc1784c12 100644 --- a/build/.run/Publish Chocolatey.run.xml +++ b/build/.run/Publish Chocolatey.run.xml @@ -16,9 +16,9 @@ <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="0" /> <option name="PROJECT_KIND" value="DotNetCore" /> - <option name="PROJECT_TFM" value="net9.0" /> + <option name="PROJECT_TFM" value="net10.0" /> <method v="2"> <option name="Build" /> </method> </configuration> -</component> \ No newline at end of file +</component> diff --git a/build/.run/Publish Docs.run.xml b/build/.run/Publish Docs.run.xml index 22ceca648b..520df9453c 100644 --- a/build/.run/Publish Docs.run.xml +++ b/build/.run/Publish Docs.run.xml @@ -15,9 +15,9 @@ <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="0" /> <option name="PROJECT_KIND" value="DotNetCore" /> - <option name="PROJECT_TFM" value="net9.0" /> + <option name="PROJECT_TFM" value="net10.0" /> <method v="2"> <option name="Build" /> </method> </configuration> -</component> \ No newline at end of file +</component> diff --git a/build/.run/Publish Nuget.run.xml b/build/.run/Publish Nuget.run.xml index 1e1bb97cb2..60c309b33f 100644 --- a/build/.run/Publish Nuget.run.xml +++ b/build/.run/Publish Nuget.run.xml @@ -16,9 +16,9 @@ <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="0" /> <option name="PROJECT_KIND" value="DotNetCore" /> - <option name="PROJECT_TFM" value="net9.0" /> + <option name="PROJECT_TFM" value="net10.0" /> <method v="2"> <option name="Build" /> </method> </configuration> -</component> \ No newline at end of file +</component> diff --git a/build/.run/Publish Release.run.xml b/build/.run/Publish Release.run.xml index a6b1e66b5a..683971553a 100644 --- a/build/.run/Publish Release.run.xml +++ b/build/.run/Publish Release.run.xml @@ -15,9 +15,9 @@ <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="0" /> <option name="PROJECT_KIND" value="DotNetCore" /> - <option name="PROJECT_TFM" value="net9.0" /> + <option name="PROJECT_TFM" value="net10.0" /> <method v="2"> <option name="Build" /> </method> </configuration> -</component> \ No newline at end of file +</component> diff --git a/build/.run/PublishCoverage.run.xml b/build/.run/PublishCoverage.run.xml index 1b2c752e41..e9b2e989db 100644 --- a/build/.run/PublishCoverage.run.xml +++ b/build/.run/PublishCoverage.run.xml @@ -16,7 +16,7 @@ <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="0" /> <option name="PROJECT_KIND" value="DotNetCore" /> - <option name="PROJECT_TFM" value="net9.0" /> + <option name="PROJECT_TFM" value="net10.0" /> <method v="2"> <option name="Build" /> </method> diff --git a/build/.run/SetMatrix.run.xml b/build/.run/SetMatrix.run.xml index 2ee4920e9a..b493f9b517 100644 --- a/build/.run/SetMatrix.run.xml +++ b/build/.run/SetMatrix.run.xml @@ -12,9 +12,9 @@ <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="0" /> <option name="PROJECT_KIND" value="DotNetCore" /> - <option name="PROJECT_TFM" value="net9.0" /> + <option name="PROJECT_TFM" value="net10.0" /> <method v="2"> <option name="Build" /> </method> </configuration> -</component> \ No newline at end of file +</component> diff --git a/build/.run/Test.run.xml b/build/.run/Test.run.xml index 2a2db6d92e..189aad3587 100644 --- a/build/.run/Test.run.xml +++ b/build/.run/Test.run.xml @@ -15,9 +15,9 @@ <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="0" /> <option name="PROJECT_KIND" value="DotNetCore" /> - <option name="PROJECT_TFM" value="net9.0" /> + <option name="PROJECT_TFM" value="net10.0" /> <method v="2"> <option name="Build" /> </method> </configuration> -</component> \ No newline at end of file +</component> diff --git a/build/.run/UnitTest (8.0).run.xml b/build/.run/UnitTest (8.0).run.xml index 2c39db1e1c..dfeefaa35d 100644 --- a/build/.run/UnitTest (8.0).run.xml +++ b/build/.run/UnitTest (8.0).run.xml @@ -1,20 +1,26 @@ <component name="ProjectRunConfigurationManager"> - <configuration default="false" name="UnitTest (Lts Latest)" type="DotNetProject" factoryName=".NET Project" folderName="Unit Test"> + <configuration default="false" name="UnitTest (8.0)" type="DotNetProject" factoryName=".NET Project" folderName="Unit Test"> <option name="EXE_PATH" value="$PROJECT_DIR$/../run/build" /> - <option name="PROGRAM_PARAMETERS" value="--target=UnitTest --dotnet_version=lts-latest" /> + <option name="PROGRAM_PARAMETERS" value="--target=UnitTest --dotnet_version=8.0" /> <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/.." /> <option name="PASS_PARENT_ENVS" value="1" /> - <option name="USE_EXTERNAL_CONSOLE" value="0" /> + <envs> + <env name="DOTNET_ROLL_FORWARD" value="Major" /> + </envs> + <option name="ENV_FILE_PATHS" value="" /> + <option name="REDIRECT_INPUT_PATH" value="" /> + <option name="MIXED_MODE_DEBUG" value="0" /> <option name="USE_MONO" value="0" /> <option name="RUNTIME_ARGUMENTS" value="" /> + <option name="AUTO_ATTACH_CHILDREN" value="0" /> <option name="PROJECT_PATH" value="$PROJECT_DIR$/build/build.csproj" /> <option name="PROJECT_EXE_PATH_TRACKING" value="1" /> <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="0" /> <option name="PROJECT_KIND" value="DotNetCore" /> - <option name="PROJECT_TFM" value="net9.0" /> + <option name="PROJECT_TFM" value="net10.0" /> <method v="2"> <option name="Build" /> </method> </configuration> -</component> +</component> \ No newline at end of file diff --git a/build/.run/UnitTest (9.0).run.xml b/build/.run/UnitTest (9.0).run.xml index e9702af0a9..9b6dbafd7b 100644 --- a/build/.run/UnitTest (9.0).run.xml +++ b/build/.run/UnitTest (9.0).run.xml @@ -15,9 +15,9 @@ <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="0" /> <option name="PROJECT_KIND" value="DotNetCore" /> - <option name="PROJECT_TFM" value="net9.0" /> + <option name="PROJECT_TFM" value="net10.0" /> <method v="2"> <option name="Build" /> </method> </configuration> -</component> \ No newline at end of file +</component> diff --git a/build/.run/UnitTest (Lts Latest).run.xml b/build/.run/UnitTest (Lts Latest).run.xml new file mode 100644 index 0000000000..d10fff56d7 --- /dev/null +++ b/build/.run/UnitTest (Lts Latest).run.xml @@ -0,0 +1,23 @@ +<component name="ProjectRunConfigurationManager"> + <configuration default="false" name="UnitTest (Lts Latest)" type="DotNetProject" factoryName=".NET Project" folderName="Unit Test"> + <option name="EXE_PATH" value="$PROJECT_DIR$/../run/build" /> + <option name="PROGRAM_PARAMETERS" value="--target=UnitTest --dotnet_version=lts-latest" /> + <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/.." /> + <option name="PASS_PARENT_ENVS" value="1" /> + <option name="ENV_FILE_PATHS" value="" /> + <option name="REDIRECT_INPUT_PATH" value="" /> + <option name="MIXED_MODE_DEBUG" value="0" /> + <option name="USE_MONO" value="0" /> + <option name="RUNTIME_ARGUMENTS" value="" /> + <option name="AUTO_ATTACH_CHILDREN" value="0" /> + <option name="PROJECT_PATH" value="$PROJECT_DIR$/build/build.csproj" /> + <option name="PROJECT_EXE_PATH_TRACKING" value="1" /> + <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> + <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="0" /> + <option name="PROJECT_KIND" value="DotNetCore" /> + <option name="PROJECT_TFM" value="net10.0" /> + <method v="2"> + <option name="Build" /> + </method> + </configuration> +</component> \ No newline at end of file diff --git a/build/.run/Validate Version.run.xml b/build/.run/Validate Version.run.xml index 527061c25e..fc7fc77ccd 100644 --- a/build/.run/Validate Version.run.xml +++ b/build/.run/Validate Version.run.xml @@ -15,9 +15,9 @@ <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="0" /> <option name="PROJECT_KIND" value="DotNetCore" /> - <option name="PROJECT_TFM" value="net9.0" /> + <option name="PROJECT_TFM" value="net10.0" /> <method v="2"> <option name="Build" /> </method> </configuration> -</component> \ No newline at end of file +</component> diff --git a/build/CI.slnx b/build/CI.slnx index 15846bf628..dc657f4ee8 100644 --- a/build/CI.slnx +++ b/build/CI.slnx @@ -1,23 +1,4 @@ <Solution> - <Folder Name="/actions/" /> - <Folder Name="/actions/artifacts-attest/"> - <File Path="../.github/actions/artifacts-attest/action.yml" /> - </Folder> - <Folder Name="/actions/artifacts-restore/"> - <File Path="../.github/actions/artifacts-restore/action.yml" /> - </Folder> - <Folder Name="/actions/cache-restore/"> - <File Path="../.github/actions/cache-restore/action.yml" /> - </Folder> - <Folder Name="/actions/docker-manifests/"> - <File Path="../.github/actions/docker-manifests/action.yml" /> - </Folder> - <Folder Name="/actions/docker-publish/"> - <File Path="../.github/actions/docker-publish/action.yml" /> - </Folder> - <Folder Name="/actions/docker-test/"> - <File Path="../.github/actions/docker-test/action.yml" /> - </Folder> <Folder Name="/scripts/"> <File Path="../tests/scripts/test-global-tool.sh" /> <File Path="../tests/scripts/test-msbuild-task.sh" /> @@ -34,31 +15,6 @@ <File Path="Directory.Build.props" /> <File Path="Directory.Packages.props" /> </Folder> - <Folder Name="/workflows/"> - <File Path="../.github/dependabot.yml" /> - <File Path="../.github/workflows/ci.yml" /> - <File Path="../.github/workflows/codeql-analysis.yml" /> - <File Path="../.github/workflows/docs.yml" /> - <File Path="../.github/workflows/format.yml" /> - <File Path="../.github/workflows/homebrew.yml" /> - <File Path="../.github/workflows/mkdocs.yml" /> - <File Path="../.github/workflows/new-cli.yml" /> - <File Path="../.github/workflows/public-api.yml" /> - <File Path="../.github/workflows/release.yml" /> - <File Path="../.github/workflows/stale.yml" /> - <File Path="../.github/workflows/winget.yml" /> - <File Path="../.github/workflows/qodana_analysis.yml" /> - </Folder> - <Folder Name="/workflows/_/"> - <File Path="../.github/workflows/_artifacts_linux.yml" /> - <File Path="../.github/workflows/_artifacts_windows.yml" /> - <File Path="../.github/workflows/_build.yml" /> - <File Path="../.github/workflows/_docker.yml" /> - <File Path="../.github/workflows/_docker_manifests.yml" /> - <File Path="../.github/workflows/_prepare.yml" /> - <File Path="../.github/workflows/_publish.yml" /> - <File Path="../.github/workflows/_unit_tests.yml" /> - </Folder> <Project Path="artifacts/artifacts.csproj" /> <Project Path="build/build.csproj" /> <Project Path="common/common.csproj" /> diff --git a/build/Directory.Build.props b/build/Directory.Build.props index 9b2f07e792..717a7004bf 100644 --- a/build/Directory.Build.props +++ b/build/Directory.Build.props @@ -1,7 +1,7 @@ <Project> <PropertyGroup> <OutputType>Exe</OutputType> - <TargetFramework>net9.0</TargetFramework> + <TargetFramework>net10.0</TargetFramework> <RunWorkingDirectory>$(MSBuildProjectDirectory)</RunWorkingDirectory> <OutputPath>..\..\run\</OutputPath> <AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath> diff --git a/build/Directory.Packages.props b/build/Directory.Packages.props index fc7aee8992..daeee9559b 100644 --- a/build/Directory.Packages.props +++ b/build/Directory.Packages.props @@ -4,14 +4,14 @@ </PropertyGroup> <ItemGroup> <PackageVersion Include="Cake.Compression" Version="0.4.0" /> - <PackageVersion Include="Cake.Codecov" Version="3.0.0" /> - <PackageVersion Include="Cake.Coverlet" Version="5.1.1" /> - <PackageVersion Include="Cake.Frosting" Version="5.1.0" /> + <PackageVersion Include="Cake.Codecov" Version="6.0.0" /> + <PackageVersion Include="Cake.Coverlet" Version="6.0.1" /> + <PackageVersion Include="Cake.Frosting" Version="6.2.0" /> <PackageVersion Include="Cake.Frosting.Git" Version="5.0.1" /> <PackageVersion Include="Cake.Http" Version="5.1.0" /> - <PackageVersion Include="Cake.Incubator" Version="10.0.0" /> + <PackageVersion Include="Cake.Incubator" Version="11.0.0" /> <PackageVersion Include="Cake.DotNetLocalTools.Module" Version="3.0.12" /> - <PackageVersion Include="Cake.Docker" Version="1.3.0" /> + <PackageVersion Include="Cake.Docker" Version="1.5.0" /> <PackageVersion Include="Cake.Json" Version="7.0.1" /> <PackageVersion Include="Cake.Npx" Version="1.7.0" /> <PackageVersion Include="Cake.Wyam" Version="2.2.14" /> diff --git a/build/artifacts/BuildLifetime.cs b/build/artifacts/BuildLifetime.cs index 5b74fe09c0..5180ac9eae 100644 --- a/build/artifacts/BuildLifetime.cs +++ b/build/artifacts/BuildLifetime.cs @@ -1,8 +1,21 @@ +using Artifacts.Tasks; using Common.Lifetime; +using Common.Utilities; namespace Artifacts; public class BuildLifetime : DockerBuildLifetime<BuildContext> { protected override bool UseBaseImage => true; + + public override void Setup(BuildContext context, ISetupContext info) + { + var target = context.Argument("target", "Default"); + if (target.IsEqualInvariant(nameof(ArtifactsMsBuildFullTest)) || target.IsEqualInvariant(nameof(ArtifactsExecutableTest))) + { + context.UseDocker = false; + } + + base.Setup(context, info); + } } diff --git a/build/artifacts/Tasks/ArtifactsMsBuildFullTest.cs b/build/artifacts/Tasks/ArtifactsMsBuildFullTest.cs index f4d34e623e..07bb9e376a 100644 --- a/build/artifacts/Tasks/ArtifactsMsBuildFullTest.cs +++ b/build/artifacts/Tasks/ArtifactsMsBuildFullTest.cs @@ -19,6 +19,7 @@ public override void Run(BuildContext context) if (context.Version == null) return; var version = context.Version.NugetVersion; + var fullSemVer = context.Version.GitVersion.FullSemVer; var nugetSource = context.MakeAbsolute(Paths.Nuget).FullPath; @@ -40,7 +41,27 @@ public override void Run(BuildContext context) }); var exe = Paths.Integration.Combine("build").Combine(framework).CombineWithFilePath("app.dll"); - context.ValidateOutput("dotnet", exe.FullPath, context.Version.GitVersion.FullSemVer); + context.ValidateOutput("dotnet", exe.FullPath, fullSemVer); + + context.Information("\nTesting msbuild task with msbuild (for full framework)\n"); + + var msBuildSettings = new MSBuildSettings + { + Verbosity = Verbosity.Minimal, + Configuration = context.MsBuildConfiguration, + ToolVersion = MSBuildToolVersion.VS2026, + Restore = true, + PlatformTarget = PlatformTarget.MSIL, + }; + + msBuildSettings.WithProperty("GitVersionMsBuildVersion", version); + msBuildSettings.WithProperty("RestoreSource", nugetSource); + msBuildSettings.WithProperty("TargetFramework", framework); + + context.MSBuild(projPath.FullPath, msBuildSettings); + + var fullExe = Paths.Integration.Combine("build").Combine(framework).CombineWithFilePath("app.exe"); + context.ValidateOutput(fullExe.FullPath, null, fullSemVer); } } } diff --git a/build/build/BuildLifetime.cs b/build/build/BuildLifetime.cs index 5f0f0dc943..bf52c91af8 100644 --- a/build/build/BuildLifetime.cs +++ b/build/build/BuildLifetime.cs @@ -1,6 +1,7 @@ using Build.Utilities; using Common.Lifetime; using Common.Utilities; +using EnvVars = Build.Utilities.EnvVars; namespace Build; diff --git a/build/build/Tasks/Package/PackagePrepare.cs b/build/build/Tasks/Package/PackagePrepare.cs index 096384779f..0f32b29f08 100644 --- a/build/build/Tasks/Package/PackagePrepare.cs +++ b/build/build/Tasks/Package/PackagePrepare.cs @@ -12,7 +12,7 @@ public override void Run(BuildContext context) { PackPrepareNative(context); - var sourceDir = Paths.Native.Combine(PlatformFamily.Windows.ToString()).Combine("win-x64"); + var sourceDir = Paths.Native.Combine(nameof(PlatformFamily.Windows)).Combine("win-x64"); var sourceFiles = context.GetFiles(sourceDir + "/*.*"); var portableDir = Paths.ArtifactsBinPortable.Combine("tools"); diff --git a/build/build/Tasks/Test/PublishCoverage.cs b/build/build/Tasks/Test/PublishCoverage.cs index 6f754c72d6..29df05aab6 100644 --- a/build/build/Tasks/Test/PublishCoverage.cs +++ b/build/build/Tasks/Test/PublishCoverage.cs @@ -20,7 +20,7 @@ public override bool ShouldRun(BuildContext context) public override void Run(BuildContext context) { var coverageFiles = context - .GetFiles($"{Paths.TestOutput}/*.coverage.*.xml") + .GetFiles($"{Paths.Src}/**/coverage.*.xml") .Select(file => context.MakeRelative(file).ToString()).ToArray(); var token = context.Credentials?.CodeCov?.Token; @@ -29,6 +29,12 @@ public override void Run(BuildContext context) throw new InvalidOperationException("Could not resolve CodeCov token."); } + if (coverageFiles.Length == 0) + { + context.Warning("No coverage files found."); + return; + } + context.Codecov(new CodecovSettings { Files = coverageFiles, diff --git a/build/build/Tasks/Test/UnitTest.cs b/build/build/Tasks/Test/UnitTest.cs index e66f91b2e9..b8466e2bdd 100644 --- a/build/build/Tasks/Test/UnitTest.cs +++ b/build/build/Tasks/Test/UnitTest.cs @@ -1,6 +1,4 @@ -using Cake.Common.Build.AzurePipelines.Data; using Cake.Common.Tools.DotNet.Test; -using Cake.Coverlet; using Cake.Incubator.LoggingExtensions; using Common.Utilities; @@ -49,45 +47,33 @@ public override void OnError(Exception exception, BuildContext context) throw exception; } - public override void Finally(BuildContext context) - { - var testResultsFiles = context.GetFiles($"{Paths.TestOutput}/*.results.xml"); - if (!context.IsAzurePipelineBuild || testResultsFiles.Count == 0) return; - - var data = new AzurePipelinesPublishTestResultsData - { - TestResultsFiles = testResultsFiles.ToArray(), - Platform = context.Platform.ToString(), - TestRunner = AzurePipelinesTestRunnerType.JUnit - }; - context.BuildSystem().AzurePipelines.Commands.PublishTestResults(data); - } - private static void TestProjectForTarget(BuildContext context, FilePath project, string framework) { var testResultsPath = Paths.TestOutput; - var projectName = $"{project.GetFilenameWithoutExtension()}.net{framework}"; + var projectName = $"{project.GetFilenameWithoutExtension()}"; var settings = new DotNetTestSettings { + PathType = DotNetTestPathType.Project, Framework = $"net{framework}", - NoBuild = true, - NoRestore = true, + NoBuild = false, + NoRestore = false, Configuration = context.MsBuildConfiguration, - TestAdapterPath = new(".") + MSBuildSettings = new() }; + settings.MSBuildSettings.SetContinuousIntegrationBuild(false); - var resultsPath = context.MakeAbsolute(testResultsPath.CombineWithFilePath($"{projectName}.results.xml")); - settings.Loggers = [$"junit;LogFilePath={resultsPath}"]; + var resultsDirectory = context.MakeAbsolute(testResultsPath.Combine(projectName)); - var coverletSettings = new CoverletSettings - { - CollectCoverage = true, - CoverletOutputFormat = CoverletOutputFormat.cobertura, - CoverletOutputDirectory = testResultsPath, - CoverletOutputName = $"{projectName}.coverage.xml", - Exclude = ["[GitVersion*.Tests]*", "[GitTools.Testing]*"] - }; + settings.WithArgumentCustomization(args => args + .Append("--report-spekt-junit") + .Append("--report-spekt-junit-filename").AppendQuoted(resultsDirectory.CombineWithFilePath("results.xml").FullPath) + .Append("--results-directory").AppendQuoted(resultsDirectory.FullPath) + .Append("--coverlet") + .Append("--coverlet-output-format").AppendQuoted("cobertura") + .Append("--coverlet-exclude").AppendQuoted("[GitVersion*.Tests]*") + .Append("--coverlet-exclude").AppendQuoted("[GitVersion.Testing]*") + ); - context.DotNetTest(project.FullPath, settings, coverletSettings); + context.DotNetTest(project.FullPath, settings); } } diff --git a/build/build/Utilities/EnvVars.cs b/build/build/Utilities/EnvVars.cs index 3dcfe2428b..30a84d83a4 100644 --- a/build/build/Utilities/EnvVars.cs +++ b/build/build/Utilities/EnvVars.cs @@ -1,6 +1,6 @@ namespace Build.Utilities; -public class EnvVars +public class EnvVars : Common.Utilities.EnvVars { public const string EnabledUnitTests = "ENABLED_UNIT_TESTS"; } diff --git a/build/common/Addins/GitVersion/GitVersion.cs b/build/common/Addins/GitVersion/GitVersion.cs index a6fd1d1bc1..c58a74bf31 100644 --- a/build/common/Addins/GitVersion/GitVersion.cs +++ b/build/common/Addins/GitVersion/GitVersion.cs @@ -6,97 +6,143 @@ namespace Common.Addins.GitVersion; public sealed class GitVersion { /// <summary> - /// Gets or sets the major version. + /// Gets or sets the assembly semantic file version. Suitable for .NET AssemblyFileVersion. Defaults to Major.Minor.Patch.0. /// </summary> - public int Major { get; set; } + public string? AssemblySemFileVer { get; set; } /// <summary> - /// Gets or sets the minor version. + /// Gets or sets the assembly Semantic Version. Suitable for .NET AssemblyVersion. Defaults to Major.Minor.0.0. /// </summary> - public int Minor { get; set; } + public string? AssemblySemVer { get; set; } /// <summary> - /// Gets or sets the patch version. + /// Gets or sets the branch name. The name of the checked out Git branch. /// </summary> - public int Patch { get; set; } + public string? BranchName { get; set; } /// <summary> - /// Gets or sets the pre-release tag. + /// Gets or sets the build metadata, usually representing number of commits since the VersionSourceSha. /// </summary> - public string? PreReleaseTag { get; set; } + public int? BuildMetaData { get; set; } /// <summary> - /// Gets or sets the pre-release tag with dash. + /// Gets or sets the commit date. The ISO-8601 formatted date of the commit identified by Sha. /// </summary> - public string? PreReleaseTagWithDash { get; set; } + public string? CommitDate { get; set; } /// <summary> - /// Gets or sets the pre-release label. + /// Gets or sets the commits since version source. /// </summary> - public string? PreReleaseLabel { get; set; } + [Obsolete("CommitsSinceVersionSource has been deprecated. Use VersionSourceDistance instead.")] + public int? CommitsSinceVersionSource { get; set; } /// <summary> - /// Gets or sets the pre-release number. + /// Gets or sets the escaped branch name. Equal to BranchName, but with / replaced with -. /// </summary> - public int? PreReleaseNumber { get; set; } + public string? EscapedBranchName { get; set; } /// <summary> - /// Gets or sets the build metadata. + /// Gets or sets the full build metadata. The BuildMetaData suffixed with BranchName and Sha. /// </summary> - public string? BuildMetaData { get; set; } + public string? FullBuildMetaData { get; set; } /// <summary> - /// Gets or sets the major version. + /// Gets or sets the full Semantic Version. The full, SemVer 2.0 compliant version number. /// </summary> - public string? FullBuildMetaData { get; set; } + public string? FullSemVer { get; set; } + + /// <summary> + /// Gets or sets the informational version. Suitable for .NET AssemblyInformationalVersion. Defaults to FullSemVer suffixed by FullBuildMetaData. + /// </summary> + public string? InformationalVersion { get; set; } /// <summary> - /// Gets or sets the major, minor, and path. + /// Gets or sets the major version. Should be incremented on breaking changes. + /// </summary> + public int? Major { get; set; } + + /// <summary> + /// Gets or sets the major, minor, and patch. Major, Minor and Patch joined together, separated by '.'. /// </summary> public string? MajorMinorPatch { get; set; } /// <summary> - /// Gets or sets the Semantic Version. + /// Gets or sets the minor version. Should be incremented on new features. /// </summary> - public string? SemVer { get; set; } + public int? Minor { get; set; } /// <summary> - /// Gets or sets the assembly Semantic Version. + /// Gets or sets the patch version. Should be incremented on bug fixes. /// </summary> - public string? AssemblySemVer { get; set; } + public int? Patch { get; set; } /// <summary> - /// Gets or sets the assembly semantic file version. + /// Gets or sets the pre-release label. The pre-release label is the name of the pre-release. /// </summary> - public string? AssemblySemFileVer { get; set; } + public string? PreReleaseLabel { get; set; } /// <summary> - /// Gets or sets the full Semantic Version. + /// Gets or sets the pre-release label with dash. The pre-release label prefixed with a dash. /// </summary> - public string? FullSemVer { get; set; } + public string? PreReleaseLabelWithDash { get; set; } /// <summary> - /// Gets or sets the informational version. + /// Gets or sets the pre-release number. The pre-release number is the number of commits since the last version bump. /// </summary> - public string? InformationalVersion { get; set; } + public int? PreReleaseNumber { get; set; } /// <summary> - /// Gets or sets the branch name. + /// Gets or sets the pre-release tag. The pre-release tag is the pre-release label suffixed by the PreReleaseNumber. /// </summary> - public string? BranchName { get; set; } + public string? PreReleaseTag { get; set; } + + /// <summary> + /// Gets or sets the pre-release tag with dash. The pre-release tag prefixed with a dash. + /// </summary> + public string? PreReleaseTagWithDash { get; set; } + + /// <summary> + /// Gets or sets the Semantic Version. The semantic version number, including PreReleaseTagWithDash for pre-release version numbers. + /// </summary> + public string? SemVer { get; set; } /// <summary> - /// Gets or sets the Git SHA. + /// Gets or sets the Git SHA. The SHA of the Git commit. /// </summary> public string? Sha { get; set; } /// <summary> - /// Gets or sets the commits since version source. + /// Gets or sets the short SHA. The Sha limited to 7 characters. /// </summary> - public int? CommitsSinceVersionSource { get; set; } + public string? ShortSha { get; set; } /// <summary> - /// Gets or sets the commit date. + /// Gets or sets the number of uncommitted changes present in the repository. /// </summary> - public string? CommitDate { get; set; } + public int? UncommittedChanges { get; set; } + + /// <summary> + /// Gets or sets the version source distance. The number of commits since the version source. + /// </summary> + public int? VersionSourceDistance { get; set; } + + /// <summary> + /// Gets or sets the version source increment. The increment strategy used for the version calculation. Possible values: None, Patch, Minor, Major. + /// </summary> + public string? VersionSourceIncrement { get; set; } + + /// <summary> + /// Gets or sets the version source SemVer. The semantic version of the commit used as version source. + /// </summary> + public string? VersionSourceSemVer { get; set; } + + /// <summary> + /// Gets or sets the version source SHA. The SHA of the commit used as version source. + /// </summary> + public string? VersionSourceSha { get; set; } + + /// <summary> + /// Gets or sets the weighted pre-release number. A summation of branch specific pre-release-weight and the PreReleaseNumber. Can be used to obtain a monotonically increasing version number across the branches. + /// </summary> + public int? WeightedPreReleaseNumber { get; set; } } diff --git a/build/common/Addins/GitVersion/GitVersionAliases.cs b/build/common/Addins/GitVersion/GitVersionAliases.cs index 16ccd229d2..72f61441a1 100644 --- a/build/common/Addins/GitVersion/GitVersionAliases.cs +++ b/build/common/Addins/GitVersion/GitVersionAliases.cs @@ -3,7 +3,7 @@ namespace Common.Addins.GitVersion; /// <summary> /// <para>Contains functionality related to <see href="https://github.com/gittools/gitversion">GitVersion</see>.</para> /// <para> -/// In order to use the commands for this alias, include the following in your build.cake file to download and +/// To use the commands for this alias, include the following in your build.cake file to download and /// install from nuget.org, or specify the ToolPath within the <see cref="GitVersionSettings" /> class: /// <code> /// #tool "nuget:?package=GitVersion.CommandLine" @@ -13,97 +13,99 @@ namespace Common.Addins.GitVersion; [CakeAliasCategory("GitVersion")] public static class GitVersionAliases { - /// <summary> - /// Retrieves the GitVersion output. - /// </summary> /// <param name="context">The context.</param> - /// <returns>The Git version info.</returns> - /// <example> - /// <para>Update the assembly info files for the project.</para> - /// <para>Cake task:</para> - /// <code> - /// <![CDATA[ - /// Task("UpdateAssemblyInfo") - /// .Does(() => - /// { - /// GitVersion(new GitVersionSettings { - /// UpdateAssemblyInfo = true - /// }); - /// }); - /// ]]> - /// </code> - /// <para>Get the Git version info for the project using a dynamic repository.</para> - /// <para>Cake task:</para> - /// <code> - /// <![CDATA[ - /// Task("GetVersionInfo") - /// .Does(() => - /// { - /// var result = GitVersion(new GitVersionSettings { - /// UserName = "MyUser", - /// Password = "MyPassword, - /// Url = "http://git.myhost.com/myproject.git" - /// Branch = "develop" - /// Commit = EnvironmentVariable("MY_COMMIT") - /// }); - /// // Use result for building NuGet packages, setting build server version, etc... - /// }); - /// ]]> - /// </code> - /// </example> - [CakeMethodAlias] - public static GitVersion GitVersion(this ICakeContext context) + extension(ICakeContext context) { - ArgumentNullException.ThrowIfNull(context); + /// <summary> + /// Retrieves the GitVersion output. + /// </summary> + /// <returns>The Git version info.</returns> + /// <example> + /// <para>Update the assembly info files for the project.</para> + /// <para>Cake task:</para> + /// <code> + /// <![CDATA[ + /// Task("UpdateAssemblyInfo") + /// .Does(() => + /// { + /// GitVersion(new GitVersionSettings { + /// UpdateAssemblyInfo = true + /// }); + /// }); + /// ]]> + /// </code> + /// <para>Get the Git version info for the project using a dynamic repository.</para> + /// <para>Cake task:</para> + /// <code> + /// <![CDATA[ + /// Task("GetVersionInfo") + /// .Does(() => + /// { + /// var result = GitVersion(new GitVersionSettings { + /// UserName = "MyUser", + /// Password = "MyPassword, + /// Url = "http://git.myhost.com/myproject.git" + /// Branch = "develop" + /// Commit = EnvironmentVariable("MY_COMMIT") + /// }); + /// // Use result for building NuGet packages, setting build server version, etc... + /// }); + /// ]]> + /// </code> + /// </example> + [CakeMethodAlias] + public GitVersion GitVersion() + { + ArgumentNullException.ThrowIfNull(context); - return GitVersion(context, new GitVersionSettings()); - } + return context.GitVersion(new GitVersionSettings()); + } - /// <summary> - /// Retrieves the GitVersion output. - /// </summary> - /// <param name="context">The context.</param> - /// <param name="settings">The GitVersion settings.</param> - /// <returns>The Git version info.</returns> - /// <example> - /// <para>Update the assembly info files for the project.</para> - /// <para>Cake task:</para> - /// <code> - /// <![CDATA[ - /// Task("UpdateAssemblyInfo") - /// .Does(() => - /// { - /// GitVersion(new GitVersionSettings { - /// UpdateAssemblyInfo = true - /// }); - /// }); - /// ]]> - /// </code> - /// <para>Get the Git version info for the project using a dynamic repository.</para> - /// <para>Cake task:</para> - /// <code> - /// <![CDATA[ - /// Task("GetVersionInfo") - /// .Does(() => - /// { - /// var result = GitVersion(new GitVersionSettings { - /// UserName = "MyUser", - /// Password = "MyPassword, - /// Url = "http://git.myhost.com/myproject.git" - /// Branch = "develop" - /// Commit = EnvironmentVariable("MY_COMMIT") - /// }); - /// // Use result for building NuGet packages, setting build server version, etc... - /// }); - /// ]]> - /// </code> - /// </example> - [CakeMethodAlias] - public static GitVersion GitVersion(this ICakeContext context, GitVersionSettings settings) - { - ArgumentNullException.ThrowIfNull(context); + /// <summary> + /// Retrieves the GitVersion output. + /// </summary> + /// <param name="settings">The GitVersion settings.</param> + /// <returns>The Git version info.</returns> + /// <example> + /// <para>Update the assembly info files for the project.</para> + /// <para>Cake task:</para> + /// <code> + /// <![CDATA[ + /// Task("UpdateAssemblyInfo") + /// .Does(() => + /// { + /// GitVersion(new GitVersionSettings { + /// UpdateAssemblyInfo = true + /// }); + /// }); + /// ]]> + /// </code> + /// <para>Get the Git version info for the project using a dynamic repository.</para> + /// <para>Cake task:</para> + /// <code> + /// <![CDATA[ + /// Task("GetVersionInfo") + /// .Does(() => + /// { + /// var result = GitVersion(new GitVersionSettings { + /// UserName = "MyUser", + /// Password = "MyPassword, + /// Url = "http://git.myhost.com/myproject.git" + /// Branch = "develop" + /// Commit = EnvironmentVariable("MY_COMMIT") + /// }); + /// // Use result for building NuGet packages, setting build server version, etc... + /// }); + /// ]]> + /// </code> + /// </example> + [CakeMethodAlias] + public GitVersion GitVersion(GitVersionSettings settings) + { + ArgumentNullException.ThrowIfNull(context); - var gitVersionRunner = new GitVersionRunner(context.FileSystem, context.Environment, context.ProcessRunner, context.Tools, context.Log); - return gitVersionRunner.Run(settings); + var gitVersionRunner = new GitVersionRunner(context.FileSystem, context.Environment, context.ProcessRunner, context.Tools, context.Log); + return gitVersionRunner.Run(settings); + } } } diff --git a/build/common/Context/DockerBuildContext.cs b/build/common/Context/DockerBuildContext.cs index d78a57642b..b1a48ee1df 100644 --- a/build/common/Context/DockerBuildContext.cs +++ b/build/common/Context/DockerBuildContext.cs @@ -4,10 +4,12 @@ namespace Common.Context; public class DockerBuildContext(ICakeContext context) : BuildContextBase(context) { + public bool UseDocker { get; set; } = true; + public bool IsDockerOnLinux { get; set; } - public IEnumerable<DockerImage> Images { get; set; } = new List<DockerImage>(); + public IEnumerable<DockerImage> Images { get; set; } = []; public DockerRegistry DockerRegistry { get; set; } - public ICollection<Architecture> Architectures { get; set; } = new List<Architecture>(); + public ICollection<Architecture> Architectures { get; set; } = []; } diff --git a/build/common/Lifetime/BuildLifetimeBase.cs b/build/common/Lifetime/BuildLifetimeBase.cs index 98a431ef65..4187c738b5 100644 --- a/build/common/Lifetime/BuildLifetimeBase.cs +++ b/build/common/Lifetime/BuildLifetimeBase.cs @@ -9,6 +9,14 @@ public class BuildLifetimeBase<T> : FrostingLifetime<T> where T : BuildContextBa public override void Setup(T context, ISetupContext info) { var buildSystem = context.BuildSystem(); + var isDebug = context.IsEnabled(EnvVars.ActionsRunnerDebug, false); + var isStepDebug = context.IsEnabled(EnvVars.ActionsStepDebug, false); + var isDiagnosticsEnabled = context.IsEnabled(EnvVars.EnabledDiagnostics, false); + if (isDebug || isStepDebug || isDiagnosticsEnabled) + { + context.Log.Verbosity = Verbosity.Diagnostic; + } + context.IsLocalBuild = buildSystem.IsLocalBuild; context.IsAzurePipelineBuild = buildSystem.IsRunningOnAzurePipelines; context.IsGitHubActionsBuild = buildSystem.IsRunningOnGitHubActions; @@ -19,6 +27,7 @@ public override void Setup(T context, ISetupContext info) context.IsOriginalRepo = context.IsOriginalRepo(); context.IsMainBranch = context.IsMainBranch(); context.IsSupportBranch = context.IsSupportBranch(); + context.IsNextBranch = context.IsNextBranch(); context.IsTagged = context.IsTagged(); context.IsOnWindows = context.IsRunningOnWindows(); @@ -83,8 +92,9 @@ protected void LogBuildInformation(T context) context.Information($"Branch Name: {context.BranchName}"); context.Information($"Main Branch: {context.IsMainBranch}"); context.Information($"Support Branch: {context.IsSupportBranch}"); + context.Information($"Next Branch: {context.IsNextBranch}"); context.Information($"Tagged: {context.IsTagged}"); - context.Information($"IsStableRelease: {context.IsStableRelease}"); + context.Information($"IsTaggedRelease: {context.IsTaggedRelease}"); context.Information($"IsTaggedPreRelease: {context.IsTaggedPreRelease}"); context.Information($"IsInternalPreRelease: {context.IsInternalPreRelease}"); } diff --git a/build/common/Lifetime/DockerBuildLifetime.cs b/build/common/Lifetime/DockerBuildLifetime.cs index 73e1412518..41eed36912 100644 --- a/build/common/Lifetime/DockerBuildLifetime.cs +++ b/build/common/Lifetime/DockerBuildLifetime.cs @@ -12,25 +12,34 @@ public override void Setup(TContext context, ISetupContext info) { base.Setup(context, info); + if (!context.UseDocker) + { + return; + } + context.IsDockerOnLinux = context.DockerCustomCommand("info --format '{{.OSType}}'").First().Replace("'", string.Empty) == "linux"; var dockerRegistry = context.Argument(Arguments.DockerRegistry, DockerRegistry.DockerHub); var dotnetVersion = context.Argument(Arguments.DotnetVersion, string.Empty).ToLower(); var dockerDistro = context.Argument(Arguments.DockerDistro, string.Empty).ToLower(); - var versions = string.IsNullOrWhiteSpace(dotnetVersion) - ? Constants.DotnetVersions - : string.Equals(dotnetVersion, "lts-latest", StringComparison.OrdinalIgnoreCase) - ? [Constants.DotnetLtsLatest] - : [dotnetVersion]; - - var distros = string.IsNullOrWhiteSpace(dockerDistro) - ? Constants.DockerDistros - : string.Equals(dockerDistro, "distro-latest", StringComparison.OrdinalIgnoreCase) - ? [Constants.AlpineLatest] - : [dockerDistro]; - - var architectures = context.HasArgument(Arguments.Architecture) ? context.Arguments<Architecture>(Arguments.Architecture) : Constants.ArchToBuild; + var versions = dotnetVersion switch + { + _ when dotnetVersion.IsNullOrWhiteSpace() => Constants.DotnetVersions, + _ when dotnetVersion.IsEqualInvariant("lts-latest") => [Constants.DotnetLtsLatest], + _ => [dotnetVersion] + }; + + var distros = dockerDistro switch + { + _ when dockerDistro.IsNullOrWhiteSpace() => Constants.DockerDistros, + _ when dockerDistro.IsEqualInvariant("distro-latest") => [Constants.AlpineLatest], + _ => [dockerDistro] + }; + + var architectures = context.HasArgument(Arguments.Architecture) + ? context.Arguments<Architecture>(Arguments.Architecture) + : Constants.ArchToBuild; var platformArch = context.IsRunningOnAmd64() ? Architecture.Amd64 : Architecture.Arm64; var registry = dockerRegistry == DockerRegistry.DockerHub ? Constants.DockerHubRegistry : Constants.GitHubContainerRegistry; diff --git a/build/common/Tasks/Default.cs b/build/common/Tasks/Default.cs index b5f5e777ee..1f8ff5d57e 100644 --- a/build/common/Tasks/Default.cs +++ b/build/common/Tasks/Default.cs @@ -25,7 +25,7 @@ public override void Run(ICakeContext context) context.Information($"# {task.GetTaskDescription()}"); var taskName = task.GetTaskName(); - string target = taskName != nameof(Default) ? $"-Target {taskName}" : string.Empty; + var target = taskName != nameof(Default) ? $"-Target {taskName}" : string.Empty; context.Information($" ./build.ps1 -Stage {entryAssembly?.GetName().Name} {target} {arguments}\n"); } } diff --git a/build/common/Utilities/BuildContextBase.cs b/build/common/Utilities/BuildContextBase.cs index 93be1fc1b6..cbed3e8d51 100644 --- a/build/common/Utilities/BuildContextBase.cs +++ b/build/common/Utilities/BuildContextBase.cs @@ -10,6 +10,7 @@ public class BuildContextBase : FrostingContext public string RepositoryName { get; set; } = string.Empty; public bool IsMainBranch { get; set; } public bool IsSupportBranch { get; set; } + public bool IsNextBranch { get; set; } public bool IsPullRequest { get; set; } public bool IsTagged { get; set; } public bool IsLocalBuild { get; set; } @@ -18,8 +19,8 @@ public class BuildContextBase : FrostingContext public bool IsOnWindows { get; set; } public bool IsOnLinux { get; set; } public bool IsOnMacOS { get; set; } - public bool IsReleaseBranchOriginalRepo => !IsLocalBuild && IsOriginalRepo && (IsMainBranch || IsSupportBranch) && !IsPullRequest; - public bool IsStableRelease => IsReleaseBranchOriginalRepo && IsTagged && Version?.IsPreRelease == false; + public bool IsReleaseBranchOriginalRepo => !IsLocalBuild && IsOriginalRepo && (IsMainBranch || IsSupportBranch || IsNextBranch) && !IsPullRequest; + public bool IsTaggedRelease => IsReleaseBranchOriginalRepo && IsTagged && Version?.IsPreRelease == false; public bool IsTaggedPreRelease => IsReleaseBranchOriginalRepo && IsTagged && Version?.IsPreRelease == true; public bool IsInternalPreRelease => IsReleaseBranchOriginalRepo && IsGitHubActionsBuild; } diff --git a/build/common/Utilities/CakeHostExtensions.cs b/build/common/Utilities/CakeHostExtensions.cs index 43b964c8b1..61ba564d7d 100644 --- a/build/common/Utilities/CakeHostExtensions.cs +++ b/build/common/Utilities/CakeHostExtensions.cs @@ -2,23 +2,28 @@ namespace Common.Utilities; +#pragma warning disable S1144 public static class ServicesExtensions { - public static CakeHost UseRootDirectory(this CakeHost host) + extension(CakeHost host) { - host = host.ConfigureServices(services => services.UseWorkingDirectory(Extensions.GetRootDirectory())); - return host; - } + public CakeHost UseRootDirectory() + { + host = host.ConfigureServices(services => services.UseWorkingDirectory(Extensions.GetRootDirectory())); + return host; + } - public static CakeHost InstallToolsFromRootManifest(this CakeHost host) - { - host = host.UseModule<LocalToolsModule>().InstallToolsFromManifest(Extensions.GetRootDirectory().CombineWithFilePath(".config/dotnet-tools.json").FullPath); - return host; - } + public CakeHost InstallToolsFromRootManifest() + { + host = host.UseModule<LocalToolsModule>().InstallToolsFromManifest(Extensions.GetRootDirectory().CombineWithFilePath(".config/dotnet-tools.json").FullPath); + return host; + } - public static CakeHost InstallNugetTool(this CakeHost host, string toolName, string toolVersion) - { - var toolUrl = new Uri($"nuget:?package={toolName}&version={toolVersion}"); - return host.ConfigureServices(services => services.UseTool(toolUrl)); + public CakeHost InstallNugetTool(string toolName, string toolVersion) + { + var toolUrl = new Uri($"nuget:?package={toolName}&version={toolVersion}"); + return host.ConfigureServices(services => services.UseTool(toolUrl)); + } } } +#pragma warning restore S1144 diff --git a/build/common/Utilities/Constants.cs b/build/common/Utilities/Constants.cs index 49eac5f818..4c31e213c2 100644 --- a/build/common/Utilities/Constants.cs +++ b/build/common/Utilities/Constants.cs @@ -6,8 +6,8 @@ public static class Constants public const string RepoOwner = "GitTools"; public const string Repository = "GitVersion"; - public const string DotnetLtsLatest = "8.0"; - public static readonly string[] DotnetVersions = [DotnetLtsLatest, "9.0"]; + public const string DotnetLtsLatest = "10.0"; + public static readonly string[] DotnetVersions = [DotnetLtsLatest, "9.0", "8.0"]; public const string DefaultBranch = "main"; public const string DefaultConfiguration = "Release"; @@ -24,13 +24,13 @@ public static class Constants public const string GitHubContainerRegistry = "ghcr.io"; public static readonly string[] DockerRegistries = [DockerHub, GitHub]; - public const string AlpineLatest = "alpine.3.22"; + public const string AlpineLatest = "alpine.3.23"; public const string CentosLatest = "centos.stream.9"; public const string DebianLatest = "debian.12"; - public const string FedoraLatest = "fedora.42"; + public const string FedoraLatest = "fedora.43"; public const string UbuntuLatest = "ubuntu.24.04"; - public const string DockerDistroLatest = DebianLatest; + public const string DockerDistroLatest = UbuntuLatest; public static readonly string[] DockerDistros = [ diff --git a/build/common/Utilities/ContextExtensions.cs b/build/common/Utilities/ContextExtensions.cs index 049420f969..9012c7db83 100644 --- a/build/common/Utilities/ContextExtensions.cs +++ b/build/common/Utilities/ContextExtensions.cs @@ -5,185 +5,198 @@ namespace Common.Utilities; +#pragma warning disable S1144 public static class ContextExtensions { - public static IEnumerable<string> ExecuteCommand(this ICakeContext context, FilePath exe, string? args, DirectoryPath? workDir = null) + extension(ICakeContext context) { - var processSettings = new ProcessSettings { Arguments = args, RedirectStandardOutput = true }; - if (workDir is not null) + public IEnumerable<string> ExecuteCommand(FilePath exe, string? args, DirectoryPath? workDir = null) { - processSettings.WorkingDirectory = workDir; + var processSettings = new ProcessSettings { Arguments = args, RedirectStandardOutput = true }; + if (workDir is not null) + { + processSettings.WorkingDirectory = workDir; + } + + context.StartProcess(exe, processSettings, out var redirectedOutput); + return redirectedOutput.ToList(); } - context.StartProcess(exe, processSettings, out var redirectedOutput); - return redirectedOutput.ToList(); - } - - private static IEnumerable<string> ExecGitCmd(this ICakeContext context, string? cmd, DirectoryPath? workDir = null) - { - var gitExe = context.Tools.Resolve(context.IsRunningOnWindows() ? "git.exe" : "git"); - return context.ExecuteCommand(gitExe, cmd, workDir); - } + private IEnumerable<string> ExecGitCmd(string? cmd, DirectoryPath? workDir = null) + { + var gitExe = context.Tools.Resolve(context.IsRunningOnWindows() ? "git.exe" : "git"); + return context.ExecuteCommand(gitExe, cmd, workDir); + } - public static void GitPushBranch(this ICakeContext context, DirectoryPath repositoryDirectoryPath, string username, string token, string branchName) - { - var pushUrl = $"https://{username}:{token}@github.com/{Constants.RepoOwner}/{Constants.Repository}"; - context.ExecGitCmd($"push {pushUrl} {branchName}", workDir: repositoryDirectoryPath); - } + public void GitPushBranch(DirectoryPath repositoryDirectoryPath, string username, string token, string branchName) + { + var pushUrl = $"https://{username}:{token}@github.com/{Constants.RepoOwner}/{Constants.Repository}"; + context.ExecGitCmd($"push {pushUrl} {branchName}", workDir: repositoryDirectoryPath); + } - public static bool IsOriginalRepo(this ICakeContext context) - { - var repositoryName = context.GetRepositoryName(); - return !string.IsNullOrWhiteSpace(repositoryName) && StringComparer.OrdinalIgnoreCase.Equals("gittools/GitVersion", repositoryName); - } + public bool IsOriginalRepo() + { + var repositoryName = context.GetRepositoryName(); + return !string.IsNullOrWhiteSpace(repositoryName) && StringComparer.OrdinalIgnoreCase.Equals("gittools/GitVersion", repositoryName); + } - public static bool IsMainBranch(this ICakeContext context) - { - var repositoryBranch = GetBranchName(context); - return !string.IsNullOrWhiteSpace(repositoryBranch) && StringComparer.OrdinalIgnoreCase.Equals(Constants.DefaultBranch, repositoryBranch); - } + public bool IsMainBranch() + { + var repositoryBranch = context.GetBranchName(); + return !string.IsNullOrWhiteSpace(repositoryBranch) && StringComparer.OrdinalIgnoreCase.Equals(Constants.DefaultBranch, repositoryBranch); + } - public static bool IsSupportBranch(this ICakeContext context) - { - var repositoryBranch = GetBranchName(context); - return !string.IsNullOrWhiteSpace(repositoryBranch) && repositoryBranch.StartsWith("support/", StringComparison.OrdinalIgnoreCase); - } + public bool IsSupportBranch() + { + var repositoryBranch = context.GetBranchName(); + return !string.IsNullOrWhiteSpace(repositoryBranch) && repositoryBranch.StartsWith("support/", StringComparison.OrdinalIgnoreCase); + } - public static bool IsTagged(this ICakeContext context) - { - var sha = context.ExecGitCmd("rev-parse --verify HEAD").Single(); - var isTagged = context.ExecGitCmd("tag --points-at " + sha).Any(); + public bool IsNextBranch() + { + var repositoryBranch = context.GetBranchName(); + return !string.IsNullOrWhiteSpace(repositoryBranch) && repositoryBranch.StartsWith("next/", StringComparison.OrdinalIgnoreCase); + } - return isTagged; - } + public bool IsTagged() + { + var sha = context.ExecGitCmd("rev-parse --verify HEAD").Single(); + var isTagged = context.ExecGitCmd("tag --points-at " + sha).Any(); - public static void ValidateOutput(this ICakeContext context, string cmd, string? args, string? expected) - { - var output = context.ExecuteCommand(cmd, args); - var outputStr = string.Concat(output); - context.Information(outputStr); + return isTagged; + } - Assert.Equal(expected, outputStr); - } + public void ValidateOutput(string cmd, string? args, string? expected) + { + var output = context.ExecuteCommand(cmd, args); + var outputStr = string.Concat(output); + context.Information(outputStr); - public static bool IsEnabled(this ICakeContext context, string envVar, bool nullOrEmptyAsEnabled = true) - { - var value = context.EnvironmentVariable(envVar); + Assert.Equal(expected, outputStr); + } - return string.IsNullOrWhiteSpace(value) ? nullOrEmptyAsEnabled : bool.Parse(value); - } + public bool IsEnabled(string envVar, bool nullOrEmptyAsEnabled = true) + { + var value = context.EnvironmentVariable(envVar); - public static string GetOS(this ICakeContext context) - { - if (context.IsRunningOnWindows()) return "Windows"; - if (context.IsRunningOnLinux()) return "Linux"; - if (context.IsRunningOnMacOs()) return "macOs"; + return string.IsNullOrWhiteSpace(value) ? nullOrEmptyAsEnabled : bool.Parse(value); + } - return string.Empty; - } + public string GetOS() + { + if (context.IsRunningOnWindows()) return "Windows"; + if (context.IsRunningOnLinux()) return "Linux"; + if (context.IsRunningOnMacOs()) return "macOs"; - public static bool IsRunningOnAmd64(this ICakeContext _) - => RuntimeInformation.ProcessArchitecture == ProcessArchitecture.X64; + return string.Empty; + } - public static bool IsRunningOnArm64(this ICakeContext _) => - RuntimeInformation.ProcessArchitecture == ProcessArchitecture.Arm64; + public bool IsRunningOnAmd64() + => RuntimeInformation.ProcessArchitecture == ProcessArchitecture.X64; - public static string GetBuildAgent(this ICakeContext context) - { - var buildSystem = context.BuildSystem(); - return buildSystem.Provider switch - { - BuildProvider.Local => "Local", - BuildProvider.AppVeyor => "AppVeyor", - BuildProvider.AzurePipelines => "AzurePipelines", - BuildProvider.GitHubActions => "GitHubActions", - _ => string.Empty - }; - } + public bool IsRunningOnArm64() => + RuntimeInformation.ProcessArchitecture == ProcessArchitecture.Arm64; - public static void StartGroup(this ICakeContext context, string title) - { - var buildSystem = context.BuildSystem(); - if (buildSystem.IsRunningOnAzurePipelines) + public string GetBuildAgent() { - context.AzurePipelines().Commands.StartGroup(context, title); + var buildSystem = context.BuildSystem(); + return buildSystem.Provider switch + { + BuildProvider.Local => "Local", + BuildProvider.AppVeyor => "AppVeyor", + BuildProvider.AzurePipelines => "AzurePipelines", + BuildProvider.GitHubActions => "GitHubActions", + _ => string.Empty + }; } - else if (buildSystem.IsRunningOnGitHubActions) - { - context.GitHubActions().Commands.StartGroup(title); - } - } - public static void EndGroup(this ICakeContext context) - { - var buildSystem = context.BuildSystem(); - if (buildSystem.IsRunningOnAzurePipelines) + public void StartGroup(string title) { - context.AzurePipelines().Commands.EndGroup(context); + var buildSystem = context.BuildSystem(); + if (buildSystem.IsRunningOnAzurePipelines) + { + context.AzurePipelines().Commands.StartGroup(context, title); + } + else if (buildSystem.IsRunningOnGitHubActions) + { + context.GitHubActions().Commands.StartGroup(title); + } } - else if (buildSystem.IsRunningOnGitHubActions) + + public void EndGroup() { - context.GitHubActions().Commands.EndGroup(); + var buildSystem = context.BuildSystem(); + if (buildSystem.IsRunningOnAzurePipelines) + { + context.AzurePipelines().Commands.EndGroup(context); + } + else if (buildSystem.IsRunningOnGitHubActions) + { + context.GitHubActions().Commands.EndGroup(); + } } - } - - public static bool ShouldRun(this ICakeContext context, bool criteria, string skipMessage) - { - if (criteria) return true; - - context.Information(skipMessage); - return false; - } - public static string GetBranchName(this ICakeContext context) - { - var buildSystem = context.BuildSystem(); - string repositoryBranch = context.ExecGitCmd("rev-parse --abbrev-ref HEAD").Single(); - if (buildSystem.IsRunningOnAppVeyor) + public bool ShouldRun(bool criteria, string skipMessage) { - repositoryBranch = buildSystem.AppVeyor.Environment.Repository.Branch; + if (criteria) return true; + + context.Information(skipMessage); + return false; } - else if (buildSystem.IsRunningOnAzurePipelines) + + public string GetBranchName() { - repositoryBranch = buildSystem.AzurePipelines.Environment.Repository.SourceBranchName; + var buildSystem = context.BuildSystem(); + var repositoryBranch = context.ExecGitCmd("rev-parse --abbrev-ref HEAD").Single(); + if (buildSystem.IsRunningOnAppVeyor) + { + repositoryBranch = buildSystem.AppVeyor.Environment.Repository.Branch; + } + else if (buildSystem.IsRunningOnAzurePipelines) + { + repositoryBranch = buildSystem.AzurePipelines.Environment.Repository.SourceBranchName; + } + else if (buildSystem.IsRunningOnGitHubActions) + { + repositoryBranch = buildSystem.GitHubActions.Environment.Workflow.Ref.Replace("refs/heads/", ""); + } + + return repositoryBranch; } - else if (buildSystem.IsRunningOnGitHubActions) + + public string GetRepositoryName() { - repositoryBranch = buildSystem.GitHubActions.Environment.Workflow.Ref.Replace("refs/heads/", ""); + var buildSystem = context.BuildSystem(); + var repositoryName = string.Empty; + if (buildSystem.IsRunningOnAppVeyor) + { + repositoryName = buildSystem.AppVeyor.Environment.Repository.Name; + } + else if (buildSystem.IsRunningOnAzurePipelines) + { + repositoryName = buildSystem.AzurePipelines.Environment.Repository.RepoName; + } + else if (buildSystem.IsRunningOnGitHubActions) + { + repositoryName = buildSystem.GitHubActions.Environment.Workflow.Repository; + } + + return repositoryName; } + public FilePath? GetGitVersionToolLocation() => + context.GetFiles($"src/GitVersion.App/bin/{Constants.DefaultConfiguration}/net{Constants.DotnetLtsLatest}/gitversion.dll").SingleOrDefault(); - return repositoryBranch; + public FilePath? GetGitVersionDotnetToolLocation() => + context.MakeAbsolute(Paths.Tools.Combine("gitversion").CombineWithFilePath("gitversion.dll")); + + public FilePath? GetSchemaDotnetToolLocation() => + context.MakeAbsolute(Paths.Tools.Combine("schema").CombineWithFilePath("schema.dll")); } - public static string GetRepositoryName(this ICakeContext context) + extension(IAzurePipelinesCommands _) { - var buildSystem = context.BuildSystem(); - string repositoryName = string.Empty; - if (buildSystem.IsRunningOnAppVeyor) - { - repositoryName = buildSystem.AppVeyor.Environment.Repository.Name; - } - else if (buildSystem.IsRunningOnAzurePipelines) - { - repositoryName = buildSystem.AzurePipelines.Environment.Repository.RepoName; - } - else if (buildSystem.IsRunningOnGitHubActions) - { - repositoryName = buildSystem.GitHubActions.Environment.Workflow.Repository; - } - - return repositoryName; + private void StartGroup(ICakeContext context, string title) => context.Information("##[group]{0}", title); + private void EndGroup(ICakeContext context) => context.Information("##[endgroup]"); } - - private static void StartGroup(this IAzurePipelinesCommands _, ICakeContext context, string title) => context.Information("##[group]{0}", title); - - private static void EndGroup(this IAzurePipelinesCommands _, ICakeContext context) => context.Information("##[endgroup]"); - - public static FilePath? GetGitVersionToolLocation(this ICakeContext context) => - context.GetFiles($"src/GitVersion.App/bin/{Constants.DefaultConfiguration}/net{Constants.DotnetLtsLatest}/gitversion.dll").SingleOrDefault(); - public static FilePath? GetGitVersionDotnetToolLocation(this ICakeContext context) => - context.MakeAbsolute(Paths.Tools.Combine("gitversion").CombineWithFilePath("gitversion.dll")); - - public static FilePath? GetSchemaDotnetToolLocation(this ICakeContext context) => - context.MakeAbsolute(Paths.Tools.Combine("schema").CombineWithFilePath("schema.dll")); } +#pragma warning restore S1144 diff --git a/build/common/Utilities/DockerContextExtensions.cs b/build/common/Utilities/DockerContextExtensions.cs index 0c8443c1f8..e303b231f9 100644 --- a/build/common/Utilities/DockerContextExtensions.cs +++ b/build/common/Utilities/DockerContextExtensions.cs @@ -10,6 +10,7 @@ public enum Architecture Amd64 } +#pragma warning disable S1144 public static class DockerContextExtensions { private static readonly string[] Annotations = @@ -19,258 +20,264 @@ public static class DockerContextExtensions "org.opencontainers.image.licenses=MIT", "org.opencontainers.image.source=https://github.com/GitTools/GitVersion.git", "org.opencontainers.image.documentation=https://gitversion.net/docs/usage/docker", - $"org.opencontainers.image.created={DateTime.UtcNow:O}", + $"org.opencontainers.image.created={DateTime.UtcNow:O}" ]; - public static bool SkipImageTesting(this ICakeContext context, DockerImage dockerImage) + extension(BuildContextBase context) { - var (distro, targetFramework, architecture, _, _) = dockerImage; - - switch (architecture) + public bool SkipImageTesting(DockerImage dockerImage) { - case Architecture.Amd64: - case Architecture.Arm64 when context.IsRunningOnArm64(): - return false; - default: - context.Information($"Skipping Target: {targetFramework}, Distro: {distro}, Arch: {architecture}"); - return true; + var (distro, targetFramework, architecture, _, _) = dockerImage; + + switch (architecture) + { + case Architecture.Amd64: + case Architecture.Arm64 when context.IsRunningOnArm64(): + return false; + default: + context.Information($"Skipping Target: {targetFramework}, Distro: {distro}, Arch: {architecture}"); + return true; + } } - } - public static void DockerBuildImage(this BuildContextBase context, DockerImage dockerImage) - { - if (context.Version == null) return; + public void DockerBuildImage(DockerImage dockerImage) + { + if (context.Version == null) return; - var (distro, targetFramework, arch, registry, _) = dockerImage; + var (distro, targetFramework, arch, registry, _) = dockerImage; - context.Information($"Building image: {dockerImage}"); + context.Information($"Building image: {dockerImage}"); - var workDir = Paths.Build.Combine("docker"); - var tags = context.GetDockerTags(dockerImage, arch); + var workDir = Paths.Build.Combine("docker"); + var tags = context.GetDockerTags(dockerImage, arch); - var suffix = arch.ToSuffix(); - var imageSuffix = $"({distro}-{context.Version.NugetVersion}-{targetFramework}-{suffix})"; - var baseNameSuffix = $"{registry}/{Constants.DockerBaseImageName}:{distro}-runtime-{targetFramework}-{suffix}"; - var description = $"org.opencontainers.image.description=GitVersion images {imageSuffix}"; - var baseName = $"org.opencontainers.image.base.name={baseNameSuffix}"; - var version = $"org.opencontainers.image.version={context.Version.NugetVersion}"; - var revision = $"org.opencontainers.image.revision={context.Version.GitVersion.Sha}"; - var source = $"org.opencontainers.image.source=https://github.com/GitTools/GitVersion/blob/{context.Version.GitVersion.Sha}/build/docker/Dockerfile"; + var suffix = arch.ToSuffix(); + var imageSuffix = $"({distro}-{context.Version.NugetVersion}-{targetFramework}-{suffix})"; + var baseNameSuffix = $"{registry}/{Constants.DockerBaseImageName}:{distro}-runtime-{targetFramework}-{suffix}"; + var description = $"org.opencontainers.image.description=GitVersion images {imageSuffix}"; + var baseName = $"org.opencontainers.image.base.name={baseNameSuffix}"; + var version = $"org.opencontainers.image.version={context.Version.NugetVersion}"; + var revision = $"org.opencontainers.image.revision={context.Version.GitVersion.Sha}"; + var source = $"org.opencontainers.image.source=https://github.com/GitTools/GitVersion/blob/{context.Version.GitVersion.Sha}/build/docker/Dockerfile"; + + var buildSettings = new DockerBuildXBuildSettings + { + Rm = true, + Pull = true, + // NoCache = true, + Tag = tags.ToArray(), + Platform = [$"linux/{suffix}"], + Output = ["type=docker,oci-mediatypes=true"], + File = workDir.CombineWithFilePath("Dockerfile").FullPath, + BuildArg = + [ + "nugetFolder=/nuget", + $"REGISTRY={registry}", + $"DOTNET_VERSION={targetFramework}", + $"DISTRO={distro}", + $"VERSION={context.Version.NugetVersion}" + ], + Label = + [ + "maintainers=GitTools Maintainers", + .. Annotations, + baseName, + version, + source, + revision, + description + ], + Annotation = + [ + .. Annotations, + baseName, + version, + source, + revision, + description + ] + }; + + context.DockerBuildXBuild(buildSettings, workDir.ToString()); + } - var buildSettings = new DockerBuildXBuildSettings + public void DockerBuildXBuild(DockerBuildXBuildSettings settings, + DirectoryPath target) { - Rm = true, - Pull = true, - // NoCache = true, - Tag = tags.ToArray(), - Platform = [$"linux/{suffix}"], - Output = ["type=docker,oci-mediatypes=true"], - File = workDir.CombineWithFilePath("Dockerfile").FullPath, - BuildArg = - [ - "nugetFolder=/nuget", - $"REGISTRY={registry}", - $"DOTNET_VERSION={targetFramework}", - $"DISTRO={distro}", - $"VERSION={context.Version.NugetVersion}" - ], - Label = - [ - "maintainers=GitTools Maintainers", - .. Annotations, - baseName, - version, - source, - revision, - description - ], - Annotation = - [ - .. Annotations, - baseName, - version, - source, - revision, - description - ] - }; + ArgumentNullException.ThrowIfNull(context); + var runner = context.CreateRunner<DockerBuildXBuildSettings>(); + runner.Run("buildx build", settings, [target.ToString().EscapeProcessArgument()]); + } - context.DockerBuildXBuild(buildSettings, workDir.ToString()); - } + public void DockerManifest(DockerImage dockerImage) + { + ArgumentNullException.ThrowIfNull(context.Version); + var manifestTags = context.GetDockerTags(dockerImage); + foreach (var tag in manifestTags) + { + var amd64Tag = $"{tag}-{Architecture.Amd64.ToSuffix()}"; + var arm64Tag = $"{tag}-{Architecture.Arm64.ToSuffix()}"; - public static void DockerBuildXBuild(this ICakeContext context, DockerBuildXBuildSettings settings, - DirectoryPath target) - { - ArgumentNullException.ThrowIfNull(context); - var runner = context.CreateRunner<DockerBuildXBuildSettings>(); - runner.Run("buildx build", settings, [target.ToString().EscapeProcessArgument()]); - } + var settings = GetManifestSettings(dockerImage, context.Version, tag); + context.DockerBuildXImageToolsCreate(settings, [amd64Tag, arm64Tag]); + } + } - public static void DockerManifest(this BuildContextBase context, DockerImage dockerImage) - { - ArgumentNullException.ThrowIfNull(context.Version); - var manifestTags = context.GetDockerTags(dockerImage); - foreach (var tag in manifestTags) + private void DockerBuildXImageToolsCreate(DockerBuildXImageToolsCreateSettings settings, + IEnumerable<string>? target = null) { - var amd64Tag = $"{tag}-{Architecture.Amd64.ToSuffix()}"; - var arm64Tag = $"{tag}-{Architecture.Arm64.ToSuffix()}"; - - var settings = GetManifestSettings(dockerImage, context.Version, tag); - context.DockerBuildXImageToolsCreate(settings, [amd64Tag, arm64Tag]); + ArgumentNullException.ThrowIfNull(context); + var runner = context.CreateRunner<DockerBuildXImageToolsCreateSettings>(); + runner.Run("buildx imagetools create", settings, target?.ToArray() ?? []); } - } - public static void DockerBuildXImageToolsCreate(this ICakeContext context, - DockerBuildXImageToolsCreateSettings settings, - IEnumerable<string>? target = null) - { - ArgumentNullException.ThrowIfNull(context); - var runner = context.CreateRunner<DockerBuildXImageToolsCreateSettings>(); - runner.Run("buildx imagetools create", settings, target?.ToArray() ?? []); - } + private GenericDockerRunner<TSettings> CreateRunner<TSettings>() + where TSettings : AutoToolSettings, new() => + new(context.FileSystem, context.Environment, context.ProcessRunner, context.Tools); - private static GenericDockerRunner<TSettings> CreateRunner<TSettings>(this ICakeContext context) - where TSettings : AutoToolSettings, new() => - new(context.FileSystem, context.Environment, context.ProcessRunner, context.Tools); + public void DockerPushImage(DockerImage dockerImage) + { + var tags = context.GetDockerTags(dockerImage, dockerImage.Architecture); + foreach (var tag in tags) + { + context.DockerPush(tag); + } + } - public static void DockerPushImage(this BuildContextBase context, DockerImage dockerImage) - { - var tags = context.GetDockerTags(dockerImage, dockerImage.Architecture); - foreach (var tag in tags) + public void DockerPullImage(DockerImage dockerImage) { - context.DockerPush(tag); + var tag = $"{dockerImage.DockerImageName()}:{dockerImage.Distro}-sdk-{dockerImage.TargetFramework}"; + var platform = $"linux/{dockerImage.Architecture.ToString().ToLower()}"; + context.DockerPull(new() { Platform = platform }, tag); } - } - public static DockerBuildXImageToolsCreateSettings GetManifestSettings(DockerImage dockerImage, BuildVersion buildVersion, string tag) - { - var imageSuffix = $"({dockerImage.Distro}-{buildVersion.NugetVersion}-{dockerImage.TargetFramework})"; - var description = $"org.opencontainers.image.description=GitVersion images {imageSuffix}"; - var version = $"org.opencontainers.image.version={buildVersion.NugetVersion}"; - var revision = $"org.opencontainers.image.revision={buildVersion.GitVersion.Sha}"; - var settings = new DockerBuildXImageToolsCreateSettings + public void DockerTestImage(DockerImage dockerImage) { - Tag = [tag], - Annotation = - [ - .. Annotations.Select(a => "index:" + a).ToArray(), - $"index:{description}", - $"index:{version}", - $"index:{revision}" - ] - }; - return settings; - } + var tags = context.GetDockerTags(dockerImage, dockerImage.Architecture); + foreach (var tag in tags) + { + context.DockerTestRun(tag, dockerImage.Architecture, "/repo", "/showvariable", "FullSemver", "/nocache"); + } + } - public static void DockerPullImage(this ICakeContext context, DockerImage dockerImage) - { - var tag = $"{dockerImage.DockerImageName()}:{dockerImage.Distro}-sdk-{dockerImage.TargetFramework}"; - var platform = $"linux/{dockerImage.Architecture.ToString().ToLower()}"; - context.DockerPull(new() { Platform = platform }, tag); - } + public void DockerTestArtifact(DockerImage dockerImage, string cmd) + { + var tag = $"{dockerImage.DockerImageName()}:{dockerImage.Distro}-sdk-{dockerImage.TargetFramework}"; + context.DockerTestRun(tag, dockerImage.Architecture, "sh", cmd); + } - public static void DockerTestImage(this BuildContextBase context, DockerImage dockerImage) - { - var tags = context.GetDockerTags(dockerImage, dockerImage.Architecture); - foreach (var tag in tags) + private void DockerTestRun(string image, Architecture arch, string command, + params string[] args) { - context.DockerTestRun(tag, dockerImage.Architecture, "/repo", "/showvariable", "FullSemver", "/nocache"); + ArgumentNullException.ThrowIfNull(context.Version?.GitVersion.FullSemVer); + var settings = context.GetDockerRunSettings(arch); + context.Information($"Testing image: {image}"); + var output = context.DockerRun(settings, image, command, args); + context.Information("Output : " + output); + + Assert.Contains(context.Version.GitVersion.FullSemVer, output); } - } - public static void DockerTestArtifact(this BuildContextBase context, DockerImage dockerImage, string cmd) - { - var tag = $"{dockerImage.DockerImageName()}:{dockerImage.Distro}-sdk-{dockerImage.TargetFramework}"; - context.DockerTestRun(tag, dockerImage.Architecture, "sh", cmd); - } + private IEnumerable<string> GetDockerTags(DockerImage dockerImage, + Architecture? arch = null) + { + var name = dockerImage.DockerImageName(); + var distro = dockerImage.Distro; + var targetFramework = dockerImage.TargetFramework; - private static void DockerTestRun(this BuildContextBase context, string image, Architecture arch, string command, - params string[] args) - { - ArgumentNullException.ThrowIfNull(context.Version?.GitVersion.FullSemVer); - var settings = GetDockerRunSettings(context, arch); - context.Information($"Testing image: {image}"); - var output = context.DockerRun(settings, image, command, args); - context.Information("Output : " + output); + if (context.Version == null) return []; + var tags = new List<string> + { + $"{name}:{context.Version.Version}-{distro}-{targetFramework}", + $"{name}:{context.Version.SemVersion}-{distro}-{targetFramework}" + }; - Assert.Contains(context.Version.GitVersion.FullSemVer, output); - } + if (distro == Constants.DockerDistroLatest && targetFramework == Constants.DotnetLtsLatest) + { + tags.Add($"{name}:{context.Version.SemVersion}"); + + if (context.IsTaggedRelease) + { + tags.AddRange( + [ + $"{name}:{context.Version.Version}", + $"{name}:latest", + $"{name}:latest-{targetFramework}", + $"{name}:latest-{distro}", + $"{name}:latest-{distro}-{targetFramework}" + ]); + } + } - private static IEnumerable<string> GetDockerTags(this BuildContextBase context, DockerImage dockerImage, - Architecture? arch = null) - { - var name = dockerImage.DockerImageName(); - var distro = dockerImage.Distro; - var targetFramework = dockerImage.TargetFramework; + if (!arch.HasValue) return tags.Distinct(); - if (context.Version == null) return []; - var tags = new List<string> - { - $"{name}:{context.Version.Version}-{distro}-{targetFramework}", - $"{name}:{context.Version.SemVersion}-{distro}-{targetFramework}", - }; + var suffix = arch.Value.ToSuffix(); + return tags.Select(x => $"{x}-{suffix}").Distinct(); + } - if (distro == Constants.DockerDistroLatest && targetFramework == Constants.DotnetLtsLatest) + private DockerContainerRunSettings GetDockerRunSettings(Architecture arch) { - tags.Add($"{name}:{context.Version.SemVersion}"); - - if (context.IsStableRelease) + var currentDir = context.MakeAbsolute(context.Directory(".")); + var root = string.Empty; + var settings = new DockerContainerRunSettings { - tags.AddRange( + Rm = true, + Volume = [ - $"{name}:{context.Version.Version}", - $"{name}:latest", - $"{name}:latest-{targetFramework}", - $"{name}:latest-{distro}", - $"{name}:latest-{distro}-{targetFramework}", - ]); + $"{currentDir}:{root}/repo", + $"{currentDir}/tests/scripts:{root}/scripts", + $"{currentDir}/artifacts/packages/nuget:{root}/nuget", + $"{currentDir}/artifacts/packages/native:{root}/native" + ], + Platform = $"linux/{arch.ToString().ToLower()}" + }; + + if (context.IsAzurePipelineBuild) + { + settings.Env = + [ + "TF_BUILD=true", + $"BUILD_SOURCEBRANCH={context.EnvironmentVariable("BUILD_SOURCEBRANCH")}" + ]; } - } - if (!arch.HasValue) return tags.Distinct(); + if (context.IsGitHubActionsBuild) + { + settings.Env = + [ + "GITHUB_ACTIONS=true", + $"GITHUB_REF={context.EnvironmentVariable("GITHUB_REF")}" + ]; + } - var suffix = arch.Value.ToSuffix(); - return tags.Select(x => $"{x}-{suffix}").Distinct(); + return settings; + } } - private static string DockerImageName(this DockerImage image) => - $"{image.Registry}/{(image.UseBaseImage ? Constants.DockerBaseImageName : Constants.DockerImageName)}"; + extension(DockerImage image) + { + private string DockerImageName() => + $"{image.Registry}/{(image.UseBaseImage ? Constants.DockerBaseImageName : Constants.DockerImageName)}"; + } - private static DockerContainerRunSettings GetDockerRunSettings(this BuildContextBase context, Architecture arch) + private static DockerBuildXImageToolsCreateSettings GetManifestSettings(DockerImage dockerImage, BuildVersion buildVersion, string tag) { - var currentDir = context.MakeAbsolute(context.Directory(".")); - var root = string.Empty; - var settings = new DockerContainerRunSettings + var imageSuffix = $"({dockerImage.Distro}-{buildVersion.NugetVersion}-{dockerImage.TargetFramework})"; + var description = $"org.opencontainers.image.description=GitVersion images {imageSuffix}"; + var version = $"org.opencontainers.image.version={buildVersion.NugetVersion}"; + var revision = $"org.opencontainers.image.revision={buildVersion.GitVersion.Sha}"; + var settings = new DockerBuildXImageToolsCreateSettings { - Rm = true, - Volume = + Tag = [tag], + Annotation = [ - $"{currentDir}:{root}/repo", - $"{currentDir}/tests/scripts:{root}/scripts", - $"{currentDir}/artifacts/packages/nuget:{root}/nuget", - $"{currentDir}/artifacts/packages/native:{root}/native" - ], - Platform = $"linux/{arch.ToString().ToLower()}" + .. Annotations.Select(a => "index:" + a).ToArray(), + $"index:{description}", + $"index:{version}", + $"index:{revision}" + ] }; - - if (context.IsAzurePipelineBuild) - { - settings.Env = - [ - "TF_BUILD=true", - $"BUILD_SOURCEBRANCH={context.EnvironmentVariable("BUILD_SOURCEBRANCH")}" - ]; - } - - if (context.IsGitHubActionsBuild) - { - settings.Env = - [ - "GITHUB_ACTIONS=true", - $"GITHUB_REF={context.EnvironmentVariable("GITHUB_REF")}" - ]; - } - return settings; } } +#pragma warning restore S1144 diff --git a/build/common/Utilities/EnvVars.cs b/build/common/Utilities/EnvVars.cs new file mode 100644 index 0000000000..edf67a2c1b --- /dev/null +++ b/build/common/Utilities/EnvVars.cs @@ -0,0 +1,8 @@ +namespace Common.Utilities; + +public class EnvVars +{ + public const string EnabledDiagnostics = "ENABLED_DIAGNOSTICS"; + public const string ActionsRunnerDebug = "ACTIONS_RUNNER_DEBUG"; + public const string ActionsStepDebug = "ACTIONS_STEP_DEBUG"; +} diff --git a/build/common/Utilities/Extensions.cs b/build/common/Utilities/Extensions.cs index 5691ef09fa..f5166ccfbd 100644 --- a/build/common/Utilities/Extensions.cs +++ b/build/common/Utilities/Extensions.cs @@ -1,47 +1,54 @@ +using System.Buffers; + namespace Common.Utilities; +#pragma warning disable S1144 public static class Extensions { - private static readonly char[] CharsThatRequireQuoting = [' ', '"']; - private static readonly char[] CharsThatRequireEscaping = ['\\', '"']; - - public static IEnumerable<Type> FindAllDerivedTypes(this Assembly assembly, Type baseType) => - from type in assembly.GetExportedTypes() - let info = type.GetTypeInfo() - where baseType.IsAssignableFrom(type) && info.IsClass && !info.IsAbstract - select type; + private static readonly SearchValues<char> CharsRequiringQuoting = SearchValues.Create(' ', '"'); + private static readonly SearchValues<char> CharsRequiringEscaping = SearchValues.Create('\\', '"'); - public static string GetTaskDescription(this Type task) + extension(Assembly assembly) { - ArgumentNullException.ThrowIfNull(task); - - var attribute = task.GetCustomAttribute<TaskDescriptionAttribute>(); - return attribute != null ? attribute.Description : string.Empty; + public IEnumerable<Type> FindAllDerivedTypes(Type baseType) => + from type in assembly.GetExportedTypes() + let info = type.GetTypeInfo() + where baseType.IsAssignableFrom(type) && info.IsClass && !info.IsAbstract + select type; } - public static string GetTaskName(this Type task) + extension(Type task) { - ArgumentNullException.ThrowIfNull(task); + public string GetTaskDescription() + { + ArgumentNullException.ThrowIfNull(task); - var attribute = task.GetCustomAttribute<TaskNameAttribute>(); - return attribute != null ? attribute.Name : task.Name; - } + var attribute = task.GetCustomAttribute<TaskDescriptionAttribute>(); + return attribute != null ? attribute.Description : string.Empty; + } - public static string GetTaskArguments(this Type task) - { - ArgumentNullException.ThrowIfNull(task); + public string GetTaskName() + { + ArgumentNullException.ThrowIfNull(task); - var attributes = task.GetCustomAttributes<TaskArgumentAttribute>().ToArray(); - if (attributes.Length != 0) + var attribute = task.GetCustomAttribute<TaskNameAttribute>(); + return attribute != null ? attribute.Name : task.Name; + } + + public string GetTaskArguments() { - var arguments = attributes.Select(attribute => $"[--{attribute.Name} ({string.Join(" | ", attribute.PossibleValues)})]"); - return string.Join(" ", arguments); + ArgumentNullException.ThrowIfNull(task); + + var attributes = task.GetCustomAttributes<TaskArgumentAttribute>().ToArray(); + if (attributes.Length != 0) + { + var arguments = attributes.Select(attribute => $"[--{attribute.Name} ({string.Join(" | ", attribute.PossibleValues)})]"); + return string.Join(" ", arguments); + } + return string.Empty; } - return string.Empty; } - public static DirectoryPath Combine(this string path, string segment) => DirectoryPath.FromString(path).Combine(segment); - public static FilePath CombineWithFilePath(this string path, string segment) => DirectoryPath.FromString(path).CombineWithFilePath(segment); public static DirectoryPath GetRootDirectory() { var currentPath = DirectoryPath.FromString(Directory.GetCurrentDirectory()); @@ -53,7 +60,19 @@ public static DirectoryPath GetRootDirectory() return currentPath; } - public static string ToSuffix(this Architecture arch) => arch.ToString().ToLower(); + extension(Architecture arch) + { + public string ToSuffix() => arch.ToString().ToLower(); + } + + extension(string value) + { + public bool IsNullOrWhiteSpace() => + string.IsNullOrWhiteSpace(value); + + public bool IsEqualInvariant(string other) => + string.Equals(value, other, StringComparison.InvariantCulture); + } /// <summary> /// Escapes arbitrary values so that the process receives the exact string you intend and injection is impossible. @@ -63,45 +82,51 @@ public static string EscapeProcessArgument(this string literalValue, bool always { if (string.IsNullOrEmpty(literalValue)) return "\"\""; - if (literalValue.IndexOfAny(CharsThatRequireQuoting) == -1) // Happy path + if (literalValue.AsSpan().IndexOfAny(CharsRequiringQuoting) == -1) // Happy path { if (!alwaysQuote) return literalValue; - if (literalValue[^1] != '\\') return "\"" + literalValue + "\""; + if (literalValue[^1] != '\\') return $"\"{literalValue}\""; } - var sb = new StringBuilder(literalValue.Length + 8).Append('"'); + return BuildEscapedArgument(literalValue); + } + private static string BuildEscapedArgument(string s) + { + var sb = new StringBuilder(s.Length + 8).Append('"'); var nextPosition = 0; + while (true) { - var nextEscapeChar = literalValue.IndexOfAny(CharsThatRequireEscaping, nextPosition); - if (nextEscapeChar == -1) break; + var relativeIndex = s.AsSpan(nextPosition).IndexOfAny(CharsRequiringEscaping); + if (relativeIndex == -1) break; - sb.Append(literalValue, nextPosition, nextEscapeChar - nextPosition); + var nextEscapeChar = nextPosition + relativeIndex; + sb.Append(s, nextPosition, relativeIndex); nextPosition = nextEscapeChar + 1; - switch (literalValue[nextEscapeChar]) - { - case '"': - sb.Append("\\\""); - break; - case '\\': - var numBackslashes = 1; - while (nextPosition < literalValue.Length && literalValue[nextPosition] == '\\') - { - numBackslashes++; - nextPosition++; - } - if (nextPosition == literalValue.Length || literalValue[nextPosition] == '"') - numBackslashes <<= 1; - - for (; numBackslashes != 0; numBackslashes--) - sb.Append('\\'); - break; - } + if (s[nextEscapeChar] == '"') + sb.Append("\\\""); + else + nextPosition = AppendEscapedBackslashes(sb, s, nextPosition); + } + + return sb.Append(s, nextPosition, s.Length - nextPosition).Append('"').ToString(); + } + + private static int AppendEscapedBackslashes(StringBuilder sb, string s, int nextPosition) + { + var numBackslashes = 1; + while (nextPosition < s.Length && s[nextPosition] == '\\') + { + numBackslashes++; + nextPosition++; } + if (nextPosition == s.Length || s[nextPosition] == '"') + numBackslashes <<= 1; - sb.Append(literalValue, nextPosition, literalValue.Length - nextPosition).Append('"'); - return sb.ToString(); + sb.Append('\\', numBackslashes); + return nextPosition; } } +#pragma warning restore S1144 diff --git a/build/common/Utilities/Models.cs b/build/common/Utilities/Models.cs index a90d493e16..48588ede14 100644 --- a/build/common/Utilities/Models.cs +++ b/build/common/Utilities/Models.cs @@ -33,7 +33,7 @@ public static BuildVersion Calculate(GitVersion gitVersion) chocolateyVersion += $"-{prefix}{gitVersion.PreReleaseTag?.Replace(".", "-")}"; } - if (!string.IsNullOrWhiteSpace(gitVersion.BuildMetaData)) + if (gitVersion.BuildMetaData is not null) { semVersion += $"-{gitVersion.BuildMetaData}"; chocolateyVersion += $"-{gitVersion.BuildMetaData}"; diff --git a/build/docker/Dockerfile b/build/docker/Dockerfile index aa95e656a6..7ffc2171c2 100644 --- a/build/docker/Dockerfile +++ b/build/docker/Dockerfile @@ -1,9 +1,9 @@ ARG REGISTRY='docker.io' ARG DISTRO='debian.12' ARG DOTNET_VERSION='8.0' -ARG VERSION='6.4.0' +ARG VERSION='6.7.0' -FROM $REGISTRY/gittools/build-images:$DISTRO-sdk-$DOTNET_VERSION as installer +FROM $REGISTRY/gittools/build-images:$DISTRO-sdk-$DOTNET_VERSION AS installer ARG nugetFolder ARG VERSION diff --git a/build/docker/Tasks/DockerHubReadmePublish.cs b/build/docker/Tasks/DockerHubReadmePublish.cs index 1cb840118c..69b5c14680 100644 --- a/build/docker/Tasks/DockerHubReadmePublish.cs +++ b/build/docker/Tasks/DockerHubReadmePublish.cs @@ -18,7 +18,7 @@ public override bool ShouldRun(BuildContext context) var shouldRun = true; if (context.DockerRegistry == DockerRegistry.DockerHub) { - shouldRun &= context.ShouldRun(context.IsStableRelease, $"{nameof(DockerHubReadmePublish)} works only for tagged releases."); + shouldRun &= context.ShouldRun(context.IsTaggedRelease, $"{nameof(DockerHubReadmePublish)} works only for tagged releases."); } return shouldRun; diff --git a/build/docker/Tasks/DockerManifest.cs b/build/docker/Tasks/DockerManifest.cs index ae099f781b..4321c7614f 100644 --- a/build/docker/Tasks/DockerManifest.cs +++ b/build/docker/Tasks/DockerManifest.cs @@ -34,7 +34,7 @@ public override bool ShouldRun(BuildContext context) } if (context.DockerRegistry == DockerRegistry.DockerHub) { - shouldRun &= context.ShouldRun(context.IsStableRelease || context.IsTaggedPreRelease, $"{nameof(DockerPublish)} to DockerHub works only for tagged releases."); + shouldRun &= context.ShouldRun(context.IsTaggedRelease || context.IsTaggedPreRelease, $"{nameof(DockerPublish)} to DockerHub works only for tagged releases."); } return shouldRun; diff --git a/build/docker/Tasks/DockerPublish.cs b/build/docker/Tasks/DockerPublish.cs index b230a4d59c..240e05dbed 100644 --- a/build/docker/Tasks/DockerPublish.cs +++ b/build/docker/Tasks/DockerPublish.cs @@ -35,7 +35,7 @@ public override bool ShouldRun(BuildContext context) } if (context.DockerRegistry == DockerRegistry.DockerHub) { - shouldRun &= context.ShouldRun(context.IsStableRelease || context.IsTaggedPreRelease, $"{nameof(DockerPublish)} to DockerHub works only for tagged releases."); + shouldRun &= context.ShouldRun(context.IsTaggedRelease || context.IsTaggedPreRelease, $"{nameof(DockerPublish)} to DockerHub works only for tagged releases."); } return shouldRun; diff --git a/build/docs/Tasks/PublishDocs.cs b/build/docs/Tasks/PublishDocs.cs index 7fa1ce3c9a..2879204dbd 100644 --- a/build/docs/Tasks/PublishDocs.cs +++ b/build/docs/Tasks/PublishDocs.cs @@ -28,7 +28,7 @@ public override bool ShouldRun(BuildContext context) { var shouldRun = true; shouldRun &= context.ShouldRun(context.DirectoryExists(Paths.Docs), "Wyam documentation directory is missing"); - shouldRun &= context.ShouldRun(context.IsStableRelease || context.ForcePublish, $"{nameof(PublishDocs)} works only for releases."); + shouldRun &= context.ShouldRun(context.IsTaggedRelease || context.ForcePublish, $"{nameof(PublishDocs)} works only for releases."); return shouldRun; } diff --git a/build/publish/Tasks/PublishChocolatey.cs b/build/publish/Tasks/PublishChocolatey.cs index 078f555dc0..1418a57cf3 100644 --- a/build/publish/Tasks/PublishChocolatey.cs +++ b/build/publish/Tasks/PublishChocolatey.cs @@ -18,7 +18,7 @@ public override bool ShouldRun(BuildContext context) var shouldRun = true; shouldRun &= context.ShouldRun(context.IsGitHubActionsBuild, $"{nameof(PublishChocolatey)} works only on GitHub Actions."); shouldRun &= context.ShouldRun(context.IsOnWindows, $"{nameof(PublishChocolatey)} works only on windows."); - shouldRun &= context.ShouldRun(context.IsStableRelease || context.IsTaggedPreRelease, $"{nameof(PublishChocolatey)} works only for tagged releases."); + shouldRun &= context.ShouldRun(context.IsTaggedRelease || context.IsTaggedPreRelease, $"{nameof(PublishChocolatey)} works only for tagged releases."); return shouldRun; } diff --git a/build/publish/Tasks/PublishNuget.cs b/build/publish/Tasks/PublishNuget.cs index 59649a35af..86899211e9 100644 --- a/build/publish/Tasks/PublishNuget.cs +++ b/build/publish/Tasks/PublishNuget.cs @@ -1,3 +1,5 @@ +using System.Net.Http.Headers; +using System.Text.Json; using Cake.Common.Tools.DotNet.NuGet.Push; using Common.Utilities; @@ -10,18 +12,18 @@ public class PublishNuget : FrostingTask<BuildContext>; [TaskName(nameof(PublishNugetInternal))] [TaskDescription("Publish nuget packages")] -public class PublishNugetInternal : FrostingTask<BuildContext> +public class PublishNugetInternal : AsyncFrostingTask<BuildContext> { public override bool ShouldRun(BuildContext context) { var shouldRun = true; shouldRun &= context.ShouldRun(context.IsGitHubActionsBuild, $"{nameof(PublishNuget)} works only on GitHub Actions."); - shouldRun &= context.ShouldRun(context.IsStableRelease || context.IsTaggedPreRelease || context.IsInternalPreRelease, $"{nameof(PublishNuget)} works only for releases."); + shouldRun &= context.ShouldRun(context.IsTaggedRelease || context.IsTaggedPreRelease || context.IsInternalPreRelease, $"{nameof(PublishNuget)} works only for releases."); return shouldRun; } - public override void Run(BuildContext context) + public override async Task RunAsync(BuildContext context) { // publish to github packages for commits on main and on original repo if (context.IsInternalPreRelease) @@ -32,22 +34,36 @@ public override void Run(BuildContext context) { throw new InvalidOperationException("Could not resolve NuGet GitHub Packages API key."); } + PublishToNugetRepo(context, apiKey, Constants.GithubPackagesUrl); context.EndGroup(); } + // publish to nuget.org for tagged releases - if (context.IsStableRelease || context.IsTaggedPreRelease) + if (context.IsTaggedRelease || context.IsTaggedPreRelease) { context.StartGroup("Publishing to Nuget.org"); - var apiKey = context.Credentials?.Nuget?.ApiKey; + + // Prefer Trusted Publishing via OIDC token exchange (no long-lived API key required) + var apiKey = await GetNugetApiKey(context); + + // Fall back to a static API key when OIDC is not available + if (string.IsNullOrEmpty(apiKey)) + { + context.Information("OIDC token exchange unavailable; falling back to static NuGet API key."); + apiKey = context.Credentials?.Nuget?.ApiKey; + } + if (string.IsNullOrEmpty(apiKey)) { throw new InvalidOperationException("Could not resolve NuGet org API key."); } + PublishToNugetRepo(context, apiKey, Constants.NugetOrgUrl); context.EndGroup(); } } + private static void PublishToNugetRepo(BuildContext context, string apiKey, string apiUrl) { ArgumentNullException.ThrowIfNull(context.Version); @@ -55,12 +71,125 @@ private static void PublishToNugetRepo(BuildContext context, string apiKey, stri foreach (var (packageName, filePath, _) in context.Packages.Where(x => !x.IsChocoPackage)) { context.Information($"Package {packageName}, version {nugetVersion} is being published."); - context.DotNetNuGetPush(filePath.FullPath, new DotNetNuGetPushSettings - { - ApiKey = apiKey, - Source = apiUrl, - SkipDuplicate = true - }); + context.DotNetNuGetPush(filePath.FullPath, + new DotNetNuGetPushSettings + { + ApiKey = apiKey, + Source = apiUrl, + SkipDuplicate = true + }); } } + + private static async Task<string?> GetNugetApiKey(BuildContext context) + { + try + { + var oidcToken = await GetGitHubOidcToken(context); + var apiKey = await ExchangeOidcTokenForApiKey(oidcToken); + + context.Information($"Successfully exchanged OIDC token for NuGet API key."); + return apiKey; + } + catch (HttpRequestException ex) + { + context.Warning($"Network error while retrieving NuGet API key via OIDC: {ex.Message}"); + return null; + } + catch (InvalidOperationException ex) + { + context.Warning($"OIDC not available for NuGet API key retrieval: {ex.Message}"); + return null; + } + catch (JsonException ex) + { + context.Warning($"JSON parsing error while retrieving NuGet API key via OIDC: {ex.Message}"); + return null; + } + catch (Exception ex) + { + context.Warning($"Unexpected error while retrieving NuGet API key via OIDC: {ex.Message}"); + return null; + } + } + + private static async Task<string> GetGitHubOidcToken(BuildContext context) + { + const string nugetAudience = "https://www.nuget.org"; + + var oidcRequestToken = context.Environment.GetEnvironmentVariable("ACTIONS_ID_TOKEN_REQUEST_TOKEN"); + var oidcRequestUrl = context.Environment.GetEnvironmentVariable("ACTIONS_ID_TOKEN_REQUEST_URL"); + + if (string.IsNullOrEmpty(oidcRequestToken) || string.IsNullOrEmpty(oidcRequestUrl)) + throw new InvalidOperationException("Missing GitHub OIDC request environment variables."); + + var tokenUrl = $"{oidcRequestUrl}&audience={Uri.EscapeDataString(nugetAudience)}"; + context.Information($"Requesting GitHub OIDC token from: {tokenUrl}"); + + using var http = new HttpClient(); + http.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", oidcRequestToken); + + var responseMessage = await http.GetAsync(tokenUrl); + var tokenBody = await responseMessage.Content.ReadAsStringAsync(); + + if (!responseMessage.IsSuccessStatusCode) + throw new Exception("Failed to retrieve OIDC token from GitHub."); + + using var tokenDoc = JsonDocument.Parse(tokenBody); + return ParseJsonProperty(tokenDoc, "value", "Failed to retrieve OIDC token from GitHub."); + } + + private static async Task<string> ExchangeOidcTokenForApiKey(string oidcToken) + { + const string nugetUsername = "gittoolsbot"; + const string nugetTokenServiceUrl = "https://www.nuget.org/api/v2/token"; + + var requestBody = JsonSerializer.Serialize(new { username = nugetUsername, tokenType = "ApiKey" }); + + using var tokenServiceHttp = new HttpClient(); + tokenServiceHttp.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", oidcToken); + tokenServiceHttp.DefaultRequestHeaders.UserAgent.ParseAdd("nuget/login-action"); + using var content = new StringContent(requestBody, Encoding.UTF8, "application/json"); + + var responseMessage = await tokenServiceHttp.PostAsync(nugetTokenServiceUrl, content); + var exchangeBody = await responseMessage.Content.ReadAsStringAsync(); + + if (!responseMessage.IsSuccessStatusCode) + { + var errorMessage = BuildErrorMessage((int)responseMessage.StatusCode, exchangeBody); + throw new Exception(errorMessage); + } + + using var respDoc = JsonDocument.Parse(exchangeBody); + return ParseJsonProperty(respDoc, "apiKey", "Response did not contain \"apiKey\"."); + } + + private static string ParseJsonProperty(JsonDocument document, string propertyName, string errorMessage) + { + if (!document.RootElement.TryGetProperty(propertyName, out var property) || + property.ValueKind != JsonValueKind.String) + throw new Exception(errorMessage); + + return property.GetString() ?? throw new Exception(errorMessage); + } + + private static string BuildErrorMessage(int statusCode, string responseBody) + { + var errorMessage = $"Token exchange failed ({statusCode})"; + try + { + using var errDoc = JsonDocument.Parse(responseBody); + errorMessage += + errDoc.RootElement.TryGetProperty("error", out var errProp) && + errProp.ValueKind == JsonValueKind.String + ? $": {errProp.GetString()}" + : $": {responseBody}"; + } + catch (Exception) + { + errorMessage += $": {responseBody}"; + } + + return errorMessage; + } } diff --git a/build/release/Tasks/PublishRelease.cs b/build/release/Tasks/PublishRelease.cs index 7bbaf8ea9c..2e5a73812b 100644 --- a/build/release/Tasks/PublishRelease.cs +++ b/build/release/Tasks/PublishRelease.cs @@ -18,7 +18,7 @@ public override bool ShouldRun(BuildContext context) { var shouldRun = true; shouldRun &= context.ShouldRun(context.IsGitHubActionsBuild, $"{nameof(PublishRelease)} works only on GitHub Actions."); - shouldRun &= context.ShouldRun(context.IsStableRelease || context.IsTaggedPreRelease, $"{nameof(PublishRelease)} works only for tagged releases."); + shouldRun &= context.ShouldRun(context.IsTaggedRelease || context.IsTaggedPreRelease, $"{nameof(PublishRelease)} works only for tagged releases."); return shouldRun; } diff --git a/docs/input/docs/learn/who.md b/docs/input/docs/learn/who.md index ace607d739..f71da3d125 100644 --- a/docs/input/docs/learn/who.md +++ b/docs/input/docs/learn/who.md @@ -12,7 +12,6 @@ that we know about today. * [ChocolateyGUI](https://github.com/chocolatey/ChocolateyGUI) * [GitLink](https://github.com/GitTools/GitLink) * [OctopusDeploy](https://github.com/OctopusDeploy) -* [NUKE](https://nuke.build) * [Orc.\* packages](https://github.com/wildgums?query=orc) * [Orchestra](https://github.com/wildgums/orchestra) * [Shouldly](https://github.com/shouldly/shouldly) diff --git a/docs/input/docs/reference/configuration.md b/docs/input/docs/reference/configuration.md index 9c4dd1a8f6..d36090c553 100644 --- a/docs/input/docs/reference/configuration.md +++ b/docs/input/docs/reference/configuration.md @@ -41,26 +41,42 @@ The built-in configuration for the `GitFlow` workflow (`workflow: GitFlow/v1`) l <!-- snippet: /docs/workflows/GitFlow/v1.yml --> <a id='snippet-/docs/workflows/GitFlow/v1.yml'></a> ```yml +mode: ContinuousDelivery +label: "{BranchName}" +increment: Inherit +prevent-increment: + of-merged-branch: false + when-branch-merged: false + when-current-commit-tagged: true +track-merge-target: false +track-merge-message: true +commit-message-incrementing: Enabled +regex: '' +source-branches: [] +is-source-branch-for: [] +tracks-release-branches: false +is-release-branch: false +is-main-branch: false assembly-versioning-scheme: MajorMinorPatch assembly-file-versioning-scheme: MajorMinorPatch -tag-prefix: '[vV]?' -version-in-branch-pattern: (?<version>[vV]?\d+(\.\d+)?(\.\d+)?).* -major-version-bump-message: \+semver:\s?(breaking|major) -minor-version-bump-message: \+semver:\s?(feature|minor) -patch-version-bump-message: \+semver:\s?(fix|patch) -no-bump-message: \+semver:\s?(none|skip) +tag-prefix: "[vV]?" +version-in-branch-pattern: "(?<version>[vV]?\\d+(\\.\\d+)?(\\.\\d+)?).*" +major-version-bump-message: "\\+semver:\\s?(breaking|major)" +minor-version-bump-message: "\\+semver:\\s?(feature|minor)" +patch-version-bump-message: "\\+semver:\\s?(fix|patch)" +no-bump-message: "\\+semver:\\s?(none|skip)" tag-pre-release-weight: 60000 commit-date-format: yyyy-MM-dd merge-message-formats: {} update-build-number: true semantic-version-format: Strict strategies: -- Fallback -- ConfiguredNextVersion -- MergeMessage -- TaggedCommit -- TrackReleaseBranches -- VersionInBranchName + - Fallback + - ConfiguredNextVersion + - MergeMessage + - TaggedCommit + - TrackReleaseBranches + - VersionInBranchName branches: develop: mode: ContinuousDelivery @@ -72,7 +88,7 @@ branches: track-merge-message: true regex: ^dev(elop)?(ment)?$ source-branches: - - main + - main is-source-branch-for: [] tracks-release-branches: true is-release-branch: false @@ -85,7 +101,7 @@ branches: of-merged-branch: true track-merge-target: false track-merge-message: true - regex: ^master$|^main$ + regex: "^master$|^main$" source-branches: [] is-source-branch-for: [] tracks-release-branches: false @@ -100,10 +116,10 @@ branches: of-merged-branch: true when-current-commit-tagged: false track-merge-target: false - regex: ^releases?[\/-](?<BranchName>.+) + regex: "^releases?[\\/-](?<BranchName>.+)" source-branches: - - main - - support + - main + - support is-source-branch-for: [] tracks-release-branches: false is-release-branch: true @@ -111,37 +127,37 @@ branches: pre-release-weight: 30000 feature: mode: ManualDeployment - label: '{BranchName}' + label: "{BranchName}" increment: Inherit prevent-increment: when-current-commit-tagged: false track-merge-message: true - regex: ^features?[\/-](?<BranchName>.+) + regex: "^features?[\\/-](?<BranchName>.+)" source-branches: - - develop - - main - - release - - support - - hotfix + - develop + - main + - release + - support + - hotfix is-source-branch-for: [] is-main-branch: false pre-release-weight: 30000 pull-request: mode: ContinuousDelivery - label: PullRequest{Number} + label: "PullRequest{Number}" increment: Inherit prevent-increment: of-merged-branch: true when-current-commit-tagged: false track-merge-message: true - regex: ^(pull-requests|pull|pr)[\/-](?<Number>\d*) + regex: "^(pull-requests|pull|pr)[\\/-](?<Number>\\d*)" source-branches: - - develop - - main - - release - - feature - - support - - hotfix + - develop + - main + - release + - feature + - support + - hotfix is-source-branch-for: [] pre-release-weight: 30000 hotfix: @@ -150,10 +166,10 @@ branches: increment: Inherit prevent-increment: when-current-commit-tagged: false - regex: ^hotfix(es)?[\/-](?<BranchName>.+) + regex: "^hotfix(es)?[\\/-](?<BranchName>.+)" source-branches: - - main - - support + - main + - support is-source-branch-for: [] is-release-branch: true is-main-branch: false @@ -164,9 +180,9 @@ branches: prevent-increment: of-merged-branch: true track-merge-target: false - regex: ^support[\/-](?<BranchName>.+) + regex: "^support[\\/-](?<BranchName>.+)" source-branches: - - main + - main is-source-branch-for: [] tracks-release-branches: false is-release-branch: false @@ -174,26 +190,35 @@ branches: pre-release-weight: 55000 unknown: mode: ManualDeployment - label: '{BranchName}' + label: "{BranchName}" increment: Inherit prevent-increment: when-current-commit-tagged: true - regex: (?<BranchName>.+) + regex: "(?<BranchName>.+)" source-branches: - - main - - develop - - release - - feature - - pull-request - - hotfix - - support + - main + - develop + - release + - feature + - pull-request + - hotfix + - support is-source-branch-for: [] is-main-branch: false ignore: sha: [] paths: [] +``` +<sup><a href='/docs/workflows/GitFlow/v1.yml#L1-L167' title='Snippet source file'>snippet source</a> | <a href='#snippet-/docs/workflows/GitFlow/v1.yml' title='Start of snippet'>anchor</a></sup> +<!-- endSnippet --> + +The supported built-in configuration for the `GitHubFlow` workflow (`workflow: GitHubFlow/v1`) looks like: + +<!-- snippet: /docs/workflows/GitHubFlow/v1.yml --> +<a id='snippet-/docs/workflows/GitHubFlow/v1.yml'></a> +```yml mode: ContinuousDelivery -label: '{BranchName}' +label: "{BranchName}" increment: Inherit prevent-increment: of-merged-branch: false @@ -208,35 +233,26 @@ is-source-branch-for: [] tracks-release-branches: false is-release-branch: false is-main-branch: false -``` -<sup><a href='/docs/workflows/GitFlow/v1.yml#L1-L167' title='Snippet source file'>snippet source</a> | <a href='#snippet-/docs/workflows/GitFlow/v1.yml' title='Start of snippet'>anchor</a></sup> -<!-- endSnippet --> - -The supported built-in configuration for the `GitHubFlow` workflow (`workflow: GitHubFlow/v1`) looks like: - -<!-- snippet: /docs/workflows/GitHubFlow/v1.yml --> -<a id='snippet-/docs/workflows/GitHubFlow/v1.yml'></a> -```yml assembly-versioning-scheme: MajorMinorPatch assembly-file-versioning-scheme: MajorMinorPatch -tag-prefix: '[vV]?' -version-in-branch-pattern: (?<version>[vV]?\d+(\.\d+)?(\.\d+)?).* -major-version-bump-message: \+semver:\s?(breaking|major) -minor-version-bump-message: \+semver:\s?(feature|minor) -patch-version-bump-message: \+semver:\s?(fix|patch) -no-bump-message: \+semver:\s?(none|skip) +tag-prefix: "[vV]?" +version-in-branch-pattern: "(?<version>[vV]?\\d+(\\.\\d+)?(\\.\\d+)?).*" +major-version-bump-message: "\\+semver:\\s?(breaking|major)" +minor-version-bump-message: "\\+semver:\\s?(feature|minor)" +patch-version-bump-message: "\\+semver:\\s?(fix|patch)" +no-bump-message: "\\+semver:\\s?(none|skip)" tag-pre-release-weight: 60000 commit-date-format: yyyy-MM-dd merge-message-formats: {} update-build-number: true semantic-version-format: Strict strategies: -- Fallback -- ConfiguredNextVersion -- MergeMessage -- TaggedCommit -- TrackReleaseBranches -- VersionInBranchName + - Fallback + - ConfiguredNextVersion + - MergeMessage + - TaggedCommit + - TrackReleaseBranches + - VersionInBranchName branches: main: label: '' @@ -245,7 +261,7 @@ branches: of-merged-branch: true track-merge-target: false track-merge-message: true - regex: ^master$|^main$ + regex: "^master$|^main$" source-branches: [] is-source-branch-for: [] tracks-release-branches: false @@ -262,9 +278,9 @@ branches: when-current-commit-tagged: false track-merge-target: false track-merge-message: true - regex: ^releases?[\/-](?<BranchName>.+) + regex: "^releases?[\\/-](?<BranchName>.+)" source-branches: - - main + - main is-source-branch-for: [] tracks-release-branches: false is-release-branch: true @@ -272,53 +288,62 @@ branches: pre-release-weight: 30000 feature: mode: ManualDeployment - label: '{BranchName}' + label: "{BranchName}" increment: Inherit prevent-increment: when-current-commit-tagged: false track-merge-message: true - regex: ^features?[\/-](?<BranchName>.+) + regex: "^features?[\\/-](?<BranchName>.+)" source-branches: - - main - - release + - main + - release is-source-branch-for: [] is-main-branch: false pre-release-weight: 30000 pull-request: mode: ContinuousDelivery - label: PullRequest{Number} + label: "PullRequest{Number}" increment: Inherit prevent-increment: of-merged-branch: true when-current-commit-tagged: false track-merge-message: true - regex: ^(pull-requests|pull|pr)[\/-](?<Number>\d*) + regex: "^(pull-requests|pull|pr)[\\/-](?<Number>\\d*)" source-branches: - - main - - release - - feature + - main + - release + - feature is-source-branch-for: [] pre-release-weight: 30000 unknown: mode: ManualDeployment - label: '{BranchName}' + label: "{BranchName}" increment: Inherit prevent-increment: when-current-commit-tagged: false track-merge-message: false - regex: (?<BranchName>.+) + regex: "(?<BranchName>.+)" source-branches: - - main - - release - - feature - - pull-request + - main + - release + - feature + - pull-request is-source-branch-for: [] is-main-branch: false ignore: sha: [] paths: [] +``` +<sup><a href='/docs/workflows/GitHubFlow/v1.yml#L1-L116' title='Snippet source file'>snippet source</a> | <a href='#snippet-/docs/workflows/GitHubFlow/v1.yml' title='Start of snippet'>anchor</a></sup> +<!-- endSnippet --> + +The preview built-in configuration (experimental usage only) for the `TrunkBased` workflow (`workflow: TrunkBased/preview1`) looks like: + +<!-- snippet: /docs/workflows/TrunkBased/preview1.yml --> +<a id='snippet-/docs/workflows/TrunkBased/preview1.yml'></a> +```yml mode: ContinuousDelivery -label: '{BranchName}' +label: "{BranchName}" increment: Inherit prevent-increment: of-merged-branch: false @@ -333,31 +358,22 @@ is-source-branch-for: [] tracks-release-branches: false is-release-branch: false is-main-branch: false -``` -<sup><a href='/docs/workflows/GitHubFlow/v1.yml#L1-L116' title='Snippet source file'>snippet source</a> | <a href='#snippet-/docs/workflows/GitHubFlow/v1.yml' title='Start of snippet'>anchor</a></sup> -<!-- endSnippet --> - -The preview built-in configuration (experimental usage only) for the `TrunkBased` workflow (`workflow: TrunkBased/preview1`) looks like: - -<!-- snippet: /docs/workflows/TrunkBased/preview1.yml --> -<a id='snippet-/docs/workflows/TrunkBased/preview1.yml'></a> -```yml assembly-versioning-scheme: MajorMinorPatch assembly-file-versioning-scheme: MajorMinorPatch -tag-prefix: '[vV]?' -version-in-branch-pattern: (?<version>[vV]?\d+(\.\d+)?(\.\d+)?).* -major-version-bump-message: \+semver:\s?(breaking|major) -minor-version-bump-message: \+semver:\s?(feature|minor) -patch-version-bump-message: \+semver:\s?(fix|patch) -no-bump-message: \+semver:\s?(none|skip) +tag-prefix: "[vV]?" +version-in-branch-pattern: "(?<version>[vV]?\\d+(\\.\\d+)?(\\.\\d+)?).*" +major-version-bump-message: "\\+semver:\\s?(breaking|major)" +minor-version-bump-message: "\\+semver:\\s?(feature|minor)" +patch-version-bump-message: "\\+semver:\\s?(fix|patch)" +no-bump-message: "\\+semver:\\s?(none|skip)" tag-pre-release-weight: 60000 commit-date-format: yyyy-MM-dd merge-message-formats: {} update-build-number: true semantic-version-format: Strict strategies: -- ConfiguredNextVersion -- Mainline + - ConfiguredNextVersion + - Mainline branches: main: mode: ContinuousDeployment @@ -367,7 +383,7 @@ branches: of-merged-branch: true track-merge-target: false track-merge-message: true - regex: ^master$|^main$ + regex: "^master$|^main$" source-branches: [] is-source-branch-for: [] tracks-release-branches: false @@ -376,73 +392,57 @@ branches: pre-release-weight: 55000 feature: mode: ContinuousDelivery - label: '{BranchName}' + label: "{BranchName}" increment: Minor prevent-increment: when-current-commit-tagged: false track-merge-message: true - regex: ^features?[\/-](?<BranchName>.+) + regex: "^features?[\\/-](?<BranchName>.+)" source-branches: - - main + - main is-source-branch-for: [] is-main-branch: false pre-release-weight: 30000 hotfix: mode: ContinuousDelivery - label: '{BranchName}' + label: "{BranchName}" increment: Patch prevent-increment: when-current-commit-tagged: false - regex: ^hotfix(es)?[\/-](?<BranchName>.+) + regex: "^hotfix(es)?[\\/-](?<BranchName>.+)" source-branches: - - main + - main is-source-branch-for: [] is-release-branch: true is-main-branch: false pre-release-weight: 30000 pull-request: mode: ContinuousDelivery - label: PullRequest{Number} + label: "PullRequest{Number}" increment: Inherit prevent-increment: of-merged-branch: true when-current-commit-tagged: false track-merge-message: true - regex: ^(pull-requests|pull|pr)[\/-](?<Number>\d*) + regex: "^(pull-requests|pull|pr)[\\/-](?<Number>\\d*)" source-branches: - - main - - feature - - hotfix + - main + - feature + - hotfix is-source-branch-for: [] pre-release-weight: 30000 unknown: increment: Patch prevent-increment: when-current-commit-tagged: false - regex: (?<BranchName>.+) + regex: "(?<BranchName>.+)" source-branches: - - main + - main is-source-branch-for: [] pre-release-weight: 30000 ignore: sha: [] paths: [] -mode: ContinuousDelivery -label: '{BranchName}' -increment: Inherit -prevent-increment: - of-merged-branch: false - when-branch-merged: false - when-current-commit-tagged: true -track-merge-target: false -track-merge-message: true -commit-message-incrementing: Enabled -regex: '' -source-branches: [] -is-source-branch-for: [] -tracks-release-branches: false -is-release-branch: false -is-main-branch: false ``` <sup><a href='/docs/workflows/TrunkBased/preview1.yml#L1-L101' title='Snippet source file'>snippet source</a> | <a href='#snippet-/docs/workflows/TrunkBased/preview1.yml' title='Start of snippet'>anchor</a></sup> <!-- endSnippet --> @@ -628,28 +628,38 @@ Date and time in the format `yyyy-MM-ddTHH:mm:ss` (eg `commits-before: `commits-before` will be ignored. #### paths + A sequence of regular expressions that represent paths in the repository. Commits that modify these paths will be excluded from version calculations. For example, to filter out commits that belong to `docs`: + ```yaml ignore: paths: - ^docs\/ ``` + ##### *Monorepo* + This ignore config can be used to filter only those commits that belong to a specific project in a monorepo. As an example, consider a monorepo consisting of subdirectories for `ProjectA`, `ProjectB` and a shared `LibraryC`. For GitVersion to consider only commits that are part of `projectA` and shared library `LibraryC`, a regex that matches all paths except those starting with `ProjectA` or `LibraryC` can be used. Either one of the following configs would filter out `ProjectB`. + * Specific match on `/ProjectB/*`: + ```yaml ignore: paths: - `^\/ProductB\/.*` ``` + * Negative lookahead on anything other than `/ProjectA/*` and `/LibraryC/*`: + ```yaml ignore: paths: - `^(?!\/ProductA\/|\/LibraryC\/).*` ``` + A commit having changes only in `/ProjectB/*` path would be ignored. A commit having changes in the following paths wouldn't be ignored: + * `/ProductA/*` * `/LibraryC/*` * `/ProductA/*` and `/LibraryC/*` @@ -658,7 +668,8 @@ A commit having changes only in `/ProjectB/*` path would be ignored. A commit ha * `/ProductA/*` and `/ProductB/*` and `/LibraryC/*` ::: -Note: The `ignore.paths` configuration is case-sensitive. This can lead to unexpected behavior on case-insensitive file systems, such as Windows. To ensure consistent matching regardless of case, you can prefix your regular expressions with the case-insensitive flag `(?i)`. For example, `(?i)^docs\/` will match both `docs/` and `Docs/`. +Note: The `ignore.paths` configuration is case-sensitive. +This can lead to unexpected behavior on case-insensitive file systems, such as Windows. To ensure consistent matching regardless of case, you can prefix your regular expressions with the case-insensitive flag `(?i)`. For example, `(?i)^docs\/` will match both `docs/` and `Docs/`. ::: ::: {.alert .alert-warning} @@ -683,7 +694,7 @@ The regular expression should contain the following capture groups: * `TargetBranch` - Identifies the target branch of the merge * `PullRequestNumber` - Captures the pull-request number -Custom merge message formats are evaluated _before_ any built in formats. +Custom merge message formats are evaluated *before* any built in formats. Support for [Conventional Commits][conventional-commits] can be [configured][conventional-commits-config]. @@ -892,6 +903,8 @@ of `alpha.foo` with `label: 'alpha.{BranchName}'` and `regex: '^features?[\/-](? Another example: branch `features/sc-12345/some-description` would become a pre-release label of `sc-12345` with `label: '{StoryNo}'` and `regex: '^features?[\/-](?<StoryNo>sc-\d+)[-/].+'`. +You can also use environment variable placeholders with the `{env:VARIABLE_NAME}` syntax. Environment variable placeholders can also be combined with regex placeholders, for example `{BranchName}-{env:VARIABLE_NAME}`, and support fallback values using the `{env:VARIABLE_NAME ?? "fallback"}` syntax. + **Note:** To clear a default use an empty string: `label: ''` ### increment @@ -907,7 +920,7 @@ When `release-2.0.0` is merged into main, we want main to build `2.0.0`. If prevents incrementing after a versioned branch is merged. In a GitFlow-based repository, setting this option can have implications on the -`CommitsSinceVersionSource` output variable. It can rule out a potentially +`VersionSourceDistance` output variable. It can rule out a potentially better version source proposed by the `MergeMessageBaseVersionStrategy`. For more details and an in-depth analysis, please see [the discussion][2506]. @@ -950,7 +963,7 @@ branches: Strategy which will look for tagged merge commits directly off the current branch. For example `develop` → `release/1.0.0` → merge into `main` and tag -`1.0.0`. The tag is _not_ on develop, but develop should be version `1.0.0` now. +`1.0.0`. The tag is *not* on develop, but develop should be version `1.0.0` now. ### track-merge-message diff --git a/docs/input/docs/reference/custom-formatting.md b/docs/input/docs/reference/custom-formatting.md index c970fea342..61a21d5569 100644 --- a/docs/input/docs/reference/custom-formatting.md +++ b/docs/input/docs/reference/custom-formatting.md @@ -30,8 +30,9 @@ assembly-informational-format: "{Major}.{Minor}.{Patch:F2}-{PreReleaseLabel}" - `F` or `f` (Fixed-point): `{Patch:F2}` → `"1.23"` - `N` or `n` (Number): `{BuildMetadata:N0}` → `"1,234"` - `C` or `c` (Currency): `{Major:C}` → `"¤1.00"` -- `P` or `p` (Percent): `{CommitsSinceVersionSource:P}` → `"12,345.60 %"` +- `P` or `p` (Percent): `{VersionSourceDistance:P}` → `"12,345.60 %"` - `D` or `d` (Decimal): `{Major:D4}` → `"0001"` +- `B` or `b` (Binary): `{Minor:B4}` → `"0101"` - `X` or `x` (Hexadecimal): `{Patch:X}` → `"FF"` ### Date and Time Formatting @@ -71,14 +72,14 @@ branches: feature: label: "{BranchName:c}" # Converts to PascalCase -assembly-informational-format: "{Major}.{Minor}.{Patch}-{PreReleaseLabel:l}.{CommitsSinceVersionSource:0000}" +assembly-informational-format: "{Major}.{Minor}.{Patch}-{PreReleaseLabel:l}.{VersionSourceDistance:0000}" ``` **Template Usage:** ```yaml # Using format strings in templates -assembly-informational-format: "{Major}.{Minor}.{Patch}-{CommitsSinceVersionSource:0000}" +assembly-informational-format: "{Major}.{Minor}.{Patch}-{VersionSourceDistance:0000}" assembly-informational-format: "{SemVer}-{BranchName:l}" ``` @@ -90,7 +91,7 @@ Based on actual test cases from the implementation: ```yaml # Zero-padded commit count -assembly-informational-format: "{Major}.{Minor}.{Patch}-{CommitsSinceVersionSource:0000}" +assembly-informational-format: "{Major}.{Minor}.{Patch}-{VersionSourceDistance:0000}" # Result: "1.2.3-0042" ``` @@ -121,7 +122,7 @@ assembly-informational-format: "Cost-{Major:C}" # Result: "Cost-¤1.00" assembly-informational-format: "Progress-{Minor:P}" # Result: "Progress-200.00 %" # Thousands separator -assembly-informational-format: "Build-{CommitsSinceVersionSource:N0}" # Result: "Build-1,234" +assembly-informational-format: "Build-{VersionSourceDistance:N0}" # Result: "Build-1,234" ``` ## Configuration Integration @@ -132,9 +133,9 @@ The format strings are used in GitVersion configuration files through various fo ```yaml # GitVersion.yml -assembly-informational-format: "{Major}.{Minor}.{Patch}-{CommitsSinceVersionSource:0000}" +assembly-informational-format: "{Major}.{Minor}.{Patch}-{VersionSourceDistance:0000}" assembly-versioning-format: "{Major}.{Minor}.{Patch}.{env:BUILD_NUMBER}" -assembly-file-versioning-format: "{MajorMinorPatch}.{CommitsSinceVersionSource}" +assembly-file-versioning-format: "{MajorMinorPatch}.{VersionSourceDistance}" ``` ### Environment Variable Integration @@ -151,15 +152,15 @@ Based on the actual test implementation: ```yaml # Example from VariableProviderTests.cs -assembly-informational-format: "{Major}.{Minor}.{Patch}-{CommitsSinceVersionSource:0000}" -# Result: "1.2.3-0042" when CommitsSinceVersionSource = 42 +assembly-informational-format: "{Major}.{Minor}.{Patch}-{VersionSourceDistance:0000}" +# Result: "1.2.3-0042" when VersionSourceDistance = 42 # Branch-specific formatting branches: feature: label: "{BranchName:c}" # PascalCase conversion hotfix: - label: "hotfix.{CommitsSinceVersionSource:00}" + label: "hotfix.{VersionSourceDistance:00}" ``` ## Invariant Culture Formatting @@ -173,7 +174,7 @@ The formatting system uses `CultureInfo.InvariantCulture` by default through the ```csharp // All environments produce the same output: -// {CommitsSinceVersionSource:N0} → "1,234" +// {VersionSourceDistance:N0} → "1,234" // {CommitDate:MMM dd, yyyy} → "Mar 15, 2024" // {Major:C} → "¤1.00" (generic currency symbol) ``` diff --git a/docs/input/docs/reference/mdsource/configuration.source.md b/docs/input/docs/reference/mdsource/configuration.source.md index f08c69c816..4d3b387b73 100644 --- a/docs/input/docs/reference/mdsource/configuration.source.md +++ b/docs/input/docs/reference/mdsource/configuration.source.md @@ -229,28 +229,38 @@ Date and time in the format `yyyy-MM-ddTHH:mm:ss` (eg `commits-before: `commits-before` will be ignored. #### paths + A sequence of regular expressions that represent paths in the repository. Commits that modify these paths will be excluded from version calculations. For example, to filter out commits that belong to `docs`: + ```yaml ignore: paths: - ^docs\/ ``` + ##### *Monorepo* + This ignore config can be used to filter only those commits that belong to a specific project in a monorepo. As an example, consider a monorepo consisting of subdirectories for `ProjectA`, `ProjectB` and a shared `LibraryC`. For GitVersion to consider only commits that are part of `projectA` and shared library `LibraryC`, a regex that matches all paths except those starting with `ProjectA` or `LibraryC` can be used. Either one of the following configs would filter out `ProjectB`. + * Specific match on `/ProjectB/*`: + ```yaml ignore: paths: - `^\/ProductB\/.*` ``` + * Negative lookahead on anything other than `/ProjectA/*` and `/LibraryC/*`: + ```yaml ignore: paths: - `^(?!\/ProductA\/|\/LibraryC\/).*` ``` + A commit having changes only in `/ProjectB/*` path would be ignored. A commit having changes in the following paths wouldn't be ignored: + * `/ProductA/*` * `/LibraryC/*` * `/ProductA/*` and `/LibraryC/*` @@ -259,7 +269,8 @@ A commit having changes only in `/ProjectB/*` path would be ignored. A commit ha * `/ProductA/*` and `/ProductB/*` and `/LibraryC/*` ::: -Note: The `ignore.paths` configuration is case-sensitive. This can lead to unexpected behavior on case-insensitive file systems, such as Windows. To ensure consistent matching regardless of case, you can prefix your regular expressions with the case-insensitive flag `(?i)`. For example, `(?i)^docs\/` will match both `docs/` and `Docs/`. +Note: The `ignore.paths` configuration is case-sensitive. +This can lead to unexpected behavior on case-insensitive file systems, such as Windows. To ensure consistent matching regardless of case, you can prefix your regular expressions with the case-insensitive flag `(?i)`. For example, `(?i)^docs\/` will match both `docs/` and `Docs/`. ::: ::: {.alert .alert-warning} @@ -284,7 +295,7 @@ The regular expression should contain the following capture groups: * `TargetBranch` - Identifies the target branch of the merge * `PullRequestNumber` - Captures the pull-request number -Custom merge message formats are evaluated _before_ any built in formats. +Custom merge message formats are evaluated *before* any built in formats. Support for [Conventional Commits][conventional-commits] can be [configured][conventional-commits-config]. @@ -493,6 +504,8 @@ of `alpha.foo` with `label: 'alpha.{BranchName}'` and `regex: '^features?[\/-](? Another example: branch `features/sc-12345/some-description` would become a pre-release label of `sc-12345` with `label: '{StoryNo}'` and `regex: '^features?[\/-](?<StoryNo>sc-\d+)[-/].+'`. +You can also use environment variable placeholders with the `{env:VARIABLE_NAME}` syntax. Environment variable placeholders can also be combined with regex placeholders, for example `{BranchName}-{env:VARIABLE_NAME}`, and support fallback values using the `{env:VARIABLE_NAME ?? "fallback"}` syntax. + **Note:** To clear a default use an empty string: `label: ''` ### increment @@ -508,7 +521,7 @@ When `release-2.0.0` is merged into main, we want main to build `2.0.0`. If prevents incrementing after a versioned branch is merged. In a GitFlow-based repository, setting this option can have implications on the -`CommitsSinceVersionSource` output variable. It can rule out a potentially +`VersionSourceDistance` output variable. It can rule out a potentially better version source proposed by the `MergeMessageBaseVersionStrategy`. For more details and an in-depth analysis, please see [the discussion][2506]. @@ -551,7 +564,7 @@ branches: Strategy which will look for tagged merge commits directly off the current branch. For example `develop` → `release/1.0.0` → merge into `main` and tag -`1.0.0`. The tag is _not_ on develop, but develop should be version `1.0.0` now. +`1.0.0`. The tag is *not* on develop, but develop should be version `1.0.0` now. ### track-merge-message diff --git a/docs/input/docs/reference/variables.md b/docs/input/docs/reference/variables.md index 158891797a..ed1f2f8c7e 100644 --- a/docs/input/docs/reference/variables.md +++ b/docs/input/docs/reference/variables.md @@ -11,63 +11,69 @@ what is available. For the `release/3.0.0` branch of GitVersion it shows: ```json { + "AssemblySemFileVer": "3.22.11.0", + "AssemblySemVer": "3.22.11.0", + "BranchName": "release/3.022.011", + "BuildMetaData": 88, + "CommitDate": "2021-12-31", + "CommitsSinceVersionSource": 7, + "EscapedBranchName": "release-3.022.011", + "FullBuildMetaData": "99.Branch.release/3.22.11.Sha.28c853159a46b5a87e6cc9c4f6e940c59d6bc68a", + "FullSemVer": "3.22.11-beta.99+88", + "InformationalVersion": "3.22.11-beta.99+88.Branch.release/3.022.011.Sha.28c853159a46b5a87e6cc9c4f6e940c59d6bc68a", "Major": 3, + "MajorMinorPatch": "3.22.11", "Minor": 22, "Patch": 11, - "PreReleaseTag": "beta.99", - "PreReleaseTagWithDash": "-beta.99", "PreReleaseLabel": "beta", "PreReleaseLabelWithDash": "-beta", "PreReleaseNumber": 99, - "WeightedPreReleaseNumber": 1099, - "BuildMetaData": 88, - "FullBuildMetaData": "99.Branch.release/3.22.11.Sha.28c853159a46b5a87e6cc9c4f6e940c59d6bc68a", - "MajorMinorPatch": "3.22.11", + "PreReleaseTag": "beta.99", + "PreReleaseTagWithDash": "-beta.99", "SemVer": "3.22.11-beta.99", - "AssemblySemVer": "3.22.11.0", - "AssemblySemFileVer": "3.22.11.0", - "InformationalVersion": "3.22.11-beta.99+88.Branch.release/3.022.011.Sha.28c853159a46b5a87e6cc9c4f6e940c59d6bc68a", - "FullSemVer": "3.22.11-beta.99+88", - "BranchName": "release/3.022.011", - "EscapedBranchName": "release-3.022.011", "Sha": "28c853159a46b5a87e6cc9c4f6e940c59d6bc68a", "ShortSha": "28c8531", + "UncommittedChanges": 0, + "VersionSourceDistance": 7, + "VersionSourceIncrement": "Minor", + "VersionSourceSemVer": "3.22.11", "VersionSourceSha": "28c853159a46b5a87e6cc9c4f6e940c59d6bc68a", - "CommitsSinceVersionSource": 7, - "CommitDate": "2021-12-31", - "UncommittedChanges": 0 + "WeightedPreReleaseNumber": 1099 } ``` Each property of the above JSON document is described in the below table. -| Property | Description | -| --------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `Major` | The major version. Should be incremented on breaking changes. | -| `Minor` | The minor version. Should be incremented on new features. | -| `Patch` | The patch version. Should be incremented on bug fixes. | -| `PreReleaseTag` | The pre-release tag is the pre-release label suffixed by the `PreReleaseNumber`. | -| `PreReleaseTagWithDash` | The pre-release tag prefixed with a dash. | -| `PreReleaseLabel` | The pre-release label. | -| `PreReleaseLabelWithDash` | The pre-release label prefixed with a dash. | -| `PreReleaseNumber` | The pre-release number. | -| `WeightedPreReleaseNumber` | A summation of branch specific `pre-release-weight` and the `PreReleaseNumber`. Can be used to obtain a monotonically increasing version number across the branches. | -| `BuildMetaData` | The build metadata, usually representing number of commits since the `VersionSourceSha`. Despite its name, will not increment for every build. | -| `FullBuildMetaData` | The `BuildMetaData` suffixed with `BranchName` and `Sha`. | -| `MajorMinorPatch` | `Major`, `Minor` and `Patch` joined together, separated by `.`. | -| `SemVer` | The semantical version number, including `PreReleaseTagWithDash` for pre-release version numbers. | -| `AssemblySemVer` | Suitable for .NET `AssemblyVersion`. Defaults to `Major.Minor.0.0` to allow the assembly to be hotfixed without breaking existing applications that may be referencing it. | -| `AssemblySemFileVer` | Suitable for .NET `AssemblyFileVersion`. Defaults to `Major.Minor.Patch.0`. | -| `InformationalVersion` | Suitable for .NET `AssemblyInformationalVersion`. Defaults to `FullSemVer` suffixed by `FullBuildMetaData`. | -| `FullSemVer` | The full, SemVer 2.0 compliant version number. | -| `BranchName` | The name of the checked out Git branch. | -| `EscapedBranchName` | Equal to `BranchName`, but with `/` replaced with `-`. | -| `Sha` | The SHA of the Git commit. | -| `ShortSha` | The `Sha` limited to 7 characters. | -| `VersionSourceSha` | The SHA of the commit used as version source. | -| `CommitsSinceVersionSource` | The number of commits since the version source. | -| `CommitDate` | The ISO-8601 formatted date of the commit identified by `Sha`. | -| `UncommittedChanges` | The number of uncommitted changes present in the repository. | +| Property | Description | +|----------------------------:|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `AssemblySemFileVer` | Suitable for .NET `AssemblyFileVersion`. Defaults to `Major.Minor.Patch.0`. | +| `AssemblySemVer` | Suitable for .NET `AssemblyVersion`. Defaults to `Major.Minor.0.0` to allow the assembly to be hotfixed without breaking existing applications that may be referencing it. | +| `BranchName` | The name of the checked out Git branch. | +| `BuildMetaData` | The build metadata, usually representing number of commits since the `VersionSourceSha`. Despite its name, will not increment for every build. | +| `CommitDate` | The ISO-8601 formatted date of the commit identified by `Sha`. | +| `CommitsSinceVersionSource` | (Deprecated: use `VersionSourceDistance` instead) The number of commits since the version source. | +| `EscapedBranchName` | Equal to `BranchName`, but with `/` replaced with `-`. | +| `FullBuildMetaData` | The `BuildMetaData` suffixed with `BranchName` and `Sha`. | +| `FullSemVer` | The full, SemVer 2.0 compliant version number. | +| `InformationalVersion` | Suitable for .NET `AssemblyInformationalVersion`. Defaults to `FullSemVer` suffixed by `FullBuildMetaData`. | +| `Major` | The major version. Should be incremented on breaking changes. | +| `MajorMinorPatch` | `Major`, `Minor` and `Patch` joined together, separated by `.`. | +| `Minor` | The minor version. Should be incremented on new features. | +| `Patch` | The patch version. Should be incremented on bug fixes. | +| `PreReleaseLabel` | The pre-release label. | +| `PreReleaseLabelWithDash` | The pre-release label prefixed with a dash. | +| `PreReleaseNumber` | The pre-release number. | +| `PreReleaseTag` | The pre-release tag is the pre-release label suffixed by the `PreReleaseNumber`. | +| `PreReleaseTagWithDash` | The pre-release tag prefixed with a dash. | +| `SemVer` | The semantical version number, including `PreReleaseTagWithDash` for pre-release version numbers. | +| `Sha` | The SHA of the Git commit. | +| `ShortSha` | The `Sha` limited to 7 characters. | +| `UncommittedChanges` | The number of uncommitted changes present in the repository. | +| `VersionSourceDistance` | The number of commits since the version source. | +| `VersionSourceIncrement` | The increment strategy used for the version calculation. Possible values: `None`, `Patch`, `Minor`, `Major`. | +| `VersionSourceSemVer` | The semantic version of the commit used as version source. | +| `VersionSourceSha` | The SHA of the commit used as version source. | +| `WeightedPreReleaseNumber` | A summation of branch specific `pre-release-weight` and the `PreReleaseNumber`. Can be used to obtain a monotonically increasing version number across the branches. | Depending on how and in which context GitVersion is executed (for instance within a [supported build server][build-servers]), the above version variables diff --git a/docs/input/docs/usage/cli/arguments.md b/docs/input/docs/usage/cli/arguments.md index c8a95ddbc5..d873130986 100644 --- a/docs/input/docs/usage/cli/arguments.md +++ b/docs/input/docs/usage/cli/arguments.md @@ -24,7 +24,8 @@ GitVersion [path] path The directory containing .git. If not defined current directory is used. (Must be first argument) /version Displays the version of GitVersion - /diag Runs GitVersion with additional diagnostic information + /diag Runs GitVersion with additional diagnostic information; + also needs the '/l' argument to specify a logfile or stdout (requires git.exe to be installed) /h or /? Shows Help @@ -41,7 +42,7 @@ GitVersion [path] Supports C# format strings - see [Format Strings](/docs/reference/custom-formatting) for details. E.g. /output json /format {SemVer} - will output `1.2.3+beta.4` /output json /format {Major}.{Minor} - will output `1.2` - /l Path to logfile. + /l Path to logfile; specify 'console' to emit to stdout. /config Path to config file (defaults to GitVersion.yml, GitVersion.yaml, .GitVersion.yml or .GitVersion.yaml) /showconfig Outputs the effective GitVersion config (defaults + custom from GitVersion.yml, GitVersion.yaml, .GitVersion.yml or .GitVersion.yaml) in yaml format diff --git a/docs/input/docs/usage/cli/installation.md b/docs/input/docs/usage/cli/installation.md index e90f53a940..96340743e9 100644 --- a/docs/input/docs/usage/cli/installation.md +++ b/docs/input/docs/usage/cli/installation.md @@ -17,9 +17,9 @@ dotnet tool install --global GitVersion.Tool ``` :::{.alert .alert-info} -**Hint:** To install an older version of GitVersion.Tools, use the --version flag of dotnet tool install +**Hint:** To install an older version of GitVersion.Tool, use the --version flag of dotnet tool install -Example: `dotnet tool install GitVersion.Tool --global --version 5.*` +Example: `dotnet tool install GitVersion.Tool --global --version 6.*` ::: If you want to pin to a specific version of GitVersion, you can find the available @@ -33,6 +33,65 @@ To run call dotnet-gitversion ``` +### .NET Local Tool + +GitVersion can also be installed as a [.NET local tool][dotnet-local-tool] using +a tool manifest. This approach is useful for ensuring that all team members use +the same version of GitVersion in a project. + +To install GitVersion as a local tool, execute the following in your project's +root directory: + +```shell +dotnet new tool-manifest # if you don't already have a manifest file +dotnet tool install GitVersion.Tool +``` + +This creates or updates a `.config/dotnet-tools.json` file in your repository +that specifies the version of GitVersion to use. You can commit this file to +source control. + +:::{.alert .alert-info} +**Hint:** To install a specific version of GitVersion.Tool as a local tool, use the --version flag + +Example: `dotnet tool install GitVersion.Tool --version 6.*` +::: + +To restore tools specified in the manifest (for example, after cloning the +repository): + +```shell +dotnet tool restore +``` + +To run the local tool, you have several options: + +```shell +dotnet gitversion +``` + +Alternatively, you can use [`dotnet tool exec`][dotnet-tool-exec] (or its +shorthand aliases `dotnet dnx` or just `dnx`) to explicitly execute the tool: + +```shell +dotnet tool exec GitVersion.Tool +# or using the shorthand alias +dotnet dnx GitVersion.Tool +# or even shorter +dnx GitVersion.Tool +``` + +:::{.alert .alert-info} +**Note:** The `dotnet tool exec`, `dotnet dnx`, and `dnx` commands are useful in scripts or CI/CD +pipelines where you want to be explicit about executing a local tool from the manifest. +When using these commands, you must specify the package name `GitVersion.Tool` rather than the command name. +::: + +Note that local tools use `dotnet gitversion` (without the hyphen), while the +global tool uses `dotnet-gitversion` (with a hyphen). + +This should work on all operating systems supported by .NET Core. + ### Homebrew To install the [`gitversion`][brew] formula with [Homebrew][homebrew], @@ -90,6 +149,10 @@ of writing: Linux, macOS, Windows). [dotnet-tool]: https://docs.microsoft.com/en-us/dotnet/core/tools/global-tools#install-a-global-tool +[dotnet-local-tool]: https://docs.microsoft.com/en-us/dotnet/core/tools/local-tools-how-to-use + +[dotnet-tool-exec]: https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-tool-exec + [tool]: https://www.nuget.org/packages/GitVersion.Tool/ [brew]: https://formulae.brew.sh/formula/gitversion diff --git a/docs/input/docs/usage/library.md b/docs/input/docs/usage/library.md index 0eaeb6a481..17ae976f18 100644 --- a/docs/input/docs/usage/library.md +++ b/docs/input/docs/usage/library.md @@ -2,22 +2,21 @@ Order: 40 Title: Library Description: | - Install with NuGet and use GitVersion as a software library. Although this + Install with NuGet and use GitVersion.Core as a NuGet package. Although this is an unsupported option and the API may break even between minor or patch releases, it's a useful option to some. CardIcon: library.svg RedirectFrom: docs/usage/nuget-library --- -Install with NuGet and use GitVersion as a software library. Although this +Install with NuGet and use GitVersion.Core as a NuGet package. Although this is an unsupported option and the API may break even between minor or patch releases, it's a useful option to some. :::{.alert .alert-warning} **Warning** -The library API is not stable and does not follow the semantic versioning -of the GitVersion tool. A patch release of the tool may break the library -and we will refactor and change the library API without notice. +The library API (GitVersion.Core) is stable, and we try to follow the semantic versioning of the GitVersion tool, +but there is no real guarantee as we mainly focus on the GitVersion.Tool. ::: -<a href="/api" class="btn btn-primary">Explore the GitVersion library API</a> +<a href="/api" class="btn btn-primary">Explore the GitVersion.Core library API</a> diff --git a/docs/input/docs/usage/msbuild.md b/docs/input/docs/usage/msbuild.md index 5cacea82fd..b183cdf278 100644 --- a/docs/input/docs/usage/msbuild.md +++ b/docs/input/docs/usage/msbuild.md @@ -239,7 +239,7 @@ If you want to override the target framework that GitVersion uses to determine t ```xml <PropertyGroup> ... - <GitVersionTargetFramework>net8.0</GitVersionTargetFramework> + <GitVersionTargetFramework>net10.0</GitVersionTargetFramework> ... </PropertyGroup> ``` diff --git a/docs/input/docs/workflows/GitFlow/v1.yml b/docs/input/docs/workflows/GitFlow/v1.yml index dd44250ac5..63c7855dc8 100644 --- a/docs/input/docs/workflows/GitFlow/v1.yml +++ b/docs/input/docs/workflows/GitFlow/v1.yml @@ -1,23 +1,39 @@ +mode: ContinuousDelivery +label: "{BranchName}" +increment: Inherit +prevent-increment: + of-merged-branch: false + when-branch-merged: false + when-current-commit-tagged: true +track-merge-target: false +track-merge-message: true +commit-message-incrementing: Enabled +regex: '' +source-branches: [] +is-source-branch-for: [] +tracks-release-branches: false +is-release-branch: false +is-main-branch: false assembly-versioning-scheme: MajorMinorPatch assembly-file-versioning-scheme: MajorMinorPatch -tag-prefix: '[vV]?' -version-in-branch-pattern: (?<version>[vV]?\d+(\.\d+)?(\.\d+)?).* -major-version-bump-message: \+semver:\s?(breaking|major) -minor-version-bump-message: \+semver:\s?(feature|minor) -patch-version-bump-message: \+semver:\s?(fix|patch) -no-bump-message: \+semver:\s?(none|skip) +tag-prefix: "[vV]?" +version-in-branch-pattern: "(?<version>[vV]?\\d+(\\.\\d+)?(\\.\\d+)?).*" +major-version-bump-message: "\\+semver:\\s?(breaking|major)" +minor-version-bump-message: "\\+semver:\\s?(feature|minor)" +patch-version-bump-message: "\\+semver:\\s?(fix|patch)" +no-bump-message: "\\+semver:\\s?(none|skip)" tag-pre-release-weight: 60000 commit-date-format: yyyy-MM-dd merge-message-formats: {} update-build-number: true semantic-version-format: Strict strategies: -- Fallback -- ConfiguredNextVersion -- MergeMessage -- TaggedCommit -- TrackReleaseBranches -- VersionInBranchName + - Fallback + - ConfiguredNextVersion + - MergeMessage + - TaggedCommit + - TrackReleaseBranches + - VersionInBranchName branches: develop: mode: ContinuousDelivery @@ -29,7 +45,7 @@ branches: track-merge-message: true regex: ^dev(elop)?(ment)?$ source-branches: - - main + - main is-source-branch-for: [] tracks-release-branches: true is-release-branch: false @@ -42,7 +58,7 @@ branches: of-merged-branch: true track-merge-target: false track-merge-message: true - regex: ^master$|^main$ + regex: "^master$|^main$" source-branches: [] is-source-branch-for: [] tracks-release-branches: false @@ -57,10 +73,10 @@ branches: of-merged-branch: true when-current-commit-tagged: false track-merge-target: false - regex: ^releases?[\/-](?<BranchName>.+) + regex: "^releases?[\\/-](?<BranchName>.+)" source-branches: - - main - - support + - main + - support is-source-branch-for: [] tracks-release-branches: false is-release-branch: true @@ -68,37 +84,37 @@ branches: pre-release-weight: 30000 feature: mode: ManualDeployment - label: '{BranchName}' + label: "{BranchName}" increment: Inherit prevent-increment: when-current-commit-tagged: false track-merge-message: true - regex: ^features?[\/-](?<BranchName>.+) + regex: "^features?[\\/-](?<BranchName>.+)" source-branches: - - develop - - main - - release - - support - - hotfix + - develop + - main + - release + - support + - hotfix is-source-branch-for: [] is-main-branch: false pre-release-weight: 30000 pull-request: mode: ContinuousDelivery - label: PullRequest{Number} + label: "PullRequest{Number}" increment: Inherit prevent-increment: of-merged-branch: true when-current-commit-tagged: false track-merge-message: true - regex: ^(pull-requests|pull|pr)[\/-](?<Number>\d*) + regex: "^(pull-requests|pull|pr)[\\/-](?<Number>\\d*)" source-branches: - - develop - - main - - release - - feature - - support - - hotfix + - develop + - main + - release + - feature + - support + - hotfix is-source-branch-for: [] pre-release-weight: 30000 hotfix: @@ -107,10 +123,10 @@ branches: increment: Inherit prevent-increment: when-current-commit-tagged: false - regex: ^hotfix(es)?[\/-](?<BranchName>.+) + regex: "^hotfix(es)?[\\/-](?<BranchName>.+)" source-branches: - - main - - support + - main + - support is-source-branch-for: [] is-release-branch: true is-main-branch: false @@ -121,9 +137,9 @@ branches: prevent-increment: of-merged-branch: true track-merge-target: false - regex: ^support[\/-](?<BranchName>.+) + regex: "^support[\\/-](?<BranchName>.+)" source-branches: - - main + - main is-source-branch-for: [] tracks-release-branches: false is-release-branch: false @@ -131,37 +147,21 @@ branches: pre-release-weight: 55000 unknown: mode: ManualDeployment - label: '{BranchName}' + label: "{BranchName}" increment: Inherit prevent-increment: when-current-commit-tagged: true - regex: (?<BranchName>.+) + regex: "(?<BranchName>.+)" source-branches: - - main - - develop - - release - - feature - - pull-request - - hotfix - - support + - main + - develop + - release + - feature + - pull-request + - hotfix + - support is-source-branch-for: [] is-main-branch: false ignore: sha: [] paths: [] -mode: ContinuousDelivery -label: '{BranchName}' -increment: Inherit -prevent-increment: - of-merged-branch: false - when-branch-merged: false - when-current-commit-tagged: true -track-merge-target: false -track-merge-message: true -commit-message-incrementing: Enabled -regex: '' -source-branches: [] -is-source-branch-for: [] -tracks-release-branches: false -is-release-branch: false -is-main-branch: false diff --git a/docs/input/docs/workflows/GitHubFlow/v1.yml b/docs/input/docs/workflows/GitHubFlow/v1.yml index be7da3a729..b45381a41a 100644 --- a/docs/input/docs/workflows/GitHubFlow/v1.yml +++ b/docs/input/docs/workflows/GitHubFlow/v1.yml @@ -1,23 +1,39 @@ +mode: ContinuousDelivery +label: "{BranchName}" +increment: Inherit +prevent-increment: + of-merged-branch: false + when-branch-merged: false + when-current-commit-tagged: true +track-merge-target: false +track-merge-message: true +commit-message-incrementing: Enabled +regex: '' +source-branches: [] +is-source-branch-for: [] +tracks-release-branches: false +is-release-branch: false +is-main-branch: false assembly-versioning-scheme: MajorMinorPatch assembly-file-versioning-scheme: MajorMinorPatch -tag-prefix: '[vV]?' -version-in-branch-pattern: (?<version>[vV]?\d+(\.\d+)?(\.\d+)?).* -major-version-bump-message: \+semver:\s?(breaking|major) -minor-version-bump-message: \+semver:\s?(feature|minor) -patch-version-bump-message: \+semver:\s?(fix|patch) -no-bump-message: \+semver:\s?(none|skip) +tag-prefix: "[vV]?" +version-in-branch-pattern: "(?<version>[vV]?\\d+(\\.\\d+)?(\\.\\d+)?).*" +major-version-bump-message: "\\+semver:\\s?(breaking|major)" +minor-version-bump-message: "\\+semver:\\s?(feature|minor)" +patch-version-bump-message: "\\+semver:\\s?(fix|patch)" +no-bump-message: "\\+semver:\\s?(none|skip)" tag-pre-release-weight: 60000 commit-date-format: yyyy-MM-dd merge-message-formats: {} update-build-number: true semantic-version-format: Strict strategies: -- Fallback -- ConfiguredNextVersion -- MergeMessage -- TaggedCommit -- TrackReleaseBranches -- VersionInBranchName + - Fallback + - ConfiguredNextVersion + - MergeMessage + - TaggedCommit + - TrackReleaseBranches + - VersionInBranchName branches: main: label: '' @@ -26,7 +42,7 @@ branches: of-merged-branch: true track-merge-target: false track-merge-message: true - regex: ^master$|^main$ + regex: "^master$|^main$" source-branches: [] is-source-branch-for: [] tracks-release-branches: false @@ -43,9 +59,9 @@ branches: when-current-commit-tagged: false track-merge-target: false track-merge-message: true - regex: ^releases?[\/-](?<BranchName>.+) + regex: "^releases?[\\/-](?<BranchName>.+)" source-branches: - - main + - main is-source-branch-for: [] tracks-release-branches: false is-release-branch: true @@ -53,64 +69,48 @@ branches: pre-release-weight: 30000 feature: mode: ManualDeployment - label: '{BranchName}' + label: "{BranchName}" increment: Inherit prevent-increment: when-current-commit-tagged: false track-merge-message: true - regex: ^features?[\/-](?<BranchName>.+) + regex: "^features?[\\/-](?<BranchName>.+)" source-branches: - - main - - release + - main + - release is-source-branch-for: [] is-main-branch: false pre-release-weight: 30000 pull-request: mode: ContinuousDelivery - label: PullRequest{Number} + label: "PullRequest{Number}" increment: Inherit prevent-increment: of-merged-branch: true when-current-commit-tagged: false track-merge-message: true - regex: ^(pull-requests|pull|pr)[\/-](?<Number>\d*) + regex: "^(pull-requests|pull|pr)[\\/-](?<Number>\\d*)" source-branches: - - main - - release - - feature + - main + - release + - feature is-source-branch-for: [] pre-release-weight: 30000 unknown: mode: ManualDeployment - label: '{BranchName}' + label: "{BranchName}" increment: Inherit prevent-increment: when-current-commit-tagged: false track-merge-message: false - regex: (?<BranchName>.+) + regex: "(?<BranchName>.+)" source-branches: - - main - - release - - feature - - pull-request + - main + - release + - feature + - pull-request is-source-branch-for: [] is-main-branch: false ignore: sha: [] paths: [] -mode: ContinuousDelivery -label: '{BranchName}' -increment: Inherit -prevent-increment: - of-merged-branch: false - when-branch-merged: false - when-current-commit-tagged: true -track-merge-target: false -track-merge-message: true -commit-message-incrementing: Enabled -regex: '' -source-branches: [] -is-source-branch-for: [] -tracks-release-branches: false -is-release-branch: false -is-main-branch: false diff --git a/docs/input/docs/workflows/TrunkBased/preview1.yml b/docs/input/docs/workflows/TrunkBased/preview1.yml index c261444d9f..0b8cfcda4f 100644 --- a/docs/input/docs/workflows/TrunkBased/preview1.yml +++ b/docs/input/docs/workflows/TrunkBased/preview1.yml @@ -1,19 +1,35 @@ +mode: ContinuousDelivery +label: "{BranchName}" +increment: Inherit +prevent-increment: + of-merged-branch: false + when-branch-merged: false + when-current-commit-tagged: true +track-merge-target: false +track-merge-message: true +commit-message-incrementing: Enabled +regex: '' +source-branches: [] +is-source-branch-for: [] +tracks-release-branches: false +is-release-branch: false +is-main-branch: false assembly-versioning-scheme: MajorMinorPatch assembly-file-versioning-scheme: MajorMinorPatch -tag-prefix: '[vV]?' -version-in-branch-pattern: (?<version>[vV]?\d+(\.\d+)?(\.\d+)?).* -major-version-bump-message: \+semver:\s?(breaking|major) -minor-version-bump-message: \+semver:\s?(feature|minor) -patch-version-bump-message: \+semver:\s?(fix|patch) -no-bump-message: \+semver:\s?(none|skip) +tag-prefix: "[vV]?" +version-in-branch-pattern: "(?<version>[vV]?\\d+(\\.\\d+)?(\\.\\d+)?).*" +major-version-bump-message: "\\+semver:\\s?(breaking|major)" +minor-version-bump-message: "\\+semver:\\s?(feature|minor)" +patch-version-bump-message: "\\+semver:\\s?(fix|patch)" +no-bump-message: "\\+semver:\\s?(none|skip)" tag-pre-release-weight: 60000 commit-date-format: yyyy-MM-dd merge-message-formats: {} update-build-number: true semantic-version-format: Strict strategies: -- ConfiguredNextVersion -- Mainline + - ConfiguredNextVersion + - Mainline branches: main: mode: ContinuousDeployment @@ -23,7 +39,7 @@ branches: of-merged-branch: true track-merge-target: false track-merge-message: true - regex: ^master$|^main$ + regex: "^master$|^main$" source-branches: [] is-source-branch-for: [] tracks-release-branches: false @@ -32,70 +48,54 @@ branches: pre-release-weight: 55000 feature: mode: ContinuousDelivery - label: '{BranchName}' + label: "{BranchName}" increment: Minor prevent-increment: when-current-commit-tagged: false track-merge-message: true - regex: ^features?[\/-](?<BranchName>.+) + regex: "^features?[\\/-](?<BranchName>.+)" source-branches: - - main + - main is-source-branch-for: [] is-main-branch: false pre-release-weight: 30000 hotfix: mode: ContinuousDelivery - label: '{BranchName}' + label: "{BranchName}" increment: Patch prevent-increment: when-current-commit-tagged: false - regex: ^hotfix(es)?[\/-](?<BranchName>.+) + regex: "^hotfix(es)?[\\/-](?<BranchName>.+)" source-branches: - - main + - main is-source-branch-for: [] is-release-branch: true is-main-branch: false pre-release-weight: 30000 pull-request: mode: ContinuousDelivery - label: PullRequest{Number} + label: "PullRequest{Number}" increment: Inherit prevent-increment: of-merged-branch: true when-current-commit-tagged: false track-merge-message: true - regex: ^(pull-requests|pull|pr)[\/-](?<Number>\d*) + regex: "^(pull-requests|pull|pr)[\\/-](?<Number>\\d*)" source-branches: - - main - - feature - - hotfix + - main + - feature + - hotfix is-source-branch-for: [] pre-release-weight: 30000 unknown: increment: Patch prevent-increment: when-current-commit-tagged: false - regex: (?<BranchName>.+) + regex: "(?<BranchName>.+)" source-branches: - - main + - main is-source-branch-for: [] pre-release-weight: 30000 ignore: sha: [] paths: [] -mode: ContinuousDelivery -label: '{BranchName}' -increment: Inherit -prevent-increment: - of-merged-branch: false - when-branch-merged: false - when-current-commit-tagged: true -track-merge-target: false -track-merge-message: true -commit-message-incrementing: Enabled -regex: '' -source-branches: [] -is-source-branch-for: [] -tracks-release-branches: false -is-release-branch: false -is-main-branch: false diff --git a/global.json b/global.json index 83a2010aca..2924e58a3b 100644 --- a/global.json +++ b/global.json @@ -1,10 +1,13 @@ { - "projects": [ - "build", - "new-cli", - "src" - ], - "sdk": { - "version": "9.0.306" - } + "projects": [ + "build", + "new-cli", + "src" + ], + "sdk": { + "version": "10.0.301" + }, + "test": { + "runner": "Microsoft.Testing.Platform" + } } diff --git a/new-cli/.run/Calculate.run.xml b/new-cli/.run/Calculate.run.xml index 018cb7f4fc..49ed2806d4 100644 --- a/new-cli/.run/Calculate.run.xml +++ b/new-cli/.run/Calculate.run.xml @@ -1,18 +1,21 @@ <component name="ProjectRunConfigurationManager"> <configuration default="false" name="Calculate" type="DotNetProject" factoryName=".NET Project"> - <option name="EXE_PATH" value="$PROJECT_DIR$/GitVersion.Cli/bin/Debug/net9.0/gitversion" /> + <option name="EXE_PATH" value="$PROJECT_DIR$/GitVersion.Cli/bin/Debug/net10.0/gitversion" /> <option name="PROGRAM_PARAMETERS" value="@docs/calculate.rsp" /> <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" /> <option name="PASS_PARENT_ENVS" value="1" /> - <option name="USE_EXTERNAL_CONSOLE" value="0" /> + <option name="ENV_FILE_PATHS" value="" /> + <option name="REDIRECT_INPUT_PATH" value="" /> + <option name="MIXED_MODE_DEBUG" value="0" /> <option name="USE_MONO" value="0" /> <option name="RUNTIME_ARGUMENTS" value="" /> + <option name="AUTO_ATTACH_CHILDREN" value="0" /> <option name="PROJECT_PATH" value="$PROJECT_DIR$/GitVersion.Cli/GitVersion.Cli.csproj" /> <option name="PROJECT_EXE_PATH_TRACKING" value="1" /> <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> - <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="0" /> - <option name="PROJECT_KIND" value="DotNetCore" /> - <option name="PROJECT_TFM" value="net9.0" /> + <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="1" /> + <option name="PROJECT_KIND" value="Unloaded" /> + <option name="PROJECT_TFM" value="net10.0" /> <method v="2"> <option name="Build" /> </method> diff --git a/new-cli/.run/Config Help.run.xml b/new-cli/.run/Config Help.run.xml index 4e0be82dd7..c1364f1f17 100644 --- a/new-cli/.run/Config Help.run.xml +++ b/new-cli/.run/Config Help.run.xml @@ -1,18 +1,21 @@ <component name="ProjectRunConfigurationManager"> <configuration default="false" name="Config Help" type="DotNetProject" factoryName=".NET Project"> - <option name="EXE_PATH" value="$PROJECT_DIR$/GitVersion.Cli/bin/Debug/net9.0/gitversion" /> + <option name="EXE_PATH" value="$PROJECT_DIR$/GitVersion.Cli/bin/Debug/net10.0/gitversion" /> <option name="PROGRAM_PARAMETERS" value="@docs/config-help.rsp" /> <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" /> <option name="PASS_PARENT_ENVS" value="1" /> - <option name="USE_EXTERNAL_CONSOLE" value="0" /> + <option name="ENV_FILE_PATHS" value="" /> + <option name="REDIRECT_INPUT_PATH" value="" /> + <option name="MIXED_MODE_DEBUG" value="0" /> <option name="USE_MONO" value="0" /> <option name="RUNTIME_ARGUMENTS" value="" /> + <option name="AUTO_ATTACH_CHILDREN" value="0" /> <option name="PROJECT_PATH" value="$PROJECT_DIR$/GitVersion.Cli/GitVersion.Cli.csproj" /> <option name="PROJECT_EXE_PATH_TRACKING" value="1" /> <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> - <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="0" /> - <option name="PROJECT_KIND" value="DotNetCore" /> - <option name="PROJECT_TFM" value="net9.0" /> + <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="1" /> + <option name="PROJECT_KIND" value="Unloaded" /> + <option name="PROJECT_TFM" value="net10.0" /> <method v="2"> <option name="Build" /> </method> diff --git a/new-cli/.run/Config Init.run.xml b/new-cli/.run/Config Init.run.xml index f188a379c1..d23d840cf4 100644 --- a/new-cli/.run/Config Init.run.xml +++ b/new-cli/.run/Config Init.run.xml @@ -1,18 +1,21 @@ <component name="ProjectRunConfigurationManager"> <configuration default="false" name="Config Init" type="DotNetProject" factoryName=".NET Project"> - <option name="EXE_PATH" value="$PROJECT_DIR$/GitVersion.Cli/bin/Debug/net9.0/gitversion" /> + <option name="EXE_PATH" value="$PROJECT_DIR$/GitVersion.Cli/bin/Debug/net10.0/gitversion" /> <option name="PROGRAM_PARAMETERS" value="@docs/config-init.rsp" /> <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" /> <option name="PASS_PARENT_ENVS" value="1" /> - <option name="USE_EXTERNAL_CONSOLE" value="0" /> + <option name="ENV_FILE_PATHS" value="" /> + <option name="REDIRECT_INPUT_PATH" value="" /> + <option name="MIXED_MODE_DEBUG" value="0" /> <option name="USE_MONO" value="0" /> <option name="RUNTIME_ARGUMENTS" value="" /> + <option name="AUTO_ATTACH_CHILDREN" value="0" /> <option name="PROJECT_PATH" value="$PROJECT_DIR$/GitVersion.Cli/GitVersion.Cli.csproj" /> <option name="PROJECT_EXE_PATH_TRACKING" value="1" /> <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> - <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="0" /> - <option name="PROJECT_KIND" value="DotNetCore" /> - <option name="PROJECT_TFM" value="net9.0" /> + <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="1" /> + <option name="PROJECT_KIND" value="Unloaded" /> + <option name="PROJECT_TFM" value="net10.0" /> <method v="2"> <option name="Build" /> </method> diff --git a/new-cli/.run/Config Show.run.xml b/new-cli/.run/Config Show.run.xml index 72e1fdcd29..2f42e2fb96 100644 --- a/new-cli/.run/Config Show.run.xml +++ b/new-cli/.run/Config Show.run.xml @@ -1,18 +1,21 @@ <component name="ProjectRunConfigurationManager"> <configuration default="false" name="Config Show" type="DotNetProject" factoryName=".NET Project"> - <option name="EXE_PATH" value="$PROJECT_DIR$/GitVersion.Cli/bin/Debug/net9.0/gitversion" /> + <option name="EXE_PATH" value="$PROJECT_DIR$/GitVersion.Cli/bin/Debug/net10.0/gitversion" /> <option name="PROGRAM_PARAMETERS" value="@docs/config-show.rsp" /> <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" /> <option name="PASS_PARENT_ENVS" value="1" /> - <option name="USE_EXTERNAL_CONSOLE" value="0" /> + <option name="ENV_FILE_PATHS" value="" /> + <option name="REDIRECT_INPUT_PATH" value="" /> + <option name="MIXED_MODE_DEBUG" value="0" /> <option name="USE_MONO" value="0" /> <option name="RUNTIME_ARGUMENTS" value="" /> + <option name="AUTO_ATTACH_CHILDREN" value="0" /> <option name="PROJECT_PATH" value="$PROJECT_DIR$/GitVersion.Cli/GitVersion.Cli.csproj" /> <option name="PROJECT_EXE_PATH_TRACKING" value="1" /> <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> - <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="0" /> - <option name="PROJECT_KIND" value="DotNetCore" /> - <option name="PROJECT_TFM" value="net9.0" /> + <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="1" /> + <option name="PROJECT_KIND" value="Unloaded" /> + <option name="PROJECT_TFM" value="net10.0" /> <method v="2"> <option name="Build" /> </method> diff --git a/new-cli/.run/Help.run.xml b/new-cli/.run/Help.run.xml index 1baa8e5ef1..0e04d9b19b 100644 --- a/new-cli/.run/Help.run.xml +++ b/new-cli/.run/Help.run.xml @@ -1,18 +1,21 @@ <component name="ProjectRunConfigurationManager"> <configuration default="false" name="Help" type="DotNetProject" factoryName=".NET Project"> - <option name="EXE_PATH" value="$PROJECT_DIR$/GitVersion.Cli/bin/Debug/net9.0/gitversion" /> + <option name="EXE_PATH" value="$PROJECT_DIR$/GitVersion.Cli/bin/Debug/net10.0/gitversion" /> <option name="PROGRAM_PARAMETERS" value="@docs/help.rsp" /> <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" /> <option name="PASS_PARENT_ENVS" value="1" /> - <option name="USE_EXTERNAL_CONSOLE" value="0" /> + <option name="ENV_FILE_PATHS" value="" /> + <option name="REDIRECT_INPUT_PATH" value="" /> + <option name="MIXED_MODE_DEBUG" value="0" /> <option name="USE_MONO" value="0" /> <option name="RUNTIME_ARGUMENTS" value="" /> + <option name="AUTO_ATTACH_CHILDREN" value="0" /> <option name="PROJECT_PATH" value="$PROJECT_DIR$/GitVersion.Cli/GitVersion.Cli.csproj" /> <option name="PROJECT_EXE_PATH_TRACKING" value="1" /> <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> - <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="0" /> - <option name="PROJECT_KIND" value="DotNetCore" /> - <option name="PROJECT_TFM" value="net9.0" /> + <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="1" /> + <option name="PROJECT_KIND" value="Unloaded" /> + <option name="PROJECT_TFM" value="net10.0" /> <method v="2"> <option name="Build" /> </method> diff --git a/new-cli/.run/Normalize.run.xml b/new-cli/.run/Normalize.run.xml index f77ee611de..409877c7bd 100644 --- a/new-cli/.run/Normalize.run.xml +++ b/new-cli/.run/Normalize.run.xml @@ -1,18 +1,21 @@ <component name="ProjectRunConfigurationManager"> <configuration default="false" name="Normalize" type="DotNetProject" factoryName=".NET Project"> - <option name="EXE_PATH" value="$PROJECT_DIR$/GitVersion.Cli/bin/Debug/net9.0/gitversion" /> + <option name="EXE_PATH" value="$PROJECT_DIR$/GitVersion.Cli/bin/Debug/net10.0/gitversion" /> <option name="PROGRAM_PARAMETERS" value="@docs/normalize.rsp" /> <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" /> <option name="PASS_PARENT_ENVS" value="1" /> - <option name="USE_EXTERNAL_CONSOLE" value="0" /> + <option name="ENV_FILE_PATHS" value="" /> + <option name="REDIRECT_INPUT_PATH" value="" /> + <option name="MIXED_MODE_DEBUG" value="0" /> <option name="USE_MONO" value="0" /> <option name="RUNTIME_ARGUMENTS" value="" /> + <option name="AUTO_ATTACH_CHILDREN" value="0" /> <option name="PROJECT_PATH" value="$PROJECT_DIR$/GitVersion.Cli/GitVersion.Cli.csproj" /> <option name="PROJECT_EXE_PATH_TRACKING" value="1" /> <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> - <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="0" /> - <option name="PROJECT_KIND" value="DotNetCore" /> - <option name="PROJECT_TFM" value="net9.0" /> + <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="1" /> + <option name="PROJECT_KIND" value="Unloaded" /> + <option name="PROJECT_TFM" value="net10.0" /> <method v="2"> <option name="Build" /> </method> diff --git a/new-cli/.run/Output AssemblyInfo.run.xml b/new-cli/.run/Output AssemblyInfo.run.xml index 514f75ccfe..9c0fec9e66 100644 --- a/new-cli/.run/Output AssemblyInfo.run.xml +++ b/new-cli/.run/Output AssemblyInfo.run.xml @@ -1,6 +1,6 @@ <component name="ProjectRunConfigurationManager"> <configuration default="false" name="Output AssemblyInfo" type="DotNetProject" factoryName=".NET Project"> - <option name="EXE_PATH" value="$PROJECT_DIR$/GitVersion.Cli/bin/Debug/net9.0/gitversion" /> + <option name="EXE_PATH" value="$PROJECT_DIR$/GitVersion.Cli/bin/Debug/net10.0/gitversion" /> <option name="PROGRAM_PARAMETERS" value="@docs/output-assemblyinfo.rsp" /> <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" /> <option name="PASS_PARENT_ENVS" value="1" /> @@ -12,9 +12,9 @@ <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="0" /> <option name="PROJECT_KIND" value="DotNetCore" /> - <option name="PROJECT_TFM" value="net9.0" /> + <option name="PROJECT_TFM" value="net10.0" /> <method v="2"> <option name="Build" /> </method> </configuration> -</component> \ No newline at end of file +</component> diff --git a/new-cli/.run/Output Help.run.xml b/new-cli/.run/Output Help.run.xml index eb86159ea7..88eee97bf0 100644 --- a/new-cli/.run/Output Help.run.xml +++ b/new-cli/.run/Output Help.run.xml @@ -1,18 +1,21 @@ <component name="ProjectRunConfigurationManager"> <configuration default="false" name="Output Help" type="DotNetProject" factoryName=".NET Project"> - <option name="EXE_PATH" value="$PROJECT_DIR$/GitVersion.Cli/bin/Debug/net9.0/gitversion" /> + <option name="EXE_PATH" value="$PROJECT_DIR$/GitVersion.Cli/bin/Debug/net10.0/gitversion" /> <option name="PROGRAM_PARAMETERS" value="@docs/output-help.rsp" /> <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" /> <option name="PASS_PARENT_ENVS" value="1" /> - <option name="USE_EXTERNAL_CONSOLE" value="0" /> + <option name="ENV_FILE_PATHS" value="" /> + <option name="REDIRECT_INPUT_PATH" value="" /> + <option name="MIXED_MODE_DEBUG" value="0" /> <option name="USE_MONO" value="0" /> <option name="RUNTIME_ARGUMENTS" value="" /> + <option name="AUTO_ATTACH_CHILDREN" value="0" /> <option name="PROJECT_PATH" value="$PROJECT_DIR$/GitVersion.Cli/GitVersion.Cli.csproj" /> <option name="PROJECT_EXE_PATH_TRACKING" value="1" /> <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> - <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="0" /> - <option name="PROJECT_KIND" value="DotNetCore" /> - <option name="PROJECT_TFM" value="net9.0" /> + <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="1" /> + <option name="PROJECT_KIND" value="Unloaded" /> + <option name="PROJECT_TFM" value="net10.0" /> <method v="2"> <option name="Build" /> </method> diff --git a/new-cli/.run/Output Project.run.xml b/new-cli/.run/Output Project.run.xml index 23976608fd..eaa5556d42 100644 --- a/new-cli/.run/Output Project.run.xml +++ b/new-cli/.run/Output Project.run.xml @@ -1,18 +1,21 @@ <component name="ProjectRunConfigurationManager"> <configuration default="false" name="Output Project" type="DotNetProject" factoryName=".NET Project"> - <option name="EXE_PATH" value="$PROJECT_DIR$/GitVersion.Cli/bin/Debug/net9.0/gitversion" /> + <option name="EXE_PATH" value="$PROJECT_DIR$/GitVersion.Cli/bin/Debug/net10.0/gitversion" /> <option name="PROGRAM_PARAMETERS" value="@docs/output-project.rsp" /> <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" /> <option name="PASS_PARENT_ENVS" value="1" /> - <option name="USE_EXTERNAL_CONSOLE" value="0" /> + <option name="ENV_FILE_PATHS" value="" /> + <option name="REDIRECT_INPUT_PATH" value="" /> + <option name="MIXED_MODE_DEBUG" value="0" /> <option name="USE_MONO" value="0" /> <option name="RUNTIME_ARGUMENTS" value="" /> + <option name="AUTO_ATTACH_CHILDREN" value="0" /> <option name="PROJECT_PATH" value="$PROJECT_DIR$/GitVersion.Cli/GitVersion.Cli.csproj" /> <option name="PROJECT_EXE_PATH_TRACKING" value="1" /> <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> - <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="0" /> - <option name="PROJECT_KIND" value="DotNetCore" /> - <option name="PROJECT_TFM" value="net9.0" /> + <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="1" /> + <option name="PROJECT_KIND" value="Unloaded" /> + <option name="PROJECT_TFM" value="net10.0" /> <method v="2"> <option name="Build" /> </method> diff --git a/new-cli/.run/Output Wix.run.xml b/new-cli/.run/Output Wix.run.xml index 7c35b9079a..b1deb9978b 100644 --- a/new-cli/.run/Output Wix.run.xml +++ b/new-cli/.run/Output Wix.run.xml @@ -1,18 +1,21 @@ <component name="ProjectRunConfigurationManager"> <configuration default="false" name="Output Wix" type="DotNetProject" factoryName=".NET Project"> - <option name="EXE_PATH" value="$PROJECT_DIR$/GitVersion.Cli/bin/Debug/net9.0/gitversion" /> + <option name="EXE_PATH" value="$PROJECT_DIR$/GitVersion.Cli/bin/Debug/net10.0/gitversion" /> <option name="PROGRAM_PARAMETERS" value="@docs/output-wix.rsp" /> <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" /> <option name="PASS_PARENT_ENVS" value="1" /> - <option name="USE_EXTERNAL_CONSOLE" value="0" /> + <option name="ENV_FILE_PATHS" value="" /> + <option name="REDIRECT_INPUT_PATH" value="" /> + <option name="MIXED_MODE_DEBUG" value="0" /> <option name="USE_MONO" value="0" /> <option name="RUNTIME_ARGUMENTS" value="" /> + <option name="AUTO_ATTACH_CHILDREN" value="0" /> <option name="PROJECT_PATH" value="$PROJECT_DIR$/GitVersion.Cli/GitVersion.Cli.csproj" /> <option name="PROJECT_EXE_PATH_TRACKING" value="1" /> <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> - <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="0" /> - <option name="PROJECT_KIND" value="DotNetCore" /> - <option name="PROJECT_TFM" value="net9.0" /> + <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="1" /> + <option name="PROJECT_KIND" value="Unloaded" /> + <option name="PROJECT_TFM" value="net10.0" /> <method v="2"> <option name="Build" /> </method> diff --git a/new-cli/.run/TestCommand.run.xml b/new-cli/.run/TestCommand.run.xml index 6d8c05c0fb..1b005c19e9 100644 --- a/new-cli/.run/TestCommand.run.xml +++ b/new-cli/.run/TestCommand.run.xml @@ -1,23 +1,21 @@ <component name="ProjectRunConfigurationManager"> <configuration default="false" name="TestCommand" type="DotNetProject" factoryName=".NET Project"> - <option name="EXE_PATH" value="$PROJECT_DIR$/GitVersion.Cli/bin/Debug/net9.0/gitversion" /> + <option name="EXE_PATH" value="$PROJECT_DIR$/GitVersion.Cli/bin/Debug/net10.0/gitversion" /> <option name="PROGRAM_PARAMETERS" value="test -i test.txt" /> <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" /> <option name="PASS_PARENT_ENVS" value="1" /> - <option name="USE_EXTERNAL_CONSOLE" value="0" /> <option name="ENV_FILE_PATHS" value="" /> <option name="REDIRECT_INPUT_PATH" value="" /> - <option name="PTY_MODE" value="Auto" /> + <option name="MIXED_MODE_DEBUG" value="0" /> <option name="USE_MONO" value="0" /> <option name="RUNTIME_ARGUMENTS" value="" /> <option name="AUTO_ATTACH_CHILDREN" value="0" /> - <option name="MIXED_MODE_DEBUG" value="0" /> <option name="PROJECT_PATH" value="$PROJECT_DIR$/GitVersion.Cli/GitVersion.Cli.csproj" /> <option name="PROJECT_EXE_PATH_TRACKING" value="1" /> <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> - <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="0" /> - <option name="PROJECT_KIND" value="DotNetCore" /> - <option name="PROJECT_TFM" value="net9.0" /> + <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="1" /> + <option name="PROJECT_KIND" value="Unloaded" /> + <option name="PROJECT_TFM" value="net10.0" /> <method v="2"> <option name="Build" /> </method> diff --git a/new-cli/.run/Tester.run.xml b/new-cli/.run/Tester.run.xml index d59e277cea..8c1cfab800 100644 --- a/new-cli/.run/Tester.run.xml +++ b/new-cli/.run/Tester.run.xml @@ -1,18 +1,21 @@ <component name="ProjectRunConfigurationManager"> <configuration default="false" name="Tester" type="DotNetProject" factoryName=".NET Project"> - <option name="EXE_PATH" value="$PROJECT_DIR$/GitVersion.Core.Tester/bin/Debug/net9.0/gv" /> + <option name="EXE_PATH" value="$PROJECT_DIR$/GitVersion.Core.Tester/bin/Debug/net10.0/gv" /> <option name="PROGRAM_PARAMETERS" value="" /> - <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/GitVersion.Core.Tester/bin/Debug/net9.0" /> + <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/GitVersion.Core.Tester/bin/Debug/net10.0" /> <option name="PASS_PARENT_ENVS" value="1" /> - <option name="USE_EXTERNAL_CONSOLE" value="0" /> + <option name="ENV_FILE_PATHS" value="" /> + <option name="REDIRECT_INPUT_PATH" value="" /> + <option name="MIXED_MODE_DEBUG" value="0" /> <option name="USE_MONO" value="0" /> <option name="RUNTIME_ARGUMENTS" value="" /> + <option name="AUTO_ATTACH_CHILDREN" value="0" /> <option name="PROJECT_PATH" value="$PROJECT_DIR$/GitVersion.Core.Tester/GitVersion.Core.Tester.csproj" /> <option name="PROJECT_EXE_PATH_TRACKING" value="1" /> <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="1" /> - <option name="PROJECT_KIND" value="DotNetCore" /> - <option name="PROJECT_TFM" value="net9.0" /> + <option name="PROJECT_KIND" value="Unloaded" /> + <option name="PROJECT_TFM" value="net10.0" /> <method v="2"> <option name="Build" /> </method> diff --git a/new-cli/.run/Version.run.xml b/new-cli/.run/Version.run.xml index 1c5607e906..9db7b44afd 100644 --- a/new-cli/.run/Version.run.xml +++ b/new-cli/.run/Version.run.xml @@ -1,18 +1,21 @@ <component name="ProjectRunConfigurationManager"> <configuration default="false" name="Version" type="DotNetProject" factoryName=".NET Project"> - <option name="EXE_PATH" value="$PROJECT_DIR$/GitVersion.Cli/bin/Debug/net9.0/gitversion" /> + <option name="EXE_PATH" value="$PROJECT_DIR$/GitVersion.Cli/bin/Debug/net10.0/gitversion" /> <option name="PROGRAM_PARAMETERS" value="@docs/version.rsp" /> <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" /> <option name="PASS_PARENT_ENVS" value="1" /> - <option name="USE_EXTERNAL_CONSOLE" value="0" /> + <option name="ENV_FILE_PATHS" value="" /> + <option name="REDIRECT_INPUT_PATH" value="" /> + <option name="MIXED_MODE_DEBUG" value="0" /> <option name="USE_MONO" value="0" /> <option name="RUNTIME_ARGUMENTS" value="" /> + <option name="AUTO_ATTACH_CHILDREN" value="0" /> <option name="PROJECT_PATH" value="$PROJECT_DIR$/GitVersion.Cli/GitVersion.Cli.csproj" /> <option name="PROJECT_EXE_PATH_TRACKING" value="1" /> <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> - <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="0" /> - <option name="PROJECT_KIND" value="DotNetCore" /> - <option name="PROJECT_TFM" value="net9.0" /> + <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="1" /> + <option name="PROJECT_KIND" value="Unloaded" /> + <option name="PROJECT_TFM" value="net10.0" /> <method v="2"> <option name="Build" /> </method> diff --git a/new-cli/Directory.Build.props b/new-cli/Directory.Build.props index 986cfabbd7..33823c133b 100644 --- a/new-cli/Directory.Build.props +++ b/new-cli/Directory.Build.props @@ -1,12 +1,12 @@ <Project> <PropertyGroup> - <TargetFramework>net9.0</TargetFramework> + <TargetFramework>net10.0</TargetFramework> <RootNamespace>GitVersion</RootNamespace> <LangVersion>latest</LangVersion> <Nullable>enable</Nullable> <ImplicitUsings>enable</ImplicitUsings> - <NoWarn>8625;2254;IDE0005</NoWarn> + <NoWarn>$(NoWarn);IDE0005</NoWarn> <SatelliteResourceLanguages>en</SatelliteResourceLanguages> <EnableNETAnalyzers>true</EnableNETAnalyzers> diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index 87634d1214..b65c02264f 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -5,33 +5,34 @@ <ItemGroup> <!-- common packages --> <PackageVersion Include="LibGit2Sharp" Version="0.31.0" /> - <PackageVersion Include="Microsoft.CodeAnalysis.Analyzers" Version="4.14.0" /> - <PackageVersion Include="Microsoft.CodeAnalysis.CSharp" Version="4.14.0" /> - <PackageVersion Include="Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing" Version="1.1.2" /> - <PackageVersion Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="4.14.0" /> - <PackageVersion Include="Microsoft.CodeAnalysis.PublicApiAnalyzers" Version="4.14.0" /> + <PackageVersion Include="Microsoft.CodeAnalysis.Analyzers" Version="5.3.0" /> + <PackageVersion Include="Microsoft.CodeAnalysis.CSharp" Version="5.3.0" /> + <PackageVersion Include="Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing" Version="1.1.4" /> + <PackageVersion Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="5.3.0" /> + <PackageVersion Include="Microsoft.CodeAnalysis.PublicApiAnalyzers" Version="5.0.0-1.25277.114" /> <PackageVersion Include="Microsoft.CSharp" Version="4.7.0" /> - <PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="9.0.0" /> - <PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="9.0.10" /> - <PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="9.0.10" /> - <PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.0.0" /> - <PackageVersion Include="NUnit" Version="4.4.0" /> - <PackageVersion Include="NUnit.Analyzers" Version="4.11.1"> + <PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="10.0.5" /> + <PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="10.0.9" /> + <PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.9" /> + <PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.7.0" /> + <PackageVersion Include="NUnit" Version="4.6.1" /> + <PackageVersion Include="NUnit.Analyzers" Version="4.14.0"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> </PackageVersion> - <PackageVersion Include="NUnit3TestAdapter" Version="5.2.0" /> - <PackageVersion Include="Polly" Version="8.6.4" /> - <PackageVersion Include="Roslynator.Analyzers" Version="4.14.1" /> - <PackageVersion Include="Roslynator.Formatting.Analyzers" Version="4.14.1" /> + <PackageVersion Include="NUnit3TestAdapter" Version="6.2.0" /> + <PackageVersion Include="Polly" Version="8.7.0" /> + <PackageVersion Include="PolySharp" Version="1.16.0" /> + <PackageVersion Include="Roslynator.Analyzers" Version="4.15.0" /> + <PackageVersion Include="Roslynator.Formatting.Analyzers" Version="4.15.0" /> <!-- specific packages --> - <PackageVersion Include="Scriban" Version="6.5.0" /> - <PackageVersion Include="Serilog.Extensions.Logging" Version="9.0.2" /> - <PackageVersion Include="Serilog.Sinks.Console" Version="6.0.0" /> + <PackageVersion Include="Scriban" Version="7.2.5" /> + <PackageVersion Include="Serilog.Extensions.Logging" Version="10.0.0" /> + <PackageVersion Include="Serilog.Sinks.Console" Version="6.1.1" /> <PackageVersion Include="Serilog.Sinks.File" Version="7.0.0" /> <PackageVersion Include="Serilog.Sinks.Map" Version="2.0.0" /> - <PackageVersion Include="System.CommandLine" Version="2.0.0-rc.2.25502.107" /> - <PackageVersion Include="System.IO.Abstractions" Version="22.0.16" /> - <PackageVersion Include="System.Text.Json" Version="9.0.10" /> + <PackageVersion Include="System.CommandLine" Version="2.0.9" /> + <PackageVersion Include="System.IO.Abstractions" Version="22.1.1" /> + <PackageVersion Include="System.Text.Json" Version="10.0.9" /> </ItemGroup> </Project> \ No newline at end of file diff --git a/new-cli/GitVersion.Calculation/CalculateCommand.cs b/new-cli/GitVersion.Calculation/CalculateCommand.cs index 6b3dbb798a..b24b97f567 100644 --- a/new-cli/GitVersion.Calculation/CalculateCommand.cs +++ b/new-cli/GitVersion.Calculation/CalculateCommand.cs @@ -9,20 +9,20 @@ public record CalculateSettings : GitVersionSettings; [Command("calculate", "Calculates the version object from the git history.")] public class CalculateCommand(ILogger<CalculateCommand> logger, IService service, IGitRepository repository) : ICommand<CalculateSettings> { - private readonly ILogger _logger = logger.NotNull(); - private readonly IService _service = service.NotNull(); - private readonly IGitRepository _repository = repository.NotNull(); + private readonly ILogger logger = logger.NotNull(); + private readonly IService service = service.NotNull(); + private readonly IGitRepository repository = repository.NotNull(); public Task<int> InvokeAsync(CalculateSettings settings, CancellationToken cancellationToken = default) { - var value = _service.Call(); + var value = this.service.Call(); if (settings.WorkDir != null) { - _repository.DiscoverRepository(settings.WorkDir.FullName); - var branches = _repository.Branches.ToList(); - _logger.LogInformation("Command : 'calculate', LogFile : '{logFile}', WorkDir : '{workDir}' ", + this.repository.DiscoverRepository(settings.WorkDir.FullName); + var branches = this.repository.Branches.ToList(); + this.logger.LogInformation("Command : 'calculate', LogFile : '{logFile}', WorkDir : '{workDir}' ", settings.LogFile, settings.WorkDir); - _logger.LogInformation("Found {count} branches", branches.Count); + this.logger.LogInformation("Found {count} branches", branches.Count); } return Task.FromResult(value); diff --git a/new-cli/GitVersion.Cli.Generator.Tests/GitVersion.Cli.Generator.Tests.csproj b/new-cli/GitVersion.Cli.Generator.Tests/GitVersion.Cli.Generator.Tests.csproj index 13dd134bbf..7c28fa017a 100644 --- a/new-cli/GitVersion.Cli.Generator.Tests/GitVersion.Cli.Generator.Tests.csproj +++ b/new-cli/GitVersion.Cli.Generator.Tests/GitVersion.Cli.Generator.Tests.csproj @@ -1,8 +1,11 @@ <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> + <OutputType>Exe</OutputType> <RootNamespace>GitVersion.Cli.Generator.Tests</RootNamespace> <IsPackable>false</IsPackable> + + <EnableNUnitRunner>true</EnableNUnitRunner> </PropertyGroup> <ItemGroup> @@ -10,7 +13,6 @@ <PackageReference Include="Microsoft.Extensions.Logging.Abstractions" /> <PackageReference Include="System.CommandLine" /> - <PackageReference Include="Microsoft.CSharp" /> <PackageReference Include="Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing" /> <PackageReference Include="Microsoft.CodeAnalysis.CSharp" PrivateAssets="all" /> <PackageReference Include="Microsoft.CodeAnalysis.Analyzers" PrivateAssets="all" /> diff --git a/new-cli/GitVersion.Cli.Generator.Tests/SystemCommandlineGeneratorTests.cs b/new-cli/GitVersion.Cli.Generator.Tests/SystemCommandlineGeneratorTests.cs index 6e3775e48d..558be7654f 100644 --- a/new-cli/GitVersion.Cli.Generator.Tests/SystemCommandlineGeneratorTests.cs +++ b/new-cli/GitVersion.Cli.Generator.Tests/SystemCommandlineGeneratorTests.cs @@ -1,9 +1,10 @@ -using System.CommandLine; +using System.CommandLine; using GitVersion.Infrastructure; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp; using Microsoft.CodeAnalysis.CSharp.Testing; using Microsoft.CodeAnalysis.Testing; +using Microsoft.CodeAnalysis.Text; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; @@ -235,24 +236,26 @@ public record TestCommandSettings : GitVersionSettings public async Task ValidateGeneratedCommandImplementation() { var generatorType = typeof(SystemCommandlineGenerator); + var encoding = Encoding.UTF8; + const SourceHashAlgorithm sourceHash = SourceHashAlgorithm.Sha256; var sourceGeneratorTest = new CSharpSourceGeneratorTest<SystemCommandlineGenerator, DefaultVerifier> { TestState = { Sources = { - (generatorType, "GlobalUsings.cs", GlobalUsingsCode), - (generatorType, "TestCommand.cs", TestCommandSourceCode), - (generatorType, "TestCommandSettings.cs", TestCommandSettingsSourceCode) + (generatorType, "GlobalUsings.cs", SourceText.From(GlobalUsingsCode, encoding, sourceHash)), + (generatorType, "TestCommand.cs", SourceText.From(TestCommandSourceCode, encoding, sourceHash)), + (generatorType, "TestCommandSettings.cs", SourceText.From(TestCommandSettingsSourceCode, encoding, sourceHash)) }, GeneratedSources = { - (generatorType,"TestCommandImpl.g.cs", ExpectedCommandImplText), - (generatorType,"CommandsModule.g.cs", ExpectedCommandsModuleText), - (generatorType,"RootCommandImpl.g.cs", ExpectedRootCommandImplText), - (generatorType,"CliAppImpl.g.cs", ExpectedCliAppImplText), + (generatorType,"TestCommandImpl.g.cs", SourceText.From(ExpectedCommandImplText, encoding, sourceHash)), + (generatorType,"CommandsModule.g.cs", SourceText.From(ExpectedCommandsModuleText, encoding, sourceHash)), + (generatorType,"RootCommandImpl.g.cs", SourceText.From(ExpectedRootCommandImplText, encoding, sourceHash)), + (generatorType,"CliAppImpl.g.cs", SourceText.From(ExpectedCliAppImplText, encoding, sourceHash)), }, - ReferenceAssemblies = ReferenceAssemblies.Net.Net90, + ReferenceAssemblies = ReferenceAssemblies.Net.Net100, AdditionalReferences = { MetadataReference.CreateFromFile(typeof(ILogger).Assembly.Location), diff --git a/new-cli/GitVersion.Cli.Generator/GitVersion.Cli.Generator.csproj b/new-cli/GitVersion.Cli.Generator/GitVersion.Cli.Generator.csproj index d93d7009bb..25aa525fef 100644 --- a/new-cli/GitVersion.Cli.Generator/GitVersion.Cli.Generator.csproj +++ b/new-cli/GitVersion.Cli.Generator/GitVersion.Cli.Generator.csproj @@ -6,12 +6,17 @@ <PackageScribanIncludeSource>true</PackageScribanIncludeSource> <SatelliteResourceLanguages>en</SatelliteResourceLanguages> <EnforceExtendedAnalyzerRules>true</EnforceExtendedAnalyzerRules> + <PolySharpIncludeRuntimeSupportedAttributes>true</PolySharpIncludeRuntimeSupportedAttributes> </PropertyGroup> <ItemGroup> <PackageReference Include="Microsoft.CSharp" /> <PackageReference Include="Microsoft.CodeAnalysis.CSharp" PrivateAssets="all" /> <PackageReference Include="Microsoft.CodeAnalysis.Analyzers" PrivateAssets="all" /> + <PackageReference Include="PolySharp"> + <PrivateAssets>all</PrivateAssets> + <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> + </PackageReference> <PackageReference Include="Scriban" IncludeAssets="Build" /> <PackageReference Include="System.Text.Json" /> </ItemGroup> diff --git a/new-cli/GitVersion.Cli.Generator/Polyfill/CallerArgumentExpressionAttribute.cs b/new-cli/GitVersion.Cli.Generator/Polyfill/CallerArgumentExpressionAttribute.cs deleted file mode 100644 index a1f589114f..0000000000 --- a/new-cli/GitVersion.Cli.Generator/Polyfill/CallerArgumentExpressionAttribute.cs +++ /dev/null @@ -1,40 +0,0 @@ -// <auto-generated /> -#pragma warning disable - -#if NETFRAMEWORK || NETSTANDARD || NETCOREAPP2X - -namespace System.Runtime.CompilerServices; - -using System.Diagnostics; -using System.Diagnostics.CodeAnalysis; -using Link = System.ComponentModel.DescriptionAttribute; - -/// <summary> -/// Indicates that a parameter captures the expression passed for another parameter as a string. -/// </summary> -[ExcludeFromCodeCoverage] -[DebuggerNonUserCode] -[AttributeUsage(AttributeTargets.Parameter)] -[Link("https://learn.microsoft.com/en-us/dotnet/api/system.runtime.compilerservices.callerargumentexpressionattribute")] -#if PolyPublic -public -#endif -sealed class CallerArgumentExpressionAttribute : - Attribute -{ - /// <summary> - /// Initializes a new instance of the <see cref="CallerArgumentExpressionAttribute"/> class. - /// </summary> - /// <param name="parameterName"> - /// The name of the parameter whose expression should be captured as a string. - /// </param> - public CallerArgumentExpressionAttribute(string parameterName) => - ParameterName = parameterName; - - /// <summary> - /// Gets the name of the parameter whose expression should be captured as a string. - /// </summary> - public string ParameterName { get; } -} - -#endif diff --git a/new-cli/GitVersion.Cli.Generator/Polyfill/CompilerFeatureRequiredAttribute.cs b/new-cli/GitVersion.Cli.Generator/Polyfill/CompilerFeatureRequiredAttribute.cs deleted file mode 100644 index 37cf5ccc71..0000000000 --- a/new-cli/GitVersion.Cli.Generator/Polyfill/CompilerFeatureRequiredAttribute.cs +++ /dev/null @@ -1,56 +0,0 @@ -// <auto-generated /> -#pragma warning disable - -#if !NET7_0_OR_GREATER - -namespace System.Runtime.CompilerServices; - -using System.Diagnostics; -using System.Diagnostics.CodeAnalysis; -using Link = System.ComponentModel.DescriptionAttribute; - -/// <summary> -/// Indicates that compiler support for a particular feature is required for the location where this attribute is applied. -/// </summary> -[ExcludeFromCodeCoverage] -[DebuggerNonUserCode] -[AttributeUsage( - validOn: AttributeTargets.All, - AllowMultiple = true, - Inherited = false)] -[Link("https://learn.microsoft.com/en-us/dotnet/api/system.runtime.compilerservices.compilerfeaturerequiredattribute")] -#if PolyPublic -public -#endif -sealed class CompilerFeatureRequiredAttribute : - Attribute -{ - /// <summary> - /// Initialize a new instance of <see cref="CompilerFeatureRequiredAttribute"/> - /// </summary> - /// <param name="featureName">The name of the required compiler feature.</param> - public CompilerFeatureRequiredAttribute(string featureName) => - FeatureName = featureName; - - /// <summary> - /// The name of the compiler feature. - /// </summary> - public string FeatureName { get; } - - /// <summary> - /// If true, the compiler can choose to allow access to the location where this attribute is applied if it does not understand <see cref="FeatureName"/>. - /// </summary> - public bool IsOptional { get; init; } - - /// <summary> - /// The <see cref="FeatureName"/> used for the ref structs C# feature. - /// </summary> - public const string RefStructs = nameof(RefStructs); - - /// <summary> - /// The <see cref="FeatureName"/> used for the required members C# feature. - /// </summary> - public const string RequiredMembers = nameof(RequiredMembers); -} - -#endif diff --git a/new-cli/GitVersion.Cli.Generator/Polyfill/IsExternalInit.cs b/new-cli/GitVersion.Cli.Generator/Polyfill/IsExternalInit.cs deleted file mode 100644 index f7221c6dda..0000000000 --- a/new-cli/GitVersion.Cli.Generator/Polyfill/IsExternalInit.cs +++ /dev/null @@ -1,21 +0,0 @@ -// <auto-generated /> -#pragma warning disable - -#if !NET5_0_OR_GREATER - -namespace System.Runtime.CompilerServices; - -using System.Diagnostics; -using System.Diagnostics.CodeAnalysis; - -/// <summary> -/// Reserved to be used by the compiler for tracking metadata. This class should not be used by developers in source code. -/// </summary> -[ExcludeFromCodeCoverage] -[DebuggerNonUserCode] -#if PolyPublic -public -#endif -static class IsExternalInit; - -#endif diff --git a/new-cli/GitVersion.Cli.Generator/Polyfill/NotNullAttribute.cs b/new-cli/GitVersion.Cli.Generator/Polyfill/NotNullAttribute.cs deleted file mode 100644 index 827063a13d..0000000000 --- a/new-cli/GitVersion.Cli.Generator/Polyfill/NotNullAttribute.cs +++ /dev/null @@ -1,26 +0,0 @@ -// <auto-generated /> -#pragma warning disable - -#if NETSTANDARD2_0 || NETFRAMEWORK || NETCOREAPP2X - -namespace System.Diagnostics.CodeAnalysis; - -using Targets = AttributeTargets; - -/// <summary> -/// Specifies that an output is not <see langword="null"/> even if the -/// corresponding type allows it. -/// </summary> -[ExcludeFromCodeCoverage] -[DebuggerNonUserCode] -[AttributeUsage( - validOn: Targets.Field | - Targets.Parameter | - Targets.Property | - Targets.ReturnValue)] -#if PolyPublic -public -#endif -sealed class NotNullAttribute : - Attribute; -#endif diff --git a/new-cli/GitVersion.Cli.Generator/Polyfill/RequiredMemberAttribute.cs b/new-cli/GitVersion.Cli.Generator/Polyfill/RequiredMemberAttribute.cs deleted file mode 100644 index a38ca389fd..0000000000 --- a/new-cli/GitVersion.Cli.Generator/Polyfill/RequiredMemberAttribute.cs +++ /dev/null @@ -1,29 +0,0 @@ -// <auto-generated /> -#pragma warning disable - -#if !NET7_0_OR_GREATER - -namespace System.Runtime.CompilerServices; - -using System.Diagnostics; -using System.Diagnostics.CodeAnalysis; - -using Targets = AttributeTargets; - -/// <summary> -/// Specifies that a type has required members or that a member is required. -/// </summary> -[ExcludeFromCodeCoverage] -[DebuggerNonUserCode] -[AttributeUsage( - validOn: Targets.Class | - Targets.Struct | - Targets.Field | - Targets.Property, - Inherited = false)] -#if PolyPublic -public -#endif -sealed class RequiredMemberAttribute : - Attribute; -#endif diff --git a/new-cli/GitVersion.Cli.Generator/Polyfill/SetsRequiredMembersAttribute.cs b/new-cli/GitVersion.Cli.Generator/Polyfill/SetsRequiredMembersAttribute.cs deleted file mode 100644 index a3cdfc8608..0000000000 --- a/new-cli/GitVersion.Cli.Generator/Polyfill/SetsRequiredMembersAttribute.cs +++ /dev/null @@ -1,20 +0,0 @@ -// <auto-generated /> -#pragma warning disable - -#if !NET7_0_OR_GREATER - -namespace System.Diagnostics.CodeAnalysis; - -/// <summary> -/// Specifies that this constructor sets all required members for the current type, and callers -/// do not need to set any required members themselves. -/// </summary> -[ExcludeFromCodeCoverage] -[DebuggerNonUserCode] -[AttributeUsage(AttributeTargets.Constructor)] -#if PolyPublic -public -#endif -sealed class SetsRequiredMembersAttribute : - Attribute; -#endif diff --git a/new-cli/GitVersion.Cli.Generator/RoslynExtensions.cs b/new-cli/GitVersion.Cli.Generator/RoslynExtensions.cs index fe83125599..d4eef6817e 100644 --- a/new-cli/GitVersion.Cli.Generator/RoslynExtensions.cs +++ b/new-cli/GitVersion.Cli.Generator/RoslynExtensions.cs @@ -2,30 +2,36 @@ namespace GitVersion; public static class RoslynExtensions { - private static IEnumerable<ITypeSymbol> GetBaseTypesAndThis(this ITypeSymbol type) + extension(ITypeSymbol type) { - var current = type; - while (current != null) + private IEnumerable<ITypeSymbol> GetBaseTypesAndThis() { - yield return current; - current = current.BaseType; + var current = type; + while (current != null) + { + yield return current; + current = current.BaseType; + } } - } - public static IEnumerable<ITypeSymbol> GetBaseTypes(this ITypeSymbol type) - { - var current = type.BaseType; - while (current != null) + public IEnumerable<ITypeSymbol> GetBaseTypes() { - yield return current; - current = current.BaseType; + var current = type.BaseType; + while (current != null) + { + yield return current; + current = current.BaseType; + } } - } - public static IEnumerable<T> GetAllMembers<T>(this ITypeSymbol type) where T : ISymbol - => type.GetBaseTypesAndThis().SelectMany(n => n.GetMembers().OfType<T>()); + public IEnumerable<T> GetAllMembers<T>() where T : ISymbol + => type.GetBaseTypesAndThis().SelectMany(n => n.GetMembers().OfType<T>()); + } - public static AttributeData? GetAttributeData(this ISymbol namedType, string fullName) - => namedType.GetAttributes() - .SingleOrDefault(a => a.AttributeClass?.OriginalDefinition.ToDisplayString() == fullName); + extension(ISymbol namedType) + { + public AttributeData? GetAttributeData(string fullName) + => namedType.GetAttributes() + .SingleOrDefault(a => a.AttributeClass?.OriginalDefinition.ToDisplayString() == fullName); + } } diff --git a/new-cli/GitVersion.Cli.Generator/SystemCommandlineContent.cs b/new-cli/GitVersion.Cli.Generator/SystemCommandlineContent.cs index ce2fa4fd75..46f0b16b77 100644 --- a/new-cli/GitVersion.Cli.Generator/SystemCommandlineContent.cs +++ b/new-cli/GitVersion.Cli.Generator/SystemCommandlineContent.cs @@ -15,7 +15,7 @@ namespace {{GeneratedNamespaceName}}; public class {{Model.CommandTypeName}}Impl : Command, ICommandImpl { public string CommandImplName => nameof({{Model.CommandTypeName}}Impl); - {{- if (Model.ParentCommand | string.empty) }} + {{- if (Model.ParentCommand == null || Model.ParentCommand == "") }} public string ParentCommandImplName => string.Empty; {{- else }} public string ParentCommandImplName => nameof({{Model.ParentCommand}}Impl); diff --git a/new-cli/GitVersion.Cli.Generator/TypeVisitor.cs b/new-cli/GitVersion.Cli.Generator/TypeVisitor.cs index 6507afdd7d..e2f5e0f897 100644 --- a/new-cli/GitVersion.Cli.Generator/TypeVisitor.cs +++ b/new-cli/GitVersion.Cli.Generator/TypeVisitor.cs @@ -3,9 +3,9 @@ namespace GitVersion; internal class TypeVisitor(Func<INamedTypeSymbol, bool> searchQuery, CancellationToken cancellation) : SymbolVisitor { - private readonly HashSet<INamedTypeSymbol> _exportedTypes = new(SymbolEqualityComparer.Default); + private readonly HashSet<INamedTypeSymbol> exportedTypes = new(SymbolEqualityComparer.Default); - public ImmutableArray<INamedTypeSymbol> GetResults() => [.. _exportedTypes]; + public ImmutableArray<INamedTypeSymbol> GetResults() => [.. this.exportedTypes]; public override void VisitAssembly(IAssemblySymbol symbol) { @@ -28,7 +28,7 @@ public override void VisitNamedType(INamedTypeSymbol type) if (searchQuery(type)) { - _exportedTypes.Add(type); + this.exportedTypes.Add(type); } } } diff --git a/new-cli/GitVersion.Cli/GitVersion.Cli.csproj b/new-cli/GitVersion.Cli/GitVersion.Cli.csproj index cb8d1fadd6..db8ac4e94e 100644 --- a/new-cli/GitVersion.Cli/GitVersion.Cli.csproj +++ b/new-cli/GitVersion.Cli/GitVersion.Cli.csproj @@ -31,4 +31,11 @@ <ProjectReference Include="..\GitVersion.Cli.Generator\GitVersion.Cli.Generator.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="false" /> </ItemGroup> + <ItemGroup> + <Content Include="..\docs\*.rsp"> + <Link>docs\%(Filename)%(Extension)</Link> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> + </Content> + </ItemGroup> + </Project> diff --git a/new-cli/GitVersion.Configuration/ConfigCommand.cs b/new-cli/GitVersion.Configuration/ConfigCommand.cs index 7fde5361e2..23f7d2621b 100644 --- a/new-cli/GitVersion.Configuration/ConfigCommand.cs +++ b/new-cli/GitVersion.Configuration/ConfigCommand.cs @@ -8,13 +8,13 @@ public record ConfigSettings : GitVersionSettings; [Command("config", "Manages the GitVersion configuration file.")] public class ConfigCommand(ILogger<ConfigCommand> logger, IService service) : ICommand<ConfigSettings> { - private readonly ILogger _logger = logger.NotNull(); - private readonly IService _service = service.NotNull(); + private readonly ILogger logger = logger.NotNull(); + private readonly IService service = service.NotNull(); public Task<int> InvokeAsync(ConfigSettings settings, CancellationToken cancellationToken = default) { - var value = _service.Call(); - _logger.LogInformation($"Command : 'config', LogFile : '{settings.LogFile}', WorkDir : '{settings.WorkDir}' "); + var value = this.service.Call(); + this.logger.LogInformation($"Command : 'config', LogFile : '{settings.LogFile}', WorkDir : '{settings.WorkDir}' "); return Task.FromResult(value); } } diff --git a/new-cli/GitVersion.Configuration/Init/ConfigInitCommand.cs b/new-cli/GitVersion.Configuration/Init/ConfigInitCommand.cs index 1a1298e3be..8417453de0 100644 --- a/new-cli/GitVersion.Configuration/Init/ConfigInitCommand.cs +++ b/new-cli/GitVersion.Configuration/Init/ConfigInitCommand.cs @@ -8,13 +8,13 @@ public record ConfigInitSettings : ConfigSettings; [Command<ConfigCommand>("init", "Inits the configuration for current repository.")] public class ConfigInitCommand(ILogger<ConfigInitCommand> logger, IService service) : ICommand<ConfigInitSettings> { - private readonly ILogger _logger = logger.NotNull(); - private readonly IService _service = service.NotNull(); + private readonly ILogger logger = logger.NotNull(); + private readonly IService service = service.NotNull(); public Task<int> InvokeAsync(ConfigInitSettings settings, CancellationToken cancellationToken = default) { - var value = _service.Call(); - _logger.LogInformation($"Command : 'config init', LogFile : '{settings.LogFile}', WorkDir : '{settings.WorkDir}' "); + var value = this.service.Call(); + this.logger.LogInformation($"Command : 'config init', LogFile : '{settings.LogFile}', WorkDir : '{settings.WorkDir}' "); return Task.FromResult(value); } } diff --git a/new-cli/GitVersion.Configuration/Show/ConfigShowCommand.cs b/new-cli/GitVersion.Configuration/Show/ConfigShowCommand.cs index 6da714ca22..dc2eac2bd1 100644 --- a/new-cli/GitVersion.Configuration/Show/ConfigShowCommand.cs +++ b/new-cli/GitVersion.Configuration/Show/ConfigShowCommand.cs @@ -8,13 +8,13 @@ public record ConfigShowSettings : ConfigSettings; [Command<ConfigCommand>("show", "Shows the effective configuration.")] public class ConfigShowCommand(ILogger<ConfigShowCommand> logger, IService service) : ICommand<ConfigShowSettings> { - private readonly ILogger _logger = logger.NotNull(); - private readonly IService _service = service.NotNull(); + private readonly ILogger logger = logger.NotNull(); + private readonly IService service = service.NotNull(); public Task<int> InvokeAsync(ConfigShowSettings settings, CancellationToken cancellationToken = default) { - var value = _service.Call(); - _logger.LogInformation($"Command : 'config show', LogFile : '{settings.LogFile}', WorkDir : '{settings.WorkDir}' "); + var value = this.service.Call(); + this.logger.LogInformation($"Command : 'config show', LogFile : '{settings.LogFile}', WorkDir : '{settings.WorkDir}' "); return Task.FromResult(value); } } diff --git a/new-cli/GitVersion.Core/Extensions/ServiceCollectionExtensions.cs b/new-cli/GitVersion.Core/Extensions/ServiceCollectionExtensions.cs index e7e5ac36a9..0b9bfdf52a 100644 --- a/new-cli/GitVersion.Core/Extensions/ServiceCollectionExtensions.cs +++ b/new-cli/GitVersion.Core/Extensions/ServiceCollectionExtensions.cs @@ -6,18 +6,21 @@ namespace GitVersion.Extensions; public static class ServiceCollectionExtensions { - public static IServiceCollection RegisterModules(this IServiceCollection services, IEnumerable<IGitVersionModule> gitVersionModules) - => gitVersionModules.Aggregate(services, (current, gitVersionModule) => gitVersionModule.RegisterTypes(current)); - - public static IServiceCollection RegisterLogging(this IServiceCollection services) + extension(IServiceCollection services) { - services.AddLogging(builder => + public IServiceCollection RegisterModules(IEnumerable<IGitVersionModule> gitVersionModules) + => gitVersionModules.Aggregate(services, (current, gitVersionModule) => gitVersionModule.RegisterTypes(current)); + + public IServiceCollection RegisterLogging() { - var logger = CreateLogger(); - builder.AddSerilog(logger, dispose: true); - }); + services.AddLogging(builder => + { + var logger = CreateLogger(); + builder.AddSerilog(logger, dispose: true); + }); - return services; + return services; + } } private static Serilog.Core.Logger CreateLogger() diff --git a/new-cli/GitVersion.Core/GitVersion.Core.csproj b/new-cli/GitVersion.Core/GitVersion.Core.csproj index 47fe040631..61dfe0d4dc 100644 --- a/new-cli/GitVersion.Core/GitVersion.Core.csproj +++ b/new-cli/GitVersion.Core/GitVersion.Core.csproj @@ -4,6 +4,7 @@ </ItemGroup> <ItemGroup> <PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" /> + <PackageReference Include="Microsoft.Extensions.Logging.Abstractions" /> <PackageReference Include="Serilog.Extensions.Logging" /> <PackageReference Include="Serilog.Sinks.Console" /> <PackageReference Include="Serilog.Sinks.File" /> diff --git a/new-cli/GitVersion.Core/Infrastructure/LoggingEnricher.cs b/new-cli/GitVersion.Core/Infrastructure/LoggingEnricher.cs index c20dadce14..1f51ddfec9 100644 --- a/new-cli/GitVersion.Core/Infrastructure/LoggingEnricher.cs +++ b/new-cli/GitVersion.Core/Infrastructure/LoggingEnricher.cs @@ -6,11 +6,11 @@ namespace GitVersion.Infrastructure; public class LoggingEnricher : ILogEventEnricher { public static readonly LoggingLevelSwitch LogLevel = new(); - private string? _cachedLogFilePath; - private LogEventProperty? _cachedLogFilePathProp; + private string? cachedLogFilePath; + private LogEventProperty? cachedLogFilePathProp; // this path and level will be set by the LogInterceptor.cs after parsing the settings - private static string _path = string.Empty; + private static string path = string.Empty; public const string LogFilePathPropertyName = "LogFilePath"; @@ -20,17 +20,17 @@ public void Enrich(LogEvent logEvent, ILogEventPropertyFactory propFactory) // we won't have the setting, so a default value for the log file will be required LogEventProperty logFilePathProp; - if (_cachedLogFilePathProp != null && _path.Equals(_cachedLogFilePath)) + if (this.cachedLogFilePathProp != null && path.Equals(this.cachedLogFilePath)) { // The Path hasn't changed, so let's use the cached property - logFilePathProp = _cachedLogFilePathProp; + logFilePathProp = this.cachedLogFilePathProp; } else { // We've got a new path for the log. Let's create a new property // and cache it for future log events to use - _cachedLogFilePath = _path; - _cachedLogFilePathProp = logFilePathProp = propFactory.CreateProperty(LogFilePathPropertyName, _path); + this.cachedLogFilePath = path; + this.cachedLogFilePathProp = logFilePathProp = propFactory.CreateProperty(LogFilePathPropertyName, path); } logEvent.AddPropertyIfAbsent(logFilePathProp); @@ -38,7 +38,7 @@ public void Enrich(LogEvent logEvent, ILogEventPropertyFactory propFactory) public static void Configure(string? logFile, Verbosity verbosity) { - if (!string.IsNullOrWhiteSpace(logFile)) _path = logFile; + if (!string.IsNullOrWhiteSpace(logFile)) path = logFile; LogLevel.MinimumLevel = GetLevelForVerbosity(verbosity); } diff --git a/new-cli/GitVersion.Normalization/NormalizeCommand.cs b/new-cli/GitVersion.Normalization/NormalizeCommand.cs index ed38ea327b..8f1e13547f 100644 --- a/new-cli/GitVersion.Normalization/NormalizeCommand.cs +++ b/new-cli/GitVersion.Normalization/NormalizeCommand.cs @@ -8,13 +8,13 @@ public record NormalizeSettings : GitVersionSettings; [Command("normalize", "Normalizes the git repository for GitVersion calculations.")] public class NormalizeCommand(ILogger<NormalizeCommand> logger, IService service) : ICommand<NormalizeSettings> { - private readonly ILogger _logger = logger.NotNull(); - private readonly IService _service = service.NotNull(); + private readonly ILogger logger = logger.NotNull(); + private readonly IService service = service.NotNull(); public Task<int> InvokeAsync(NormalizeSettings settings, CancellationToken cancellationToken = default) { - var value = _service.Call(); - _logger.LogInformation($"Command : 'normalize', LogFile : '{settings.LogFile}', WorkDir : '{settings.WorkDir}' "); + var value = this.service.Call(); + this.logger.LogInformation($"Command : 'normalize', LogFile : '{settings.LogFile}', WorkDir : '{settings.WorkDir}' "); return Task.FromResult(value); } } diff --git a/new-cli/GitVersion.Output/AssemblyInfo/OutputAssemblyInfoCommand.cs b/new-cli/GitVersion.Output/AssemblyInfo/OutputAssemblyInfoCommand.cs index 44c373ef46..2d8903d44a 100644 --- a/new-cli/GitVersion.Output/AssemblyInfo/OutputAssemblyInfoCommand.cs +++ b/new-cli/GitVersion.Output/AssemblyInfo/OutputAssemblyInfoCommand.cs @@ -6,15 +6,15 @@ namespace GitVersion.Commands; [Command<OutputCommand>("assemblyinfo", "Outputs version to assembly")] public class OutputAssemblyInfoCommand(ILogger<OutputAssemblyInfoCommand> logger, IService service) : ICommand<OutputAssemblyInfoSettings> { - private readonly ILogger _logger = logger.NotNull(); - private readonly IService _service = service.NotNull(); + private readonly ILogger logger = logger.NotNull(); + private readonly IService service = service.NotNull(); public Task<int> InvokeAsync(OutputAssemblyInfoSettings settings, CancellationToken cancellationToken = default) { - var value = _service.Call(); + var value = this.service.Call(); var versionInfo = settings.VersionInfo.Value; - _logger.LogInformation($"Command : 'output assemblyinfo', LogFile : '{settings.LogFile}', WorkDir : '{settings.OutputDir}', InputFile: '{settings.InputFile}', AssemblyInfo: '{settings.AssemblyinfoFile}' "); - _logger.LogInformation($"Version info: {versionInfo}"); + this.logger.LogInformation($"Command : 'output assemblyinfo', LogFile : '{settings.LogFile}', WorkDir : '{settings.OutputDir}', InputFile: '{settings.InputFile}', AssemblyInfo: '{settings.AssemblyinfoFile}' "); + this.logger.LogInformation($"Version info: {versionInfo}"); return Task.FromResult(value); } } diff --git a/new-cli/GitVersion.Output/OutputCommand.cs b/new-cli/GitVersion.Output/OutputCommand.cs index 2791d211cf..93d625b230 100644 --- a/new-cli/GitVersion.Output/OutputCommand.cs +++ b/new-cli/GitVersion.Output/OutputCommand.cs @@ -6,13 +6,13 @@ namespace GitVersion.Commands; [Command("output", "Outputs the version object.")] public class OutputCommand(ILogger<OutputCommand> logger, IService service) : ICommand<OutputSettings> { - private readonly ILogger _logger = logger.NotNull(); - private readonly IService _service = service.NotNull(); + private readonly ILogger logger = logger.NotNull(); + private readonly IService service = service.NotNull(); public Task<int> InvokeAsync(OutputSettings settings, CancellationToken cancellationToken = default) { - var value = _service.Call(); - _logger.LogInformation($"Command : 'output', LogFile : '{settings.LogFile}', WorkDir : '{settings.WorkDir}' "); + var value = this.service.Call(); + this.logger.LogInformation($"Command : 'output', LogFile : '{settings.LogFile}', WorkDir : '{settings.WorkDir}' "); return Task.FromResult(value); } } diff --git a/new-cli/GitVersion.Output/Project/OutputProjectCommand.cs b/new-cli/GitVersion.Output/Project/OutputProjectCommand.cs index 2608bc51fb..abeeb5594e 100644 --- a/new-cli/GitVersion.Output/Project/OutputProjectCommand.cs +++ b/new-cli/GitVersion.Output/Project/OutputProjectCommand.cs @@ -6,13 +6,13 @@ namespace GitVersion.Commands; [Command<OutputCommand>("project", "Outputs version to project")] public class OutputProjectCommand(ILogger<OutputProjectCommand> logger, IService service) : ICommand<OutputProjectSettings> { - private readonly ILogger _logger = logger.NotNull(); - private readonly IService _service = service.NotNull(); + private readonly ILogger logger = logger.NotNull(); + private readonly IService service = service.NotNull(); public Task<int> InvokeAsync(OutputProjectSettings settings, CancellationToken cancellationToken = default) { - var value = _service.Call(); - _logger.LogInformation($"Command : 'output project', LogFile : '{settings.LogFile}', WorkDir : '{settings.OutputDir}', InputFile: '{settings.InputFile}', Project: '{settings.ProjectFile}' "); + var value = this.service.Call(); + this.logger.LogInformation($"Command : 'output project', LogFile : '{settings.LogFile}', WorkDir : '{settings.OutputDir}', InputFile: '{settings.InputFile}', Project: '{settings.ProjectFile}' "); return Task.FromResult(value); } } diff --git a/new-cli/GitVersion.Output/Wix/OutputWixCommand.cs b/new-cli/GitVersion.Output/Wix/OutputWixCommand.cs index abe89f7e9e..63001d572f 100644 --- a/new-cli/GitVersion.Output/Wix/OutputWixCommand.cs +++ b/new-cli/GitVersion.Output/Wix/OutputWixCommand.cs @@ -6,13 +6,13 @@ namespace GitVersion.Commands; [Command<OutputCommand>("wix", "Outputs version to wix file")] public class OutputWixCommand(ILogger<OutputWixCommand> logger, IService service) : ICommand<OutputWixSettings> { - private readonly ILogger _logger = logger.NotNull(); - private readonly IService _service = service.NotNull(); + private readonly ILogger logger = logger.NotNull(); + private readonly IService service = service.NotNull(); public Task<int> InvokeAsync(OutputWixSettings settings, CancellationToken cancellationToken = default) { - var value = _service.Call(); - _logger.LogInformation($"Command : 'output wix', LogFile : '{settings.LogFile}', WorkDir : '{settings.OutputDir}', InputFile: '{settings.InputFile}', WixFile: '{settings.WixFile}' "); + var value = this.service.Call(); + this.logger.LogInformation($"Command : 'output wix', LogFile : '{settings.LogFile}', WorkDir : '{settings.OutputDir}', InputFile: '{settings.InputFile}', WixFile: '{settings.WixFile}' "); return Task.FromResult(value); } } diff --git a/new-cli/GitVersion.sln.DotSettings b/new-cli/GitVersion.sln.DotSettings index ca580a27b8..71f967e9dc 100644 --- a/new-cli/GitVersion.sln.DotSettings +++ b/new-cli/GitVersion.sln.DotSettings @@ -1,2 +1,729 @@ -<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation"> - <s:Boolean x:Key="/Default/UserDictionary/Words/=enricher/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary> \ No newline at end of file +<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation"> + + <s:Boolean x:Key="/Default/CodeEditing/Intellisense/CodeCompletion/AutoCompleteBasicCompletion/@EntryValue">True</s:Boolean> + + <s:Boolean x:Key="/Default/CodeEditing/Intellisense/CodeCompletion/IntelliSenseCompletingCharacters/IntelliSenseCompletingCharactersSettingCSharp/UpgradedFromVSSettings/@EntryValue">True</s:Boolean> + + <s:Boolean x:Key="/Default/CodeEditing/Localization/CSharpLocalizationOptions/DontAnalyseVerbatimStrings/@EntryValue">False</s:Boolean> + <s:String x:Key="/Default/CodeInspection/Highlighting/AnalysisEnabled/@EntryValue">SOLUTION</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=AssignToImplicitGlobalInFunctionScope/@EntryIndexedValue">DO_NOT_SHOW</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=BaseObjectEqualsIsObjectEquals/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=CheckNamespace/@EntryIndexedValue">DO_NOT_SHOW</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ClassNeverInstantiated_002EGlobal/@EntryIndexedValue">DO_NOT_SHOW</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ClassNeverInstantiated_002ELocal/@EntryIndexedValue">DO_NOT_SHOW</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ClassWithVirtualMembersNeverInherited_002EGlobal/@EntryIndexedValue">DO_NOT_SHOW</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=CompareNonConstrainedGenericWithNull/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ConditionalTernaryEqualBranch/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ConditionIsAlwaysTrueOrFalse/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ConstantNullCoalescingCondition/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ConstructorInitializerLoop/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=CSharpWarnings_003A_003ACS0108/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=CSharpWarnings_003A_003ACS0109/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=CSharpWarnings_003A_003ACS0162/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=CSharpWarnings_003A_003ACS1570/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=CSharpWarnings_003A_003ACS1571/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=CSharpWarnings_003A_003ACS1573/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=CSharpWarnings_003A_003ACS1574/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=CSharpWarnings_003A_003ACS1580/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=CSharpWarnings_003A_003ACS1584/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=CSharpWarnings_003A_003ACS1587/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=CSharpWarnings_003A_003ACS1589/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=CSharpWarnings_003A_003ACS1710/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=DoubleNegationOperator/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=EmptyConstructor/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=EmptyDestructor/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=EmptyForStatement/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=EmptyGeneralCatchClause/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=EmptyNamespace/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=EmptyStatement/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=EventNeverInvoked/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ExpressionIsAlwaysNull/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=FieldCanBeMadeReadOnly_002EGlobal/@EntryIndexedValue">DO_NOT_SHOW</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=FieldCanBeMadeReadOnly_002ELocal/@EntryIndexedValue">DO_NOT_SHOW</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=HeuristicUnreachableCode/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=InconsistentNaming/@EntryIndexedValue">DO_NOT_SHOW</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=LocalizableElement/@EntryIndexedValue">DO_NOT_SHOW</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=MultipleOrderBy/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=NotAccessedField_002EGlobal/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=NotAccessedVariable/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=NotAccessedVariable_002ECompiler/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=PartialMethodWithSinglePart/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=PartialTypeWithSinglePart/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=PossibleIntendedRethrow/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=PossibleMistakenCallToGetType_002E1/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=PossibleMistakenCallToGetType_002E2/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=PossibleNullReferenceException/@EntryIndexedValue">WARNING</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=PrivateFieldCanBeConvertedToLocalVariable/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantArgumentName/@EntryIndexedValue">DO_NOT_SHOW</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantArgumentNameForLiteralExpression/@EntryIndexedValue">DO_NOT_SHOW</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantAssignment/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantBaseConstructorCall/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantBoolCompare/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantCast_002E0/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantCatchClause/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantCollectionInitializerElementBraces/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantCommaInArrayInitializer/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantDefaultFieldInitializer/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantEmptyDefaultSwitchBranch/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantEmptyFinallyBlock/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantEmptyObjectOrCollectionInitializer/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantEnumerableCastCall/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantExplicitArrayCreation/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantExtendsListEntry/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantIfElseBlock/@EntryIndexedValue">SUGGESTION</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantLambdaParameterType/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantLambdaSignatureParentheses/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantNameQualifier/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantStringFormatCall/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantStringToCharArrayCall/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantThisQualifier/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantToStringCall/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantTypeArgumentsOfMethod/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantUsingDirective/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=FormatStringProblem/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=IteratorMethodResultIsIgnored/@EntryIndexedValue">WARNING</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=NotAccessedField_002ELocal/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantBaseQualifier/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantCast/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/CodeIssueFilter/IssueTypesToHide/=_003CConfigurableSeverity_0020Id_003D_0022ClassCanBeSealed_002EGlobal_0022_0020_002F_003E/@EntryIndexedValue">DoHide</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/CodeIssueFilter/IssueTypesToHide/=_003CConfigurableSeverity_0020Id_003D_0022ClassCanBeSealed_002ELocal_0022_0020_002F_003E/@EntryIndexedValue">DoHide</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/CodeIssueFilter/IssueTypesToHide/=_003CConfigurableSeverity_0020Id_003D_0022ConvertIfStatementToReturnStatement_0022_0020_002F_003E/@EntryIndexedValue">DoHide</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/CodeIssueFilter/IssueTypesToHide/=_003CConfigurableSeverity_0020Id_003D_0022ConvertIfStatementToSwitchStatement_0022_0020_002F_003E/@EntryIndexedValue">DoHide</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/CodeIssueFilter/IssueTypesToHide/=_003CConfigurableSeverity_0020Id_003D_0022ConvertToAutoPropertyWithPrivateSetter_0022_0020_002F_003E/@EntryIndexedValue">DoHide</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/CodeIssueFilter/IssueTypesToHide/=_003CConfigurableSeverity_0020Id_003D_0022InvertIf_0022_0020_002F_003E/@EntryIndexedValue">DoHide</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/CodeIssueFilter/IssueTypesToHide/=_003CConfigurableSeverity_0020Id_003D_0022LoopCanBePartlyConvertedToQuery_0022_0020_002F_003E/@EntryIndexedValue">DoHide</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/CodeIssueFilter/IssueTypesToHide/=_003CConfigurableSeverity_0020Id_003D_0022MemberCanBeInternal_0022_0020_002F_003E/@EntryIndexedValue">DoHide</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/CodeIssueFilter/IssueTypesToHide/=_003CConfigurableSeverity_0020Id_003D_0022MemberCanBeMadeStatic_002EGlobal_0022_0020_002F_003E/@EntryIndexedValue">DoHide</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/CodeIssueFilter/IssueTypesToHide/=_003CConfigurableSeverity_0020Id_003D_0022MemberCanBeMadeStatic_002ELocal_0022_0020_002F_003E/@EntryIndexedValue">DoHide</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/CodeIssueFilter/IssueTypesToHide/=_003CConfigurableSeverity_0020Id_003D_0022RedundantArgumentNameForLiteralExpression_0022_0020_002F_003E/@EntryIndexedValue">DoHide</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/CodeIssueFilter/IssueTypesToHide/=_003CConfigurableSeverity_0020Id_003D_0022RedundantToStringCallForValueType_0022_0020_002F_003E/@EntryIndexedValue">DoHide</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/CodeIssueFilter/IssueTypesToHide/=_003CConfigurableSeverity_0020Id_003D_0022SimilarAnonymousTypeNearby_0022_0020_002F_003E/@EntryIndexedValue">DoHide</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/CodeIssueFilter/IssueTypesToHide/=_003CConfigurableSeverity_0020Id_003D_0022SuggestBaseTypeForParameter_0022_0020_002F_003E/@EntryIndexedValue">DoHide</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/CodeIssueFilter/IssueTypesToHide/=_003CConfigurableSeverity_0020Id_003D_0022SuggestUseVarKeywordEverywhere_0022_0020_002F_003E/@EntryIndexedValue">DoHide</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/CodeIssueFilter/IssueTypesToHide/=_003CConfigurableSeverity_0020Id_003D_0022TryStatementsCanBeMerged_0022_0020_002F_003E/@EntryIndexedValue">DoHide</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/CodeIssueFilter/IssueTypesToHide/=_003CConfigurableSeverity_0020Id_003D_0022UnknownCssVendorExtension_0022_0020_002F_003E/@EntryIndexedValue">DoHide</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/CodeIssueFilter/IssueTypesToHide/=_003CConfigurableSeverity_0020Id_003D_0022Xaml_002EBindingWithoutContextReferenceNotResolvedHighlighting_0022_0020_002F_003E/@EntryIndexedValue">DoHide</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/CodeIssueFilter/IssueTypesToHide/=_003CStaticSeverity_0020Severity_003D_00222_0022_0020Title_003D_0022Structural_0020Search_0020Hints_0022_0020GroupId_003D_0022StructuralSearch_0022_0020_002F_003E/@EntryIndexedValue">DoHide</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=SealedMemberInSealedClass/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=StaticFieldInGenericType/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=SuggestUseVarKeywordEverywhere/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=SuggestUseVarKeywordEvident/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ThreadStaticAtInstanceField/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=TooWideLocalVariableScope/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=UnassignedField_002ECompiler/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=UnassignedField_002ELocal/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=UnreachableCode/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=UnusedField_002ECompiler/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=UnusedLabel/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=UnusedMember_002EGlobal/@EntryIndexedValue">DO_NOT_SHOW</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=UnusedMember_002ELocal/@EntryIndexedValue">SUGGESTION</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=UnusedParameter_002EGlobal/@EntryIndexedValue">WARNING</s:String> + + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=UnusedVariable/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=UseObjectOrCollectionInitializer/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ValueParameterNotUsed/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=VBPossibleMistakenCallToGetType_002E1/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=VBPossibleMistakenCallToGetType_002E2/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeStyle/CodeCleanup/Profiles/=C_0023_0020Only/@EntryIndexedValue"><?xml version="1.0" encoding="utf-16"?><Profile name="C# Only"><XAMLCollapseEmptyTags>False</XAMLCollapseEmptyTags><CSReformatCode>True</CSReformatCode><CSOptimizeUsings><OptimizeUsings>True</OptimizeUsings></CSOptimizeUsings><CSShortenReferences>True</CSShortenReferences><RemoveCodeRedundancies>True</RemoveCodeRedundancies><CSUseAutoProperty>True</CSUseAutoProperty><CSMakeFieldReadonly>True</CSMakeFieldReadonly><CSMakeAutoPropertyGetOnly>True</CSMakeAutoPropertyGetOnly><IDEA_SETTINGS>&lt;profile version="1.0"&gt; + &lt;option name="myName" value="C# Only" /&gt; + &lt;inspection_tool class="ES6ShorthandObjectProperty" enabled="false" level="WARNING" enabled_by_default="false" /&gt; + &lt;inspection_tool class="JSArrowFunctionBracesCanBeRemoved" enabled="false" level="WARNING" enabled_by_default="false" /&gt; + &lt;inspection_tool class="JSPrimitiveTypeWrapperUsage" enabled="false" level="WARNING" enabled_by_default="false" /&gt; + &lt;inspection_tool class="JSRemoveUnnecessaryParentheses" enabled="false" level="WARNING" enabled_by_default="false" /&gt; + &lt;inspection_tool class="JSUnnecessarySemicolon" enabled="false" level="WARNING" enabled_by_default="false" /&gt; + &lt;inspection_tool class="TypeScriptExplicitMemberType" enabled="false" level="WARNING" enabled_by_default="false" /&gt; + &lt;inspection_tool class="UnnecessaryContinueJS" enabled="false" level="WARNING" enabled_by_default="false" /&gt; + &lt;inspection_tool class="UnnecessaryLabelJS" enabled="false" level="WARNING" enabled_by_default="false" /&gt; + &lt;inspection_tool class="UnnecessaryLabelOnBreakStatementJS" enabled="false" level="WARNING" enabled_by_default="false" /&gt; + &lt;inspection_tool class="UnnecessaryLabelOnContinueStatementJS" enabled="false" level="WARNING" enabled_by_default="false" /&gt; + &lt;inspection_tool class="UnnecessaryReturnJS" enabled="false" level="WARNING" enabled_by_default="false" /&gt; + &lt;inspection_tool class="WrongPropertyKeyValueDelimiter" enabled="false" level="WEAK WARNING" enabled_by_default="false" /&gt; +&lt;/profile&gt;</IDEA_SETTINGS><RIDER_SETTINGS>&lt;profile&gt; + &lt;Language id="CSS"&gt; + &lt;Rearrange&gt;false&lt;/Rearrange&gt; + &lt;Reformat&gt;false&lt;/Reformat&gt; + &lt;/Language&gt; + &lt;Language id="EditorConfig"&gt; + &lt;Reformat&gt;false&lt;/Reformat&gt; + &lt;/Language&gt; + &lt;Language id="HTML"&gt; + &lt;Rearrange&gt;false&lt;/Rearrange&gt; + &lt;OptimizeImports&gt;false&lt;/OptimizeImports&gt; + &lt;Reformat&gt;false&lt;/Reformat&gt; + &lt;/Language&gt; + &lt;Language id="HTTP Request"&gt; + &lt;Reformat&gt;false&lt;/Reformat&gt; + &lt;/Language&gt; + &lt;Language id="Handlebars"&gt; + &lt;Reformat&gt;false&lt;/Reformat&gt; + &lt;/Language&gt; + &lt;Language id="Ini"&gt; + &lt;Reformat&gt;false&lt;/Reformat&gt; + &lt;/Language&gt; + &lt;Language id="JSON"&gt; + &lt;Reformat&gt;false&lt;/Reformat&gt; + &lt;/Language&gt; + &lt;Language id="Jade"&gt; + &lt;Reformat&gt;false&lt;/Reformat&gt; + &lt;/Language&gt; + &lt;Language id="JavaScript"&gt; + &lt;Rearrange&gt;false&lt;/Rearrange&gt; + &lt;OptimizeImports&gt;false&lt;/OptimizeImports&gt; + &lt;Reformat&gt;false&lt;/Reformat&gt; + &lt;/Language&gt; + &lt;Language id="Markdown"&gt; + &lt;Reformat&gt;false&lt;/Reformat&gt; + &lt;/Language&gt; + &lt;Language id="Properties"&gt; + &lt;Reformat&gt;false&lt;/Reformat&gt; + &lt;/Language&gt; + &lt;Language id="RELAX-NG"&gt; + &lt;Reformat&gt;false&lt;/Reformat&gt; + &lt;/Language&gt; + &lt;Language id="SQL"&gt; + &lt;Reformat&gt;false&lt;/Reformat&gt; + &lt;/Language&gt; + &lt;Language id="XML"&gt; + &lt;Rearrange&gt;false&lt;/Rearrange&gt; + &lt;OptimizeImports&gt;false&lt;/OptimizeImports&gt; + &lt;Reformat&gt;false&lt;/Reformat&gt; + &lt;/Language&gt; + &lt;Language id="yaml"&gt; + &lt;Reformat&gt;false&lt;/Reformat&gt; + &lt;/Language&gt; +&lt;/profile&gt;</RIDER_SETTINGS><CSReorderTypeMembers>True</CSReorderTypeMembers><CSCodeStyleAttributes ArrangeVarStyle="True" ArrangeTypeAccessModifier="True" ArrangeTypeMemberAccessModifier="True" SortModifiers="True" ArrangeArgumentsStyle="True" RemoveRedundantParentheses="True" AddMissingParentheses="True" ArrangeBraces="True" ArrangeAttributes="True" ArrangeCodeBodyStyle="True" ArrangeTrailingCommas="True" ArrangeObjectCreation="True" ArrangeDefaultValue="True" ArrangeNamespaces="True" /><CSArrangeQualifiers>True</CSArrangeQualifiers><CSFixBuiltinTypeReferences>True</CSFixBuiltinTypeReferences></Profile></s:String> + + <s:String x:Key="/Default/CodeStyle/CodeCleanup/Profiles/=GitVersion/@EntryIndexedValue"><?xml version="1.0" encoding="utf-16"?><Profile name="GitVersion"><CSMakeFieldReadonly>True</CSMakeFieldReadonly><CSUseVar><BehavourStyle>CAN_CHANGE_TO_IMPLICIT</BehavourStyle><LocalVariableStyle>ALWAYS_IMPLICIT</LocalVariableStyle><ForeachVariableStyle>ALWAYS_IMPLICIT</ForeachVariableStyle></CSUseVar><CSOptimizeUsings><OptimizeUsings>True</OptimizeUsings></CSOptimizeUsings><CSReformatCode>True</CSReformatCode><CSReorderTypeMembers>True</CSReorderTypeMembers><JsInsertSemicolon>True</JsInsertSemicolon><JsReformatCode>True</JsReformatCode><CssReformatCode>True</CssReformatCode><CSArrangeThisQualifier>True</CSArrangeThisQualifier><RemoveCodeRedundancies>True</RemoveCodeRedundancies><CSUseAutoProperty>True</CSUseAutoProperty><HtmlReformatCode>True</HtmlReformatCode><CSShortenReferences>True</CSShortenReferences><CSharpFormatDocComments>True</CSharpFormatDocComments><CssAlphabetizeProperties>True</CssAlphabetizeProperties><CSCodeStyleAttributes ArrangeVarStyle="True" ArrangeTypeAccessModifier="True" ArrangeTypeMemberAccessModifier="True" SortModifiers="True" ArrangeArgumentsStyle="True" RemoveRedundantParentheses="True" AddMissingParentheses="True" ArrangeBraces="True" ArrangeAttributes="True" ArrangeCodeBodyStyle="True" ArrangeTrailingCommas="True" ArrangeObjectCreation="True" ArrangeDefaultValue="True" ArrangeNamespaces="True" /><CSArrangeQualifiers>True</CSArrangeQualifiers><CSFixBuiltinTypeReferences>True</CSFixBuiltinTypeReferences><IDEA_SETTINGS>&lt;profile version="1.0"&gt; + &lt;option name="myName" value="GitVersion" /&gt; +&lt;/profile&gt;</IDEA_SETTINGS><RIDER_SETTINGS>&lt;profile&gt; + &lt;Language id=""&gt; + &lt;OptimizeImports&gt;false&lt;/OptimizeImports&gt; + &lt;/Language&gt; + &lt;Language id="CMake"&gt; + &lt;Reformat&gt;true&lt;/Reformat&gt; + &lt;/Language&gt; + &lt;Language id="CSS"&gt; + &lt;Reformat&gt;true&lt;/Reformat&gt; + &lt;Rearrange&gt;true&lt;/Rearrange&gt; + &lt;/Language&gt; + &lt;Language id="EditorConfig"&gt; + &lt;Reformat&gt;true&lt;/Reformat&gt; + &lt;/Language&gt; + &lt;Language id="HTML"&gt; + &lt;Reformat&gt;true&lt;/Reformat&gt; + &lt;OptimizeImports&gt;true&lt;/OptimizeImports&gt; + &lt;Rearrange&gt;true&lt;/Rearrange&gt; + &lt;/Language&gt; + &lt;Language id="HTTP Request"&gt; + &lt;Reformat&gt;true&lt;/Reformat&gt; + &lt;/Language&gt; + &lt;Language id="Handlebars"&gt; + &lt;Reformat&gt;true&lt;/Reformat&gt; + &lt;/Language&gt; + &lt;Language id="Ini"&gt; + &lt;Reformat&gt;true&lt;/Reformat&gt; + &lt;/Language&gt; + &lt;Language id="JSON"&gt; + &lt;Reformat&gt;true&lt;/Reformat&gt; + &lt;/Language&gt; + &lt;Language id="Jade"&gt; + &lt;Reformat&gt;true&lt;/Reformat&gt; + &lt;/Language&gt; + &lt;Language id="JavaScript"&gt; + &lt;Reformat&gt;true&lt;/Reformat&gt; + &lt;OptimizeImports&gt;true&lt;/OptimizeImports&gt; + &lt;Rearrange&gt;true&lt;/Rearrange&gt; + &lt;/Language&gt; + &lt;Language id="Markdown"&gt; + &lt;Reformat&gt;true&lt;/Reformat&gt; + &lt;/Language&gt; + &lt;Language id="Properties"&gt; + &lt;Reformat&gt;true&lt;/Reformat&gt; + &lt;/Language&gt; + &lt;Language id="RELAX-NG"&gt; + &lt;Reformat&gt;true&lt;/Reformat&gt; + &lt;/Language&gt; + &lt;Language id="Razor"&gt; + &lt;Reformat&gt;true&lt;/Reformat&gt; + &lt;/Language&gt; + &lt;Language id="SQL"&gt; + &lt;Reformat&gt;true&lt;/Reformat&gt; + &lt;/Language&gt; + &lt;Language id="VueExpr"&gt; + &lt;Reformat&gt;true&lt;/Reformat&gt; + &lt;/Language&gt; + &lt;Language id="XML"&gt; + &lt;Reformat&gt;true&lt;/Reformat&gt; + &lt;OptimizeImports&gt;true&lt;/OptimizeImports&gt; + &lt;Rearrange&gt;true&lt;/Rearrange&gt; + &lt;/Language&gt; + &lt;Language id="yaml"&gt; + &lt;Reformat&gt;true&lt;/Reformat&gt; + &lt;/Language&gt; +&lt;/profile&gt;</RIDER_SETTINGS><UpgradedBackendToFrontendHtml>True</UpgradedBackendToFrontendHtml><CSMakeAutoPropertyGetOnly>True</CSMakeAutoPropertyGetOnly></Profile></s:String> + <s:String x:Key="/Default/CodeStyle/CodeCleanup/RecentlyUsedProfile/@EntryValue">Default: Reformat Code</s:String> + <s:String x:Key="/Default/CodeStyle/CodeCleanup/SilentCleanupProfile/@EntryValue">GitVersion</s:String> + <s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/EXPLICIT_INTERNAL_MODIFIER/@EntryValue">False</s:Boolean> + <s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/EXPLICIT_PRIVATE_MODIFIER/@EntryValue">False</s:Boolean> + <s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/FORCE_FOR_BRACES_STYLE/@EntryValue">ALWAYS_ADD</s:String> + <s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/FORCE_FOREACH_BRACES_STYLE/@EntryValue">ALWAYS_ADD</s:String> + <s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/FORCE_IFELSE_BRACES_STYLE/@EntryValue">ALWAYS_ADD</s:String> + <s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/FORCE_USING_BRACES_STYLE/@EntryValue">ALWAYS_ADD</s:String> + <s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/FORCE_WHILE_BRACES_STYLE/@EntryValue">ALWAYS_ADD</s:String> + <s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/PLACE_ACCESSORHOLDER_ATTRIBUTE_ON_SAME_LINE_EX/@EntryValue">NEVER</s:String> + <s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/SPACE_BEFORE_FIXED_PARENTHESES/@EntryValue">False</s:Boolean> + + + <s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/WRAP_ARRAY_INITIALIZER_STYLE/@EntryValue">CHOP_IF_LONG</s:String> + <s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/WRAP_LINES/@EntryValue">False</s:Boolean> + <s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/WRAP_MULTIPLE_TYPE_PARAMEER_CONSTRAINTS_STYLE/@EntryValue">CHOP_ALWAYS</s:String> + <s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/WRAP_OBJECT_AND_COLLECTION_INITIALIZER_STYLE/@EntryValue">CHOP_ALWAYS</s:String> + <s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/JavaScriptCodeFormatting/ALIGN_MULTIPLE_DECLARATION/@EntryValue">True</s:Boolean> + <s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/JavaScriptCodeFormatting/JavaScriptFormatOther/ALIGN_MULTIPLE_DECLARATION/@EntryValue">True</s:Boolean> + <s:String x:Key="/Default/CodeStyle/CSharpFileLayoutPatterns/Pattern/@EntryValue"><?xml version="1.0" encoding="utf-16"?> +<Patterns xmlns="urn:schemas-jetbrains-com:member-reordering-patterns"> + <TypePattern DisplayName="COM interfaces or structs"> + <TypePattern.Match> + <Or> + <And> + <Kind Is="Interface" /> + <Or> + <HasAttribute Name="System.Runtime.InteropServices.InterfaceTypeAttribute" /> + <HasAttribute Name="System.Runtime.InteropServices.ComImport" /> + </Or> + </And> + <Kind Is="Struct" /> + </Or> + </TypePattern.Match> + </TypePattern> + <TypePattern DisplayName="NUnit Test Fixtures" RemoveRegions="All"> + <TypePattern.Match> + <And> + <Kind Is="Class" /> + <HasAttribute Name="NUnit.Framework.TestFixtureAttribute" Inherited="True" /> + <HasAttribute Name="NUnit.Framework.TestCaseFixtureAttribute" Inherited="True" /> + </And> + </TypePattern.Match> + <Entry DisplayName="Setup/Teardown Methods"> + <Entry.Match> + <And> + <Kind Is="Method" /> + <Or> + <HasAttribute Name="NUnit.Framework.SetUpAttribute" Inherited="True" /> + <HasAttribute Name="NUnit.Framework.TearDownAttribute" Inherited="True" /> + <HasAttribute Name="NUnit.Framework.FixtureSetUpAttribute" Inherited="True" /> + <HasAttribute Name="NUnit.Framework.FixtureTearDownAttribute" Inherited="True" /> + </Or> + </And> + </Entry.Match> + </Entry> + <Entry DisplayName="All other members" /> + <Entry Priority="100" DisplayName="Test Methods"> + <Entry.Match> + <And> + <Kind Is="Method" /> + <HasAttribute Name="NUnit.Framework.TestAttribute" /> + </And> + </Entry.Match> + <Entry.SortBy> + <Name /> + </Entry.SortBy> + </Entry> + </TypePattern> + <TypePattern DisplayName="Default Pattern"> + <Entry Priority="100" DisplayName="Public Delegates"> + <Entry.Match> + <And> + <Access Is="Public" /> + <Kind Is="Delegate" /> + </And> + </Entry.Match> + <Entry.SortBy> + <Name /> + </Entry.SortBy> + </Entry> + <Entry Priority="100" DisplayName="Public Enums"> + <Entry.Match> + <And> + <Access Is="Public" /> + <Kind Is="Enum" /> + </And> + </Entry.Match> + <Entry.SortBy> + <Name /> + </Entry.SortBy> + </Entry> + <Entry DisplayName="Static Fields and Constants"> + <Entry.Match> + <Or> + <Kind Is="Constant" /> + <And> + <Kind Is="Field" /> + <Static /> + </And> + </Or> + </Entry.Match> + <Entry.SortBy> + <Kind Order="Constant Field" /> + </Entry.SortBy> + </Entry> + <Entry DisplayName="Fields"> + <Entry.Match> + <And> + <Kind Is="Field" /> + <Not> + <Static /> + </Not> + </And> + </Entry.Match> + <Entry.SortBy> + <Readonly /> + <Name /> + </Entry.SortBy> + </Entry> + <Entry DisplayName="Constructors"> + <Entry.Match> + <Kind Is="Constructor" /> + </Entry.Match> + <Entry.SortBy> + <Static /> + </Entry.SortBy> + </Entry> + <Entry DisplayName="Properties, Indexers"> + <Entry.Match> + <Or> + <Kind Is="Property" /> + <Kind Is="Indexer" /> + </Or> + </Entry.Match> + </Entry> + <Entry Priority="100" DisplayName="Interface Implementations"> + <Entry.Match> + <And> + <Kind Is="Member" /> + <ImplementsInterface /> + </And> + </Entry.Match> + <Entry.SortBy> + <ImplementsInterface Immediate="True" /> + </Entry.SortBy> + </Entry> + <Entry DisplayName="All other members" /> + <Entry DisplayName="Nested Types"> + <Entry.Match> + <Kind Is="Type" /> + </Entry.Match> + </Entry> + </TypePattern> +</Patterns></s:String> + <s:String x:Key="/Default/CodeStyle/CSharpMemberOrderPattern/CustomPattern/@EntryValue"><?xml version="1.0" encoding="utf-8" ?> + +<!-- +I. Overall + +I.1 Each pattern can have <Match>....</Match> element. For the given type declaration, the pattern with the match, evaluated to 'true' with the largest weight, will be used +I.2 Each pattern consists of the sequence of <Entry>...</Entry> elements. Type member declarations are distributed between entries +I.3 If pattern has RemoveAllRegions="true" attribute, then all regions will be cleared prior to reordering. Otherwise, only auto-generated regions will be cleared +I.4 The contents of each entry is sorted by given keys (First key is primary, next key is secondary, etc). Then the declarations are grouped and en-regioned by given property + +II. Available match operands + +Each operand may have Weight="..." attribute. This weight will be added to the match weight if the operand is evaluated to 'true'. +The default weight is 1 + +II.1 Boolean functions: +II.1.1 <And>....</And> +II.1.2 <Or>....</Or> +II.1.3 <Not>....</Not> + +II.2 Operands +II.2.1 <Kind Is="..."/>. Kinds are: class, struct, interface, enum, delegate, type, constructor, destructor, property, indexer, method, operator, field, constant, event, member +II.2.2 <Name Is="..." [IgnoreCase="true/false"] />. The 'Is' attribute contains regular expression +II.2.3 <HasAttribute CLRName="..." [Inherit="true/false"] />. The 'CLRName' attribute contains regular expression +II.2.4 <Access Is="..."/>. The 'Is' values are: public, protected, internal, protected internal, private +II.2.5 <Static/> +II.2.6 <Abstract/> +II.2.7 <Virtual/> +II.2.8 <Override/> +II.2.9 <Sealed/> +II.2.10 <Readonly/> +II.2.11 <ImplementsInterface CLRName="..."/>. The 'CLRName' attribute contains regular expression +II.2.12 <HandlesEvent /> +--> + +<Patterns xmlns="urn:shemas-jetbrains-com:member-reordering-patterns"> + + <!--Do not reorder COM interfaces and structs marked by StructLayout attribute--> + <Pattern> + <Match> + <Or Weight="100"> + <And> + <Kind Is="interface"/> + <Or> + <HasAttribute CLRName="System.Runtime.InteropServices.InterfaceTypeAttribute"/> + <HasAttribute CLRName="System.Runtime.InteropServices.ComImport"/> + </Or> + </And> + <HasAttribute CLRName="System.Runtime.InteropServices.StructLayoutAttribute"/> + </Or> + </Match> + </Pattern> + + <!--Special formatting of NUnit test fixture--> + <Pattern RemoveAllRegions="true"> + <Match> + <And Weight="100"> + <Kind Is="class"/> + <HasAttribute CLRName="NUnit.Framework.TestFixtureAttribute" Inherit="true"/> + </And> + </Match> + + <!--Setup/Teardow--> + <Entry> + <Match> + <And> + <Kind Is="method"/> + <Or> + <HasAttribute CLRName="NUnit.Framework.SetUpAttribute" Inherit="true"/> + <HasAttribute CLRName="NUnit.Framework.TearDownAttribute" Inherit="true"/> + <HasAttribute CLRName="NUnit.Framework.FixtureSetUpAttribute" Inherit="true"/> + <HasAttribute CLRName="NUnit.Framework.FixtureTearDownAttribute" Inherit="true"/> + </Or> + </And> + </Match> + </Entry> + + <!--All other members--> + <Entry/> + + <!--Test methods--> + <Entry> + <Match> + <And Weight="100"> + <Kind Is="method"/> + <HasAttribute CLRName="NUnit.Framework.TestAttribute" Inherit="false"/> + </And> + </Match> + <Sort> + <Name/> + </Sort> + </Entry> + </Pattern> + + <!--Default pattern--> + <Pattern> + + <!--public delegate--> + <Entry> + <Match> + <And Weight="100"> + <Access Is="public"/> + <Kind Is="delegate"/> + </And> + </Match> + <Sort> + <Name/> + </Sort> + </Entry> + + <!--public enum--> + <Entry> + <Match> + <And Weight="100"> + <Access Is="public"/> + <Kind Is="enum"/> + </And> + </Match> + <Sort> + <Name/> + </Sort> + </Entry> + + <!--Constructors. Place static one first--> + <Entry> + <Match> + <Kind Is="constructor"/> + </Match> + <Sort> + <Static/> + </Sort> + </Entry> + + <!--properties, indexers--> + <Entry> + <Match> + <Or> + <Kind Is="property"/> + <Kind Is="indexer"/> + </Or> + </Match> + </Entry> + + <!--interface implementations--> + <Entry> + <Match> + <And Weight="100"> + <Kind Is="member"/> + <ImplementsInterface/> + </And> + </Match> + <Sort> + <ImplementsInterface Immediate="true"/> + </Sort> + </Entry> + + <!--all other members--> + <Entry/> + +<!--static fields and constants--> + <Entry> + <Match> + <Or> + <Kind Is="constant"/> + <And> + <Kind Is="field"/> + <Static/> + </And> + </Or> + </Match> + <Sort> + <Kind Order="constant field"/> + </Sort> + </Entry> + + <!--instance fields--> + <Entry> + <Match> + <And> + <Kind Is="field"/> + <Not> + <Static/> + </Not> + </And> + </Match> + <Sort> + <Readonly/> + <Name/> + </Sort> + </Entry> + + <!--nested types--> + <Entry> + <Match> + <Kind Is="type"/> + </Match> + <Sort> + <Name/> + </Sort> + </Entry> + </Pattern> + +</Patterns> +</s:String> + <s:String x:Key="/Default/CodeStyle/CSharpMemberOrderPattern/LayoutType/@EntryValue">CustomLayout</s:String> + <s:Boolean x:Key="/Default/CodeStyle/CSharpUsing/AddImportsToDeepestScope/@EntryValue">False</s:Boolean> + <s:Boolean x:Key="/Default/CodeStyle/CSharpUsing/QualifiedUsingAtNestedScope/@EntryValue">True</s:Boolean> + <s:Boolean x:Key="/Default/CodeStyle/Generate/=Constructor/@KeyIndexDefined">True</s:Boolean> + <s:String x:Key="/Default/CodeStyle/Generate/=Constructor/Options/=XmlDocumentation/@EntryIndexedValue">False</s:String> + <s:Boolean x:Key="/Default/CodeStyle/Generate/=Equality/@KeyIndexDefined">True</s:Boolean> + <s:String x:Key="/Default/CodeStyle/Generate/=Equality/Options/=EqualityOperators/@EntryIndexedValue">False</s:String> + <s:String x:Key="/Default/CodeStyle/Generate/=Equality/Options/=ImplementIEquatable/@EntryIndexedValue">False</s:String> + <s:String x:Key="/Default/CodeStyle/Generate/=Equality/Options/=XmlDocumentation/@EntryIndexedValue">False</s:String> + <s:Boolean x:Key="/Default/CodeStyle/Generate/=Global/@KeyIndexDefined">True</s:Boolean> + <s:String x:Key="/Default/CodeStyle/Generate/=Global/Options/=PropertyBody/@EntryIndexedValue">Automatic property</s:String> + <s:Boolean x:Key="/Default/CodeStyle/Generate/=Implementations/@KeyIndexDefined">True</s:Boolean> + <s:String x:Key="/Default/CodeStyle/Generate/=Implementations/Options/=WrapInRegion/@EntryIndexedValue">False</s:String> + <s:String x:Key="/Default/CodeStyle/Generate/=Implementations/Options/=XmlDocumentation/@EntryIndexedValue">False</s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=DB/@EntryIndexedValue">DB</s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=DTC/@EntryIndexedValue">DTC</s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=ID/@EntryIndexedValue">ID</s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=NSB/@EntryIndexedValue">NSB</s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=SLA/@EntryIndexedValue">SLA</s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/EventHandlerPatternLong/@EntryValue">$object$_On$event$</s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=Constants/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=EnumMember/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=Interfaces/@EntryIndexedValue"><Policy Inspect="True" Prefix="I" Suffix="" Style="AaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=LocalConstants/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=Locals/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=MethodPropertyEvent/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=Other/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=Parameters/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=PrivateConstants/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=PrivateInstanceFields/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=PrivateStaticFields/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=PrivateStaticReadonly/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=PublicFields/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=StaticReadonly/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=TypeParameters/@EntryIndexedValue"><Policy Inspect="True" Prefix="T" Suffix="" Style="AaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=TypesAndNamespaces/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/UserRules/=15b5b1f1_002D457c_002D4ca6_002Db278_002D5615aedc07d3/@EntryIndexedValue"><Policy><Descriptor Staticness="Static" AccessRightKinds="Private" Description="Static readonly fields (private)"><ElementKinds><Kind Name="READONLY_FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></Policy></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/UserRules/=236f7aa5_002D7b06_002D43ca_002Dbf2a_002D9b31bfcff09a/@EntryIndexedValue"><Policy><Descriptor Staticness="Any" AccessRightKinds="Private" Description="Constant fields (private)"><ElementKinds><Kind Name="CONSTANT_FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></Policy></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/UserRules/=2c62818f_002D621b_002D4425_002Dadc9_002D78611099bfcb/@EntryIndexedValue"><Policy><Descriptor Staticness="Any" AccessRightKinds="Any" Description="Type parameters"><ElementKinds><Kind Name="TYPE_PARAMETER" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="T" Suffix="" Style="AaBb" /></Policy></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/UserRules/=4a98fdf6_002D7d98_002D4f5a_002Dafeb_002Dea44ad98c70c/@EntryIndexedValue"><Policy><Descriptor Staticness="Instance" AccessRightKinds="Private" Description="Instance fields (private)"><ElementKinds><Kind Name="FIELD" /><Kind Name="READONLY_FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></Policy></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/UserRules/=53eecf85_002Dd821_002D40e8_002Dac97_002Dfdb734542b84/@EntryIndexedValue"><Policy><Descriptor Staticness="Instance" AccessRightKinds="Protected, ProtectedInternal, Internal, Public, PrivateProtected" Description="Instance fields (not private)"><ElementKinds><Kind Name="FIELD" /><Kind Name="READONLY_FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></Policy></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/UserRules/=61a991a4_002Dd0a3_002D4d19_002D90a5_002Df8f4d75c30c1/@EntryIndexedValue"><Policy><Descriptor Staticness="Any" AccessRightKinds="Any" Description="Local variables"><ElementKinds><Kind Name="LOCAL_VARIABLE" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></Policy></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/UserRules/=669e5282_002Dfb4b_002D4e90_002D91e7_002D07d269d04b60/@EntryIndexedValue"><Policy><Descriptor Staticness="Any" AccessRightKinds="Protected, ProtectedInternal, Internal, Public, PrivateProtected" Description="Constant fields (not private)"><ElementKinds><Kind Name="CONSTANT_FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></Policy></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/UserRules/=70345118_002D4b40_002D4ece_002D937c_002Dbbeb7a0b2e70/@EntryIndexedValue"><Policy><Descriptor Staticness="Static" AccessRightKinds="Protected, ProtectedInternal, Internal, Public, PrivateProtected" Description="Static fields (not private)"><ElementKinds><Kind Name="FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></Policy></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/UserRules/=8a85b61a_002D1024_002D4f87_002Db9ef_002D1fdae19930a1/@EntryIndexedValue"><Policy><Descriptor Staticness="Any" AccessRightKinds="Any" Description="Parameters"><ElementKinds><Kind Name="PARAMETER" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></Policy></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/UserRules/=8b8504e3_002Df0be_002D4c14_002D9103_002Dc732f2bddc15/@EntryIndexedValue"><Policy><Descriptor Staticness="Any" AccessRightKinds="Any" Description="Enum members"><ElementKinds><Kind Name="ENUM_MEMBER" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></Policy></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/UserRules/=a0b4bc4d_002Dd13b_002D4a37_002Db37e_002Dc9c6864e4302/@EntryIndexedValue"><Policy><Descriptor Staticness="Any" AccessRightKinds="Any" Description="Types and namespaces"><ElementKinds><Kind Name="NAMESPACE" /><Kind Name="CLASS" /><Kind Name="STRUCT" /><Kind Name="ENUM" /><Kind Name="DELEGATE" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></Policy></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/UserRules/=a4f433b8_002Dabcd_002D4e55_002Da08f_002D82e78cef0f0c/@EntryIndexedValue"><Policy><Descriptor Staticness="Any" AccessRightKinds="Any" Description="Local constants"><ElementKinds><Kind Name="LOCAL_CONSTANT" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></Policy></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/UserRules/=a7a3339e_002D4e89_002D4319_002D9735_002Da9dc4cb74cc7/@EntryIndexedValue"><Policy><Descriptor Staticness="Any" AccessRightKinds="Any" Description="Interfaces"><ElementKinds><Kind Name="INTERFACE" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="I" Suffix="" Style="AaBb" /></Policy></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/UserRules/=c873eafb_002Dd57f_002D481d_002D8c93_002D77f6863c2f88/@EntryIndexedValue"><Policy><Descriptor Staticness="Static" AccessRightKinds="Protected, ProtectedInternal, Internal, Public, PrivateProtected" Description="Static readonly fields (not private)"><ElementKinds><Kind Name="READONLY_FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></Policy></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/UserRules/=f9fce829_002De6f4_002D4cb2_002D80f1_002D5497c44f51df/@EntryIndexedValue"><Policy><Descriptor Staticness="Static" AccessRightKinds="Private" Description="Static fields (private)"><ElementKinds><Kind Name="FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></Policy></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/JavaScriptNaming/UserRules/=JS_005FCONSTRUCTOR/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/JavaScriptNaming/UserRules/=JS_005FFUNCTION/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/JavaScriptNaming/UserRules/=JS_005FGLOBAL_005FVARIABLE/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/JavaScriptNaming/UserRules/=JS_005FLABEL/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/JavaScriptNaming/UserRules/=JS_005FLOCAL_005FVARIABLE/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/JavaScriptNaming/UserRules/=JS_005FOBJECT_005FPROPERTY_005FOF_005FFUNCTION/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/JavaScriptNaming/UserRules/=JS_005FPARAMETER/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/VBNaming/EventHandlerPatternLong/@EntryValue">$object$_On$event$</s:String> + <s:String x:Key="/Default/CodeStyle/Naming/VBNaming/PredefinedNamingRules/=Constants/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/VBNaming/PredefinedNamingRules/=EnumMember/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/VBNaming/PredefinedNamingRules/=Interfaces/@EntryIndexedValue"><Policy Inspect="True" Prefix="I" Suffix="" Style="AaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/VBNaming/PredefinedNamingRules/=LocalConstants/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/VBNaming/PredefinedNamingRules/=Locals/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/VBNaming/PredefinedNamingRules/=MethodPropertyEvent/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/VBNaming/PredefinedNamingRules/=Other/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/VBNaming/PredefinedNamingRules/=Parameters/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/VBNaming/PredefinedNamingRules/=PrivateConstants/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/VBNaming/PredefinedNamingRules/=PrivateInstanceFields/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/VBNaming/PredefinedNamingRules/=PrivateStaticFields/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/VBNaming/PredefinedNamingRules/=PrivateStaticReadonly/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/VBNaming/PredefinedNamingRules/=PublicFields/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/VBNaming/PredefinedNamingRules/=StaticReadonly/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/VBNaming/PredefinedNamingRules/=TypeParameters/@EntryIndexedValue"><Policy Inspect="True" Prefix="T" Suffix="" Style="AaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/VBNaming/PredefinedNamingRules/=TypesAndNamespaces/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></s:String> + <s:Boolean x:Key="/Default/Environment/InjectedLayers/FileInjectedLayer/=5C63448180C9174C8C28A084F80E37DF/@KeyIndexDefined">True</s:Boolean> + <s:String x:Key="/Default/Environment/InjectedLayers/FileInjectedLayer/=5C63448180C9174C8C28A084F80E37DF/AbsolutePath/@EntryValue">D:\Projects\OSS\GitTools\GitVersion\src\GitVersion.sln.DotSettings</s:String> + <s:String x:Key="/Default/Environment/InjectedLayers/FileInjectedLayer/=5C63448180C9174C8C28A084F80E37DF/RelativePath/@EntryValue"></s:String> + <s:Boolean x:Key="/Default/Environment/InjectedLayers/InjectedLayerCustomization/=File5C63448180C9174C8C28A084F80E37DF/@KeyIndexDefined">True</s:Boolean> + <s:Double x:Key="/Default/Environment/InjectedLayers/InjectedLayerCustomization/=File5C63448180C9174C8C28A084F80E37DF/RelativePriority/@EntryValue">1</s:Double> + <s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EdotCover_002EIde_002ECore_002EFilterManagement_002EModel_002ESolutionFilterSettingsManagerMigrateSettings/@EntryIndexedValue">True</s:Boolean> + <s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EFeature_002EServices_002EDaemon_002ESettings_002EMigration_002ESwaWarningsModeSettingsMigrate/@EntryIndexedValue">True</s:Boolean> + <s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpAttributeForSingleLineMethodUpgrade/@EntryIndexedValue">True</s:Boolean> + <s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpFileLayoutPatternsUpgrade/@EntryIndexedValue">True</s:Boolean> + <s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpKeepExistingMigration/@EntryIndexedValue">True</s:Boolean> + <s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpPlaceEmbeddedOnSameLineMigration/@EntryIndexedValue">True</s:Boolean> + <s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpRenamePlacementToArrangementMigration/@EntryIndexedValue">True</s:Boolean> + <s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpUseContinuousIndentInsideBracesMigration/@EntryIndexedValue">True</s:Boolean> + <s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002EMemberReordering_002EMigrations_002ECSharpFileLayoutPatternRemoveIsAttributeUpgrade/@EntryIndexedValue">True</s:Boolean> + <s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EAddAccessorOwnerDeclarationBracesMigration/@EntryIndexedValue">True</s:Boolean> + <s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EAlwaysTreatStructAsNotReorderableMigration/@EntryIndexedValue">True</s:Boolean> + <s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002ECSharpPlaceAttributeOnSameLineMigration/@EntryIndexedValue">True</s:Boolean> + <s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EMigrateBlankLinesAroundFieldToBlankLinesAroundProperty/@EntryIndexedValue">True</s:Boolean> + <s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EMigrateThisQualifierSettings/@EntryIndexedValue">True</s:Boolean> + <s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EPredefinedNamingRulesToUserRulesUpgrade/@EntryIndexedValue">True</s:Boolean> + <s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002EJavaScript_002ECodeStyle_002ESettingsUpgrade_002EJsCodeFormatterSettingsUpgrader/@EntryIndexedValue">True</s:Boolean> + <s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002EJavaScript_002ECodeStyle_002ESettingsUpgrade_002EJsParsFormattingSettingsUpgrader/@EntryIndexedValue">True</s:Boolean> + <s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002EJavaScript_002ECodeStyle_002ESettingsUpgrade_002EJsWrapperSettingsUpgrader/@EntryIndexedValue">True</s:Boolean> + <s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EUnitTestFramework_002EMigrations_002EEnableDisabledProvidersMigration/@EntryIndexedValue">True</s:Boolean> + <s:Boolean x:Key="/Default/Environment/UnitTesting/SeparateAppDomainPerAssembly/@EntryValue">True</s:Boolean> + <s:Boolean x:Key="/Default/Environment/UnitTesting/ShadowCopy/@EntryValue">False</s:Boolean> + <s:String x:Key="/Default/FilterSettingsManager/AttributeFilterXml/@EntryValue"><data /></s:String> + <s:String x:Key="/Default/FilterSettingsManager/CoverageFilterXml/@EntryValue"><data><IncludeFilters /><ExcludeFilters /></data></s:String> + <s:Boolean x:Key="/Default/UserDictionary/Words/=asbjornu/@EntryIndexedValue">True</s:Boolean> + <s:Boolean x:Key="/Default/UserDictionary/Words/=gitversion/@EntryIndexedValue">True</s:Boolean> + <s:Boolean x:Key="/Default/UserDictionary/Words/=Reacheable/@EntryIndexedValue">True</s:Boolean> + <s:Boolean x:Key="/Default/UserDictionary/Words/=veyor/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary> diff --git a/package-lock.json b/package-lock.json index b2349ae19b..79754d8d8e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,72 +7,72 @@ "name": "gitversion", "license": "MIT", "devDependencies": { - "remark": "^15.0.1", - "remark-cli": "^12.0.1", - "remark-frontmatter": "^5.0.0", - "remark-heading-gap": "^6.0.0", - "remark-lint": "^10.0.1", - "remark-lint-blockquote-indentation": "^4.0.1", - "remark-lint-checkbox-character-style": "^5.0.1", - "remark-lint-checkbox-content-indent": "^5.0.1", - "remark-lint-code": "^2.0.0", - "remark-lint-code-block-style": "^4.0.1", - "remark-lint-definition-case": "^4.0.1", - "remark-lint-definition-spacing": "^4.0.1", - "remark-lint-fenced-code-flag": "^4.2.0", - "remark-lint-fenced-code-marker": "^4.0.1", - "remark-lint-file-extension": "^3.0.1", - "remark-lint-final-definition": "^4.0.2", - "remark-lint-final-newline": "^3.0.1", - "remark-lint-hard-break-spaces": "^4.1.1", - "remark-lint-heading-increment": "^4.0.1", - "remark-lint-heading-style": "^4.0.1", - "remark-lint-heading-whitespace": "^1.0.0", - "remark-lint-link-title-style": "^4.0.1", - "remark-lint-list-item-bullet-indent": "^5.0.1", - "remark-lint-list-item-content-indent": "^4.0.1", - "remark-lint-list-item-indent": "^4.0.1", - "remark-lint-maximum-heading-length": "^4.1.1", - "remark-lint-no-blockquote-without-marker": "^6.0.1", - "remark-lint-no-consecutive-blank-lines": "^5.0.1", - "remark-lint-no-dead-urls": "^2.0.1", - "remark-lint-no-duplicate-definitions": "^4.0.1", - "remark-lint-no-duplicate-headings": "^4.0.1", - "remark-lint-no-emphasis-as-heading": "^4.0.1", - "remark-lint-no-empty-sections": "^4.0.0", - "remark-lint-no-empty-url": "^4.0.1", - "remark-lint-no-file-name-articles": "^3.0.1", - "remark-lint-no-file-name-consecutive-dashes": "^3.0.1", - "remark-lint-no-file-name-irregular-characters": "^3.0.1", - "remark-lint-no-file-name-mixed-case": "^3.0.1", - "remark-lint-no-file-name-outer-dashes": "^3.0.1", - "remark-lint-no-heading-content-indent": "^5.0.1", - "remark-lint-no-heading-indent": "^5.0.1", - "remark-lint-no-heading-like-paragraph": "^4.0.1", - "remark-lint-no-literal-urls": "^4.0.1", - "remark-lint-no-multiple-toplevel-headings": "^4.0.1", - "remark-lint-no-reference-like-url": "^4.0.1", - "remark-lint-no-repeat-punctuation": "^0.1.4", - "remark-lint-no-shell-dollars": "^4.0.1", - "remark-lint-no-shortcut-reference-image": "^4.0.1", - "remark-lint-no-table-indentation": "^5.0.1", - "remark-lint-no-tabs": "^4.0.1", - "remark-lint-no-unused-definitions": "^4.0.2", - "remark-lint-ordered-list-marker-style": "^4.0.1", - "remark-lint-ordered-list-marker-value": "^4.0.1", - "remark-lint-rule-style": "^4.0.1", - "remark-lint-strong-marker": "^4.0.1", - "remark-lint-table-cell-padding": "^5.1.1", - "remark-lint-table-pipe-alignment": "^4.1.1", - "remark-lint-table-pipes": "^5.0.1", - "remark-lint-unordered-list-marker-style": "^4.0.1", - "remark-lint-write-good": "^1.2.0", - "remark-preset-lint-consistent": "^6.0.1", - "remark-preset-lint-markdown-style-guide": "^6.0.1", - "remark-preset-lint-recommended": "^7.0.1", - "remark-retext": "^6.0.1", - "remark-textr": "^6.1.0", - "remark-validate-links": "^13.1.0" + "remark": "15.0.1", + "remark-cli": "12.0.1", + "remark-frontmatter": "5.0.0", + "remark-heading-gap": "6.0.0", + "remark-lint": "10.0.1", + "remark-lint-blockquote-indentation": "4.0.1", + "remark-lint-checkbox-character-style": "5.0.1", + "remark-lint-checkbox-content-indent": "5.0.1", + "remark-lint-code": "2.0.0", + "remark-lint-code-block-style": "4.0.1", + "remark-lint-definition-case": "4.0.1", + "remark-lint-definition-spacing": "4.0.1", + "remark-lint-fenced-code-flag": "4.2.0", + "remark-lint-fenced-code-marker": "4.0.1", + "remark-lint-file-extension": "3.0.1", + "remark-lint-final-definition": "4.0.2", + "remark-lint-final-newline": "3.0.1", + "remark-lint-hard-break-spaces": "4.1.1", + "remark-lint-heading-increment": "4.0.1", + "remark-lint-heading-style": "4.0.1", + "remark-lint-heading-whitespace": "1.0.0", + "remark-lint-link-title-style": "4.0.1", + "remark-lint-list-item-bullet-indent": "5.0.1", + "remark-lint-list-item-content-indent": "4.0.1", + "remark-lint-list-item-indent": "4.0.1", + "remark-lint-maximum-heading-length": "4.1.1", + "remark-lint-no-blockquote-without-marker": "6.0.1", + "remark-lint-no-consecutive-blank-lines": "5.0.1", + "remark-lint-no-dead-urls": "2.0.1", + "remark-lint-no-duplicate-definitions": "4.0.1", + "remark-lint-no-duplicate-headings": "4.0.1", + "remark-lint-no-emphasis-as-heading": "4.0.1", + "remark-lint-no-empty-sections": "4.0.0", + "remark-lint-no-empty-url": "4.0.1", + "remark-lint-no-file-name-articles": "3.0.1", + "remark-lint-no-file-name-consecutive-dashes": "3.0.1", + "remark-lint-no-file-name-irregular-characters": "3.0.1", + "remark-lint-no-file-name-mixed-case": "3.0.1", + "remark-lint-no-file-name-outer-dashes": "3.0.1", + "remark-lint-no-heading-content-indent": "5.0.1", + "remark-lint-no-heading-indent": "5.0.1", + "remark-lint-no-heading-like-paragraph": "4.0.1", + "remark-lint-no-literal-urls": "4.0.1", + "remark-lint-no-multiple-toplevel-headings": "4.0.1", + "remark-lint-no-reference-like-url": "4.0.1", + "remark-lint-no-repeat-punctuation": "0.1.4", + "remark-lint-no-shell-dollars": "4.0.1", + "remark-lint-no-shortcut-reference-image": "4.0.1", + "remark-lint-no-table-indentation": "5.0.1", + "remark-lint-no-tabs": "4.0.1", + "remark-lint-no-unused-definitions": "4.0.2", + "remark-lint-ordered-list-marker-style": "4.0.1", + "remark-lint-ordered-list-marker-value": "4.0.1", + "remark-lint-rule-style": "4.0.1", + "remark-lint-strong-marker": "4.0.1", + "remark-lint-table-cell-padding": "5.1.1", + "remark-lint-table-pipe-alignment": "4.1.1", + "remark-lint-table-pipes": "5.0.1", + "remark-lint-unordered-list-marker-style": "4.0.1", + "remark-lint-write-good": "1.2.0", + "remark-preset-lint-consistent": "6.0.1", + "remark-preset-lint-markdown-style-guide": "6.0.1", + "remark-preset-lint-recommended": "7.0.1", + "remark-retext": "6.0.1", + "remark-textr": "6.1.0", + "remark-validate-links": "13.1.0" } }, "node_modules/@babel/code-frame": { @@ -254,27 +254,25 @@ } }, "node_modules/@babel/runtime": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.7.tgz", - "integrity": "sha512-9E9FJowqAsytyOY6LG+1KuueckRL+aQW+mKvXRXnuFGyRAyepJPmEo9vgMfXUA6O9u3IeEdv9MAkppFcaQwogQ==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz", + "integrity": "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==", "dev": true, + "license": "MIT", "peer": true, - "dependencies": { - "regenerator-runtime": "^0.13.4" - }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/runtime-corejs3": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.16.8.tgz", - "integrity": "sha512-3fKhuICS1lMz0plI5ktOE/yEtBRMVxplzRkdn6mJQ197XiY0JnrzYV0+Mxozq3JZ8SBV9Ecurmw1XsGbwOf+Sg==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.28.4.tgz", + "integrity": "sha512-h7iEYiW4HebClDEhtvFObtPmIvrd1SSfpI9EhOeKk4CtIK/ngBWFpuhCzhdmRKtg71ylcue+9I6dv54XYO1epQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "core-js-pure": "^3.20.2", - "regenerator-runtime": "^0.13.4" + "core-js-pure": "^3.43.0" }, "engines": { "node": ">=6.9.0" @@ -338,6 +336,7 @@ "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", @@ -355,6 +354,7 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, + "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -408,10 +408,11 @@ } }, "node_modules/@npmcli/map-workspaces/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } @@ -436,9 +437,9 @@ } }, "node_modules/@npmcli/map-workspaces/node_modules/minimatch": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", - "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.9.tgz", + "integrity": "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" @@ -458,6 +459,7 @@ "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", "dev": true, + "license": "MIT", "optional": true, "engines": { "node": ">=14" @@ -904,10 +906,11 @@ "dev": true }, "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "balanced-match": "^1.0.0", @@ -1234,11 +1237,12 @@ } }, "node_modules/core-js-pure": { - "version": "3.20.2", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.20.2.tgz", - "integrity": "sha512-CmWHvSKn2vNL6p6StNp1EmMIfVY/pqn3JLAjfZQ8WZGPOlGoO92EkX9/Mk81i6GxvoPXjUqEQnpM3rJ5QxxIOg==", + "version": "3.47.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.47.0.tgz", + "integrity": "sha512-BcxeDbzUrRnXGYIVAGFtcGQVNpFcUhVjr6W7F8XktvQW2iJP9e66GP6xdKotCRFlrxBvNIBrhwKteRXqMV86Nw==", "dev": true, "hasInstallScript": true, + "license": "MIT", "peer": true, "funding": { "type": "opencollective", @@ -1246,10 +1250,11 @@ } }, "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -1323,19 +1328,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/dead-or-alive/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/dead-or-alive/node_modules/unist-util-visit": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", @@ -1351,20 +1343,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/dead-or-alive/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/debug": { "version": "4.3.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", @@ -2225,9 +2203,9 @@ } }, "node_modules/flatted": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz", - "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz", + "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==", "dev": true, "peer": true }, @@ -2417,31 +2395,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/got": { - "version": "11.8.6", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", - "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", - "dev": true, - "dependencies": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=10.19.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, "node_modules/has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -2553,53 +2506,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/hast-util-from-html/node_modules/@types/unist": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", - "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", - "dev": true - }, - "node_modules/hast-util-from-html/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-from-html/node_modules/vfile": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", - "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-from-html/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/hast-util-from-parse5": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.1.tgz", @@ -2626,47 +2532,6 @@ "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", "dev": true }, - "node_modules/hast-util-from-parse5/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-from-parse5/node_modules/vfile": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", - "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-from-parse5/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/hast-util-has-property": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/hast-util-has-property/-/hast-util-has-property-3.0.0.tgz", @@ -2810,15 +2675,6 @@ "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/hosted-git-info/node_modules/lru-cache": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", - "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", - "dev": true, - "engines": { - "node": "14 || >=16.14" - } - }, "node_modules/html-url-attributes": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/html-url-attributes/-/html-url-attributes-3.0.1.tgz", @@ -3111,6 +2967,7 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -3209,6 +3066,31 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-online/node_modules/got": { + "version": "11.8.5", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.5.tgz", + "integrity": "sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ==", + "dev": true, + "dependencies": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=10.19.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, "node_modules/is-plain-obj": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", @@ -3312,16 +3194,14 @@ "dev": true }, "node_modules/jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" }, - "engines": { - "node": ">=14" - }, "funding": { "url": "https://github.com/sponsors/isaacs" }, @@ -3336,10 +3216,20 @@ "dev": true }, "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.2.0.tgz", + "integrity": "sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], "peer": true, "dependencies": { "argparse": "^2.0.1" @@ -3511,6 +3401,13 @@ "node": ">=8" } }, + "node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, "node_modules/markdown-extensions": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-2.0.0.tgz", @@ -3633,19 +3530,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/mdast-util-from-markdown/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/mdast-util-frontmatter": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/mdast-util-frontmatter/-/mdast-util-frontmatter-2.0.1.tgz", @@ -3775,33 +3659,6 @@ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==", "dev": true }, - "node_modules/mdast-util-mdx-jsx/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-mdx-jsx/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/mdast-util-mdxjs-esm": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz", @@ -3859,9 +3716,9 @@ "dev": true }, "node_modules/mdast-util-to-hast": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.0.2.tgz", - "integrity": "sha512-U5I+500EOOw9e3ZrclN3Is3fRpw8c19SMyNZlZ2IS+7vLsNzb2Om11VpIVOR+/0137GhZsFEF6YiKD5+0Hr2Og==", + "version": "13.2.1", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.1.tgz", + "integrity": "sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==", "dev": true, "dependencies": { "@types/hast": "^3.0.0", @@ -3871,7 +3728,8 @@ "micromark-util-sanitize-uri": "^2.0.0", "trim-lines": "^3.0.0", "unist-util-position": "^5.0.0", - "unist-util-visit": "^5.0.0" + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" }, "funding": { "type": "opencollective", @@ -4059,48 +3917,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/mdast-util-to-nlcst/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-nlcst/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-nlcst/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/micromark": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.0.tgz", @@ -4569,11 +4385,10 @@ } }, "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "dev": true, - "license": "ISC", "peer": true, "dependencies": { "brace-expansion": "^1.1.7" @@ -4589,10 +4404,11 @@ "dev": true }, "node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, + "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } @@ -4975,6 +4791,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -5085,48 +4908,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/parse-latin/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/parse-latin/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/parse-latin/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/parse5": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", @@ -5182,34 +4963,26 @@ "peer": true }, "node_modules/path-scurry": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { - "lru-cache": "^9.1.1 || ^10.0.0", + "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", - "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", - "dev": true, - "engines": { - "node": "14 || >=16.14" - } - }, "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", "dev": true, "engines": { "node": ">=8.6" @@ -5304,6 +5077,31 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/public-ip/node_modules/got": { + "version": "11.8.5", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.5.tgz", + "integrity": "sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ==", + "dev": true, + "dependencies": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=10.19.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, "node_modules/pump": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", @@ -5392,13 +5190,6 @@ "node": ">=8.10.0" } }, - "node_modules/regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", - "dev": true, - "peer": true - }, "node_modules/regexp.prototype.flags": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", @@ -5524,48 +5315,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-frontmatter/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-frontmatter/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-frontmatter/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-heading-gap": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/remark-heading-gap/-/remark-heading-gap-6.0.0.tgz", @@ -5614,48 +5363,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-heading-gap/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-heading-gap/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-heading-gap/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint": { "version": "10.0.1", "resolved": "https://registry.npmjs.org/remark-lint/-/remark-lint-10.0.1.tgz", @@ -5754,48 +5461,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-blockquote-indentation/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-blockquote-indentation/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-blockquote-indentation/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-checkbox-character-style": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/remark-lint-checkbox-character-style/-/remark-lint-checkbox-character-style-5.0.1.tgz", @@ -5878,48 +5543,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-checkbox-character-style/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-checkbox-character-style/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-checkbox-character-style/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-checkbox-content-indent": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/remark-lint-checkbox-content-indent/-/remark-lint-checkbox-content-indent-5.0.1.tgz", @@ -6002,48 +5625,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-checkbox-content-indent/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-checkbox-content-indent/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-checkbox-content-indent/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-code": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/remark-lint-code/-/remark-lint-code-2.0.0.tgz", @@ -6136,55 +5717,13 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-code-block-style/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "node_modules/remark-lint-code/node_modules/unified-lint-rule": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-1.0.6.tgz", + "integrity": "sha512-YPK15YBFwnsVorDFG/u0cVVQN5G2a3V8zv5/N6KN3TCG+ajKtaALcy7u14DCSrJI+gZeyYquFL9cioJXOGXSvg==", "dev": true, "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-code-block-style/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-code-block-style/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-code/node_modules/unified-lint-rule": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-1.0.6.tgz", - "integrity": "sha512-YPK15YBFwnsVorDFG/u0cVVQN5G2a3V8zv5/N6KN3TCG+ajKtaALcy7u14DCSrJI+gZeyYquFL9cioJXOGXSvg==", - "dev": true, - "dependencies": { - "wrapped": "^1.0.1" + "wrapped": "^1.0.1" }, "funding": { "type": "opencollective", @@ -6282,48 +5821,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-definition-case/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-definition-case/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-definition-case/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-definition-spacing": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/remark-lint-definition-spacing/-/remark-lint-definition-spacing-4.0.1.tgz", @@ -6393,48 +5890,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-definition-spacing/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-definition-spacing/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-definition-spacing/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-emphasis-marker": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/remark-lint-emphasis-marker/-/remark-lint-emphasis-marker-4.0.0.tgz", @@ -6515,48 +5970,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-emphasis-marker/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-emphasis-marker/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-emphasis-marker/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-fenced-code-flag": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/remark-lint-fenced-code-flag/-/remark-lint-fenced-code-flag-4.2.0.tgz", @@ -6639,48 +6052,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-fenced-code-flag/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-fenced-code-flag/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-fenced-code-flag/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-fenced-code-marker": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/remark-lint-fenced-code-marker/-/remark-lint-fenced-code-marker-4.0.1.tgz", @@ -6763,48 +6134,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-fenced-code-marker/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-fenced-code-marker/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-fenced-code-marker/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-file-extension": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/remark-lint-file-extension/-/remark-lint-file-extension-3.0.1.tgz", @@ -6871,48 +6200,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-file-extension/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-file-extension/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-file-extension/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-final-definition": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/remark-lint-final-definition/-/remark-lint-final-definition-4.0.2.tgz", @@ -6997,59 +6284,17 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-final-definition/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "node_modules/remark-lint-final-newline": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/remark-lint-final-newline/-/remark-lint-final-newline-3.0.1.tgz", + "integrity": "sha512-q5diKHD6BMbzqWqgvYPOB8AJgLrMzEMBAprNXjcpKoZ/uCRqly+gxjco+qVUMtMWSd+P+KXZZEqoa7Y6QiOudw==", "dev": true, + "license": "MIT", "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-final-definition/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-final-definition/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-final-newline": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/remark-lint-final-newline/-/remark-lint-final-newline-3.0.1.tgz", - "integrity": "sha512-q5diKHD6BMbzqWqgvYPOB8AJgLrMzEMBAprNXjcpKoZ/uCRqly+gxjco+qVUMtMWSd+P+KXZZEqoa7Y6QiOudw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "unified-lint-rule": "^3.0.0", - "vfile-location": "^5.0.0" + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "unified-lint-rule": "^3.0.0", + "vfile-location": "^5.0.0" }, "funding": { "type": "opencollective", @@ -7106,48 +6351,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-final-newline/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-final-newline/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-final-newline/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-hard-break-spaces": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/remark-lint-hard-break-spaces/-/remark-lint-hard-break-spaces-4.1.1.tgz", @@ -7228,19 +6431,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-hard-break-spaces/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-hard-break-spaces/node_modules/unist-util-visit": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", @@ -7256,35 +6446,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-hard-break-spaces/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-hard-break-spaces/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-heading-increment": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/remark-lint-heading-increment/-/remark-lint-heading-increment-4.0.1.tgz", @@ -7354,48 +6515,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-heading-increment/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-heading-increment/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-heading-increment/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-heading-style": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/remark-lint-heading-style/-/remark-lint-heading-style-4.0.1.tgz", @@ -7492,48 +6611,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-heading-style/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-heading-style/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-heading-style/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-heading-whitespace": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/remark-lint-heading-whitespace/-/remark-lint-heading-whitespace-1.0.0.tgz", @@ -7673,48 +6750,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-link-title-style/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-link-title-style/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-link-title-style/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-list-item-bullet-indent": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/remark-lint-list-item-bullet-indent/-/remark-lint-list-item-bullet-indent-5.0.1.tgz", @@ -7795,48 +6830,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-list-item-bullet-indent/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-list-item-bullet-indent/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-list-item-bullet-indent/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-list-item-content-indent": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/remark-lint-list-item-content-indent/-/remark-lint-list-item-content-indent-4.0.1.tgz", @@ -7920,48 +6913,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-list-item-content-indent/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-list-item-content-indent/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-list-item-content-indent/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-list-item-indent": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/remark-lint-list-item-indent/-/remark-lint-list-item-indent-4.0.1.tgz", @@ -8044,48 +6995,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-list-item-indent/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-list-item-indent/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-list-item-indent/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-list-item-spacing": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/remark-lint-list-item-spacing/-/remark-lint-list-item-spacing-5.0.0.tgz", @@ -8168,48 +7077,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-list-item-spacing/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-list-item-spacing/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-list-item-spacing/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-maximum-heading-length": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/remark-lint-maximum-heading-length/-/remark-lint-maximum-heading-length-4.1.1.tgz", @@ -8305,48 +7172,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-maximum-heading-length/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-maximum-heading-length/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-maximum-heading-length/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-maximum-line-length": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/remark-lint-maximum-line-length/-/remark-lint-maximum-line-length-4.0.1.tgz", @@ -8428,19 +7253,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-maximum-line-length/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-maximum-line-length/node_modules/unist-util-visit": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", @@ -8456,35 +7268,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-maximum-line-length/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-maximum-line-length/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-no-blockquote-without-marker": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/remark-lint-no-blockquote-without-marker/-/remark-lint-no-blockquote-without-marker-6.0.1.tgz", @@ -8570,48 +7353,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-blockquote-without-marker/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-blockquote-without-marker/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-blockquote-without-marker/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-no-consecutive-blank-lines": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/remark-lint-no-consecutive-blank-lines/-/remark-lint-no-consecutive-blank-lines-5.0.1.tgz", @@ -8696,48 +7437,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-consecutive-blank-lines/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-consecutive-blank-lines/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-consecutive-blank-lines/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-no-dead-urls": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/remark-lint-no-dead-urls/-/remark-lint-no-dead-urls-2.0.1.tgz", @@ -8810,19 +7509,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-dead-urls/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-no-dead-urls/node_modules/unist-util-visit": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", @@ -8838,34 +7524,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-dead-urls/node_modules/vfile": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", - "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-dead-urls/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-no-duplicate-definitions": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/remark-lint-no-duplicate-definitions/-/remark-lint-no-duplicate-definitions-4.0.1.tgz", @@ -8935,48 +7593,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-duplicate-definitions/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-duplicate-definitions/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-duplicate-definitions/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-no-duplicate-headings": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/remark-lint-no-duplicate-headings/-/remark-lint-no-duplicate-headings-4.0.1.tgz", @@ -9060,48 +7676,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-duplicate-headings/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-duplicate-headings/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-duplicate-headings/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-no-emphasis-as-heading": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/remark-lint-no-emphasis-as-heading/-/remark-lint-no-emphasis-as-heading-4.0.1.tgz", @@ -9169,48 +7743,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-emphasis-as-heading/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-emphasis-as-heading/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-emphasis-as-heading/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-no-empty-sections": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/remark-lint-no-empty-sections/-/remark-lint-no-empty-sections-4.0.0.tgz", @@ -9335,48 +7867,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-empty-url/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-empty-url/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-empty-url/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-no-file-name-articles": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-articles/-/remark-lint-no-file-name-articles-3.0.1.tgz", @@ -9442,48 +7932,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-file-name-articles/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-file-name-articles/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-file-name-articles/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-no-file-name-consecutive-dashes": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-consecutive-dashes/-/remark-lint-no-file-name-consecutive-dashes-3.0.1.tgz", @@ -9549,52 +7997,75 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-file-name-consecutive-dashes/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "node_modules/remark-lint-no-file-name-irregular-characters": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-irregular-characters/-/remark-lint-no-file-name-irregular-characters-3.0.1.tgz", + "integrity": "sha512-kNm16eDnPqbN05W0RLIedHi40YzHf1esPHbNKv12AljKWptdCTS72uGjAbqUSZ48dRoKtJzL0HJ0OAqXIWUyxA==", "dev": true, + "license": "MIT", "dependencies": { - "@types/unist": "^3.0.0" + "@types/mdast": "^4.0.0", + "unified-lint-rule": "^3.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-file-name-consecutive-dashes/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", + "node_modules/remark-lint-no-file-name-irregular-characters/node_modules/@types/mdast": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz", + "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==", + "dev": true, + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/remark-lint-no-file-name-irregular-characters/node_modules/@types/unist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", + "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==", + "dev": true + }, + "node_modules/remark-lint-no-file-name-irregular-characters/node_modules/unified": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz", + "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==", "dev": true, "dependencies": { "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" + "bail": "^2.0.0", + "devlop": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-file-name-consecutive-dashes/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "node_modules/remark-lint-no-file-name-irregular-characters/node_modules/unified-lint-rule": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz", + "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==", "dev": true, "dependencies": { "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" + "trough": "^2.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-file-name-irregular-characters": { + "node_modules/remark-lint-no-file-name-mixed-case": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-irregular-characters/-/remark-lint-no-file-name-irregular-characters-3.0.1.tgz", - "integrity": "sha512-kNm16eDnPqbN05W0RLIedHi40YzHf1esPHbNKv12AljKWptdCTS72uGjAbqUSZ48dRoKtJzL0HJ0OAqXIWUyxA==", + "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-mixed-case/-/remark-lint-no-file-name-mixed-case-3.0.1.tgz", + "integrity": "sha512-cXVY0gM6DIHHK+mUhQVZ/WLh4cNfzEDpM54LNJBnflR9n9r6eNLR3JlWFRviTL4xRrQ5FXisBSlBa87BquiFVA==", "dev": true, "license": "MIT", "dependencies": { @@ -9606,7 +8077,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-file-name-irregular-characters/node_modules/@types/mdast": { + "node_modules/remark-lint-no-file-name-mixed-case/node_modules/@types/mdast": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz", "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==", @@ -9615,13 +8086,13 @@ "@types/unist": "*" } }, - "node_modules/remark-lint-no-file-name-irregular-characters/node_modules/@types/unist": { + "node_modules/remark-lint-no-file-name-mixed-case/node_modules/@types/unist": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==", "dev": true }, - "node_modules/remark-lint-no-file-name-irregular-characters/node_modules/unified": { + "node_modules/remark-lint-no-file-name-mixed-case/node_modules/unified": { "version": "11.0.4", "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz", "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==", @@ -9640,7 +8111,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-file-name-irregular-characters/node_modules/unified-lint-rule": { + "node_modules/remark-lint-no-file-name-mixed-case/node_modules/unified-lint-rule": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz", "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==", @@ -9656,155 +8127,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-file-name-irregular-characters/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-file-name-irregular-characters/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-file-name-irregular-characters/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-file-name-mixed-case": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-mixed-case/-/remark-lint-no-file-name-mixed-case-3.0.1.tgz", - "integrity": "sha512-cXVY0gM6DIHHK+mUhQVZ/WLh4cNfzEDpM54LNJBnflR9n9r6eNLR3JlWFRviTL4xRrQ5FXisBSlBa87BquiFVA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "unified-lint-rule": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-file-name-mixed-case/node_modules/@types/mdast": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz", - "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==", - "dev": true, - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/remark-lint-no-file-name-mixed-case/node_modules/@types/unist": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", - "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==", - "dev": true - }, - "node_modules/remark-lint-no-file-name-mixed-case/node_modules/unified": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz", - "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "bail": "^2.0.0", - "devlop": "^1.0.0", - "extend": "^3.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-file-name-mixed-case/node_modules/unified-lint-rule": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz", - "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "trough": "^2.0.0", - "unified": "^11.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-file-name-mixed-case/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-file-name-mixed-case/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-file-name-mixed-case/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-no-file-name-outer-dashes": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-outer-dashes/-/remark-lint-no-file-name-outer-dashes-3.0.1.tgz", @@ -9870,48 +8192,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-file-name-outer-dashes/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-file-name-outer-dashes/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-file-name-outer-dashes/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-no-heading-content-indent": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/remark-lint-no-heading-content-indent/-/remark-lint-no-heading-content-indent-5.0.1.tgz", @@ -9994,48 +8274,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-heading-content-indent/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-heading-content-indent/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-heading-content-indent/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-no-heading-indent": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/remark-lint-no-heading-indent/-/remark-lint-no-heading-indent-5.0.1.tgz", @@ -10118,48 +8356,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-heading-indent/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-heading-indent/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-heading-indent/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-no-heading-like-paragraph": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/remark-lint-no-heading-like-paragraph/-/remark-lint-no-heading-like-paragraph-4.0.1.tgz", @@ -10242,48 +8438,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-heading-like-paragraph/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-heading-like-paragraph/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-heading-like-paragraph/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-no-heading-punctuation": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/remark-lint-no-heading-punctuation/-/remark-lint-no-heading-punctuation-4.0.0.tgz", @@ -10322,84 +8476,42 @@ "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", "dev": true, "dependencies": { - "@types/mdast": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-heading-punctuation/node_modules/unified": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz", - "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "bail": "^2.0.0", - "devlop": "^1.0.0", - "extend": "^3.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-heading-punctuation/node_modules/unified-lint-rule": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz", - "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "trough": "^2.0.0", - "unified": "^11.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-heading-punctuation/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" + "@types/mdast": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-heading-punctuation/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", + "node_modules/remark-lint-no-heading-punctuation/node_modules/unified": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz", + "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==", "dev": true, "dependencies": { "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" + "bail": "^2.0.0", + "devlop": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-heading-punctuation/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "node_modules/remark-lint-no-heading-punctuation/node_modules/unified-lint-rule": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz", + "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==", "dev": true, "dependencies": { "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" + "trough": "^2.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" }, "funding": { "type": "opencollective", @@ -10501,48 +8613,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-literal-urls/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-literal-urls/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-literal-urls/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-no-multiple-toplevel-headings": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/remark-lint-no-multiple-toplevel-headings/-/remark-lint-no-multiple-toplevel-headings-4.0.1.tgz", @@ -10612,48 +8682,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-multiple-toplevel-headings/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-multiple-toplevel-headings/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-multiple-toplevel-headings/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-no-reference-like-url": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/remark-lint-no-reference-like-url/-/remark-lint-no-reference-like-url-4.0.1.tgz", @@ -10736,48 +8764,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-reference-like-url/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-reference-like-url/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-reference-like-url/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-no-repeat-punctuation": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/remark-lint-no-repeat-punctuation/-/remark-lint-no-repeat-punctuation-0.1.4.tgz", @@ -10870,48 +8856,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-shell-dollars/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-shell-dollars/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-shell-dollars/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-no-shortcut-reference-image": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/remark-lint-no-shortcut-reference-image/-/remark-lint-no-shortcut-reference-image-4.0.1.tgz", @@ -10978,48 +8922,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-shortcut-reference-image/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-shortcut-reference-image/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-shortcut-reference-image/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-no-shortcut-reference-link": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/remark-lint-no-shortcut-reference-link/-/remark-lint-no-shortcut-reference-link-4.0.0.tgz", @@ -11038,89 +8940,47 @@ "node_modules/remark-lint-no-shortcut-reference-link/node_modules/@types/mdast": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz", - "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==", - "dev": true, - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/remark-lint-no-shortcut-reference-link/node_modules/@types/unist": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", - "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==", - "dev": true - }, - "node_modules/remark-lint-no-shortcut-reference-link/node_modules/unified": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz", - "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "bail": "^2.0.0", - "devlop": "^1.0.0", - "extend": "^3.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-shortcut-reference-link/node_modules/unified-lint-rule": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz", - "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "trough": "^2.0.0", - "unified": "^11.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-shortcut-reference-link/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==", + "dev": true, + "dependencies": { + "@types/unist": "*" } }, - "node_modules/remark-lint-no-shortcut-reference-link/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", + "node_modules/remark-lint-no-shortcut-reference-link/node_modules/@types/unist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", + "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==", + "dev": true + }, + "node_modules/remark-lint-no-shortcut-reference-link/node_modules/unified": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz", + "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==", "dev": true, "dependencies": { "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" + "bail": "^2.0.0", + "devlop": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-shortcut-reference-link/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "node_modules/remark-lint-no-shortcut-reference-link/node_modules/unified-lint-rule": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz", + "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==", "dev": true, "dependencies": { "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" + "trough": "^2.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" }, "funding": { "type": "opencollective", @@ -11211,48 +9071,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-table-indentation/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-table-indentation/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-table-indentation/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-no-tabs": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/remark-lint-no-tabs/-/remark-lint-no-tabs-4.0.1.tgz", @@ -11319,48 +9137,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-tabs/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-tabs/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-tabs/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-no-undefined-references": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/remark-lint-no-undefined-references/-/remark-lint-no-undefined-references-5.0.0.tgz", @@ -11444,48 +9220,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-undefined-references/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-undefined-references/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-undefined-references/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-no-unused-definitions": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/remark-lint-no-unused-definitions/-/remark-lint-no-unused-definitions-4.0.2.tgz", @@ -11553,48 +9287,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-unused-definitions/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-unused-definitions/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-unused-definitions/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-ordered-list-marker-style": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/remark-lint-ordered-list-marker-style/-/remark-lint-ordered-list-marker-style-4.0.1.tgz", @@ -11678,48 +9370,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-ordered-list-marker-style/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-ordered-list-marker-style/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-ordered-list-marker-style/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-ordered-list-marker-value": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/remark-lint-ordered-list-marker-value/-/remark-lint-ordered-list-marker-value-4.0.1.tgz", @@ -11754,92 +9404,50 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==", - "dev": true - }, - "node_modules/remark-lint-ordered-list-marker-value/node_modules/unified": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz", - "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "bail": "^2.0.0", - "devlop": "^1.0.0", - "extend": "^3.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-ordered-list-marker-value/node_modules/unified-lint-rule": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz", - "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "trough": "^2.0.0", - "unified": "^11.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-ordered-list-marker-value/node_modules/unist-util-position": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", - "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } + "dev": true }, - "node_modules/remark-lint-ordered-list-marker-value/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "node_modules/remark-lint-ordered-list-marker-value/node_modules/unified": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz", + "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==", "dev": true, "dependencies": { - "@types/unist": "^3.0.0" + "@types/unist": "^3.0.0", + "bail": "^2.0.0", + "devlop": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-ordered-list-marker-value/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", + "node_modules/remark-lint-ordered-list-marker-value/node_modules/unified-lint-rule": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz", + "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==", "dev": true, "dependencies": { "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" + "trough": "^2.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-ordered-list-marker-value/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "node_modules/remark-lint-ordered-list-marker-value/node_modules/unist-util-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", + "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", "dev": true, "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" + "@types/unist": "^3.0.0" }, "funding": { "type": "opencollective", @@ -11928,48 +9536,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-rule-style/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-rule-style/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-rule-style/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-strong-marker": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/remark-lint-strong-marker/-/remark-lint-strong-marker-4.0.1.tgz", @@ -12051,48 +9617,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-strong-marker/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-strong-marker/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-strong-marker/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-table-cell-padding": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/remark-lint-table-cell-padding/-/remark-lint-table-cell-padding-5.1.1.tgz", @@ -12178,48 +9702,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-table-cell-padding/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-table-cell-padding/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-table-cell-padding/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-table-pipe-alignment": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/remark-lint-table-pipe-alignment/-/remark-lint-table-pipe-alignment-4.1.1.tgz", @@ -12304,48 +9786,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-table-pipe-alignment/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-table-pipe-alignment/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-table-pipe-alignment/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-table-pipes": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/remark-lint-table-pipes/-/remark-lint-table-pipes-5.0.1.tgz", @@ -12428,48 +9868,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-table-pipes/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-table-pipes/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-table-pipes/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-unordered-list-marker-style": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/remark-lint-unordered-list-marker-style/-/remark-lint-unordered-list-marker-style-4.0.1.tgz", @@ -12510,84 +9908,42 @@ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==", "dev": true, "dependencies": { - "@types/unist": "^3.0.0", - "bail": "^2.0.0", - "devlop": "^1.0.0", - "extend": "^3.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-unordered-list-marker-style/node_modules/unified-lint-rule": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz", - "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "trough": "^2.0.0", - "unified": "^11.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-unordered-list-marker-style/node_modules/unist-util-position": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", - "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-unordered-list-marker-style/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" + "@types/unist": "^3.0.0", + "bail": "^2.0.0", + "devlop": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-unordered-list-marker-style/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", + "node_modules/remark-lint-unordered-list-marker-style/node_modules/unified-lint-rule": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz", + "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==", "dev": true, "dependencies": { "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" + "trough": "^2.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-unordered-list-marker-style/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "node_modules/remark-lint-unordered-list-marker-style/node_modules/unist-util-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", + "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", "dev": true, "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" + "@types/unist": "^3.0.0" }, "funding": { "type": "opencollective", @@ -12677,48 +10033,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-message-control": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/remark-message-control/-/remark-message-control-8.0.0.tgz", @@ -12750,48 +10064,6 @@ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==", "dev": true }, - "node_modules/remark-message-control/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-message-control/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-message-control/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-parse": { "version": "11.0.0", "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", @@ -12842,48 +10114,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-parse/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-parse/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-parse/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-preset-lint-consistent": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/remark-preset-lint-consistent/-/remark-preset-lint-consistent-6.0.1.tgz", @@ -12937,48 +10167,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-preset-lint-consistent/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-preset-lint-consistent/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-preset-lint-consistent/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-preset-lint-markdown-style-guide": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/remark-preset-lint-markdown-style-guide/-/remark-preset-lint-markdown-style-guide-6.0.1.tgz", @@ -13061,48 +10249,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-preset-lint-markdown-style-guide/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-preset-lint-markdown-style-guide/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-preset-lint-markdown-style-guide/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-preset-lint-recommended": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/remark-preset-lint-recommended/-/remark-preset-lint-recommended-7.0.1.tgz", @@ -13119,79 +10265,37 @@ "remark-lint-no-duplicate-definitions": "^4.0.0", "remark-lint-no-heading-content-indent": "^5.0.0", "remark-lint-no-literal-urls": "^4.0.0", - "remark-lint-no-shortcut-reference-image": "^4.0.0", - "remark-lint-no-shortcut-reference-link": "^4.0.0", - "remark-lint-no-undefined-references": "^5.0.0", - "remark-lint-no-unused-definitions": "^4.0.0", - "remark-lint-ordered-list-marker-style": "^4.0.0", - "unified": "^11.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-preset-lint-recommended/node_modules/@types/unist": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", - "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==", - "dev": true - }, - "node_modules/remark-preset-lint-recommended/node_modules/unified": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz", - "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "bail": "^2.0.0", - "devlop": "^1.0.0", - "extend": "^3.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-preset-lint-recommended/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-preset-lint-recommended/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" + "remark-lint-no-shortcut-reference-image": "^4.0.0", + "remark-lint-no-shortcut-reference-link": "^4.0.0", + "remark-lint-no-undefined-references": "^5.0.0", + "remark-lint-no-unused-definitions": "^4.0.0", + "remark-lint-ordered-list-marker-style": "^4.0.0", + "unified": "^11.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-preset-lint-recommended/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "node_modules/remark-preset-lint-recommended/node_modules/@types/unist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", + "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==", + "dev": true + }, + "node_modules/remark-preset-lint-recommended/node_modules/unified": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz", + "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==", "dev": true, "dependencies": { "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" + "bail": "^2.0.0", + "devlop": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^6.0.0" }, "funding": { "type": "opencollective", @@ -13251,48 +10355,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-retext/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-retext/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-retext/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-stringify": { "version": "11.0.0", "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", @@ -13342,48 +10404,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-stringify/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-stringify/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-stringify/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-textr": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/remark-textr/-/remark-textr-6.1.0.tgz", @@ -13481,19 +10501,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-validate-links/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-validate-links/node_modules/unist-util-visit": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", @@ -13509,35 +10516,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-validate-links/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-validate-links/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark/node_modules/@types/mdast": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.1.tgz", @@ -13572,48 +10550,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/resolve": { "version": "1.21.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.21.0.tgz", @@ -13805,6 +10741,7 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -13819,6 +10756,7 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -13827,13 +10765,15 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/string-width-cjs/node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -13930,6 +10870,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -13942,6 +10883,7 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -14143,11 +11085,10 @@ } }, "node_modules/undici": { - "version": "6.21.3", - "resolved": "https://registry.npmjs.org/undici/-/undici-6.21.3.tgz", - "integrity": "sha512-gBLkYIlEnSp8pFbT64yFgGE6UIB9tAkhukC23PmMDCe5Nd+cRqKxSjw5y54MK2AZMgZfJWMaNE4nYUHgi1XEOw==", + "version": "6.27.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.27.0.tgz", + "integrity": "sha512-YmfV3YnEDzXRC5lZ2jWtWWHKGUm1zIt8AhesR1tens+HTNv+YZlN/dp6G727LOvMJ8xjP9Be7Y2Sdr96LDm+pg==", "dev": true, - "license": "MIT", "engines": { "node": ">=18.17" } @@ -14225,43 +11166,43 @@ "dev": true }, "node_modules/unified-engine/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/unified-engine/node_modules/glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", "dev": true, + "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/unified-engine/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", "dev": true, "dependencies": { - "brace-expansion": "^2.0.1" + "brace-expansion": "^2.0.2" }, "engines": { "node": ">=16 || 14 >=14.17" @@ -14270,48 +11211,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/unified-engine/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unified-engine/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unified-engine/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/unified-message-control": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/unified-message-control/-/unified-message-control-5.0.0.tgz", @@ -14338,57 +11237,15 @@ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==", "dev": true }, - "node_modules/unified-message-control/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unified-message-control/node_modules/unist-util-visit": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", - "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0", - "unist-util-visit-parents": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unified-message-control/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unified-message-control/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "node_modules/unified-message-control/node_modules/unist-util-visit": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", + "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", "dev": true, "dependencies": { "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" }, "funding": { "type": "opencollective", @@ -14499,6 +11356,25 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "dev": true, + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-stringify-position/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true + }, "node_modules/unist-util-to-list-of-char": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/unist-util-to-list-of-char/-/unist-util-to-list-of-char-0.1.3.tgz", @@ -14607,6 +11483,20 @@ "dev": true, "peer": true }, + "node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "dev": true, + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/vfile-location": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.2.tgz", @@ -14627,38 +11517,10 @@ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==", "dev": true }, - "node_modules/vfile-location/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-location/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-location/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "node_modules/vfile-message": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz", + "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==", "dev": true, "dependencies": { "@types/unist": "^3.0.0", @@ -14669,6 +11531,12 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/vfile-message/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true + }, "node_modules/vfile-reporter": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/vfile-reporter/-/vfile-reporter-8.1.0.tgz", @@ -14689,12 +11557,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/vfile-reporter/node_modules/@types/unist": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz", - "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==", - "dev": true - }, "node_modules/vfile-reporter/node_modules/supports-color": { "version": "9.4.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.4.0.tgz", @@ -14707,48 +11569,6 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/vfile-reporter/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-reporter/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-reporter/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/vfile-sort": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/vfile-sort/-/vfile-sort-4.0.0.tgz", @@ -14763,54 +11583,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/vfile-sort/node_modules/@types/unist": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz", - "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==", - "dev": true - }, - "node_modules/vfile-sort/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-sort/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-sort/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/vfile-statistics": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/vfile-statistics/-/vfile-statistics-3.0.0.tgz", @@ -14825,54 +11597,12 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/vfile-statistics/node_modules/@types/unist": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz", - "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==", + "node_modules/vfile/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", "dev": true }, - "node_modules/vfile-statistics/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-statistics/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-statistics/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/walk-up-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/walk-up-path/-/walk-up-path-1.0.0.tgz", @@ -14942,6 +11672,7 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -14960,6 +11691,7 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -14977,6 +11709,7 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -14985,13 +11718,15 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/wrap-ansi-cjs/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -15006,6 +11741,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -15014,10 +11750,11 @@ } }, "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -15030,6 +11767,7 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, + "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -15258,24 +11996,20 @@ } }, "@babel/runtime": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.7.tgz", - "integrity": "sha512-9E9FJowqAsytyOY6LG+1KuueckRL+aQW+mKvXRXnuFGyRAyepJPmEo9vgMfXUA6O9u3IeEdv9MAkppFcaQwogQ==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz", + "integrity": "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==", "dev": true, - "peer": true, - "requires": { - "regenerator-runtime": "^0.13.4" - } + "peer": true }, "@babel/runtime-corejs3": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.16.8.tgz", - "integrity": "sha512-3fKhuICS1lMz0plI5ktOE/yEtBRMVxplzRkdn6mJQ197XiY0JnrzYV0+Mxozq3JZ8SBV9Ecurmw1XsGbwOf+Sg==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.28.4.tgz", + "integrity": "sha512-h7iEYiW4HebClDEhtvFObtPmIvrd1SSfpI9EhOeKk4CtIK/ngBWFpuhCzhdmRKtg71ylcue+9I6dv54XYO1epQ==", "dev": true, "peer": true, "requires": { - "core-js-pure": "^3.20.2", - "regenerator-runtime": "^0.13.4" + "core-js-pure": "^3.43.0" } }, "@eslint/eslintrc": { @@ -15386,9 +12120,9 @@ }, "dependencies": { "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "dev": true, "requires": { "balanced-match": "^1.0.0" @@ -15408,9 +12142,9 @@ } }, "minimatch": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", - "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.9.tgz", + "integrity": "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==", "dev": true, "requires": { "brace-expansion": "^2.0.1" @@ -15784,9 +12518,9 @@ "dev": true }, "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "peer": true, "requires": { @@ -16020,16 +12754,16 @@ "dev": true }, "core-js-pure": { - "version": "3.20.2", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.20.2.tgz", - "integrity": "sha512-CmWHvSKn2vNL6p6StNp1EmMIfVY/pqn3JLAjfZQ8WZGPOlGoO92EkX9/Mk81i6GxvoPXjUqEQnpM3rJ5QxxIOg==", + "version": "3.47.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.47.0.tgz", + "integrity": "sha512-BcxeDbzUrRnXGYIVAGFtcGQVNpFcUhVjr6W7F8XktvQW2iJP9e66GP6xdKotCRFlrxBvNIBrhwKteRXqMV86Nw==", "dev": true, "peer": true }, "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, "requires": { "path-key": "^3.1.0", @@ -16080,15 +12814,6 @@ "integrity": "sha512-/qMCkZbrAF7jZP/voqlkfNrBtEn0TMdhCK7OEBh/zb39t/c3wCnTjwU1ZvrMfQ3OxB8sBQXIpWRMM6FiQJVG3g==", "dev": true }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, "unist-util-visit": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", @@ -16099,16 +12824,6 @@ "unist-util-is": "^6.0.0", "unist-util-visit-parents": "^6.0.0" } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -16785,9 +13500,9 @@ } }, "flatted": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz", - "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz", + "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==", "dev": true, "peer": true }, @@ -16921,25 +13636,6 @@ } } }, - "got": { - "version": "11.8.6", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", - "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", - "dev": true, - "requires": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", - "responselike": "^2.0.0" - } - }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -17001,46 +13697,9 @@ "@types/hast": "^3.0.0", "devlop": "^1.1.0", "hast-util-from-parse5": "^8.0.0", - "parse5": "^7.0.0", - "vfile": "^6.0.0", - "vfile-message": "^4.0.0" - }, - "dependencies": { - "@types/unist": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", - "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", - "dev": true - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", - "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } - } + "parse5": "^7.0.0", + "vfile": "^6.0.0", + "vfile-message": "^4.0.0" } }, "hast-util-from-html-isomorphic": { @@ -17076,35 +13735,6 @@ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", "dev": true - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", - "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -17216,14 +13846,6 @@ "dev": true, "requires": { "lru-cache": "^10.0.1" - }, - "dependencies": { - "lru-cache": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", - "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", - "dev": true - } } }, "html-url-attributes": { @@ -17490,10 +14112,31 @@ "integrity": "sha512-LY3UOlRGCofw5RMhsEFHQ9xQ6jJXL9wFWWIfmSdNo8vO+DrIvan3G9hAPZiMRXddVZS2v9+CV4z9PslLhBGIyA==", "dev": true, "requires": { - "got": "^11.8.5", + "got": "11.8.5", "p-any": "^4.0.0", "p-timeout": "^6.1.2", "public-ip": "^7.0.1" + }, + "dependencies": { + "got": { + "version": "11.8.5", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.5.tgz", + "integrity": "sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ==", + "dev": true, + "requires": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + } + } } }, "is-plain-obj": { @@ -17563,9 +14206,9 @@ "dev": true }, "jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", "dev": true, "requires": { "@isaacs/cliui": "^8.0.2", @@ -17579,9 +14222,9 @@ "dev": true }, "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.2.0.tgz", + "integrity": "sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw==", "dev": true, "peer": true, "requires": { @@ -17719,6 +14362,12 @@ "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", "dev": true }, + "lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true + }, "markdown-extensions": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-2.0.0.tgz", @@ -17822,15 +14471,6 @@ "requires": { "@types/mdast": "^4.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } } } }, @@ -17944,25 +14584,6 @@ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==", "dev": true - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -18019,9 +14640,9 @@ } }, "mdast-util-to-hast": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.0.2.tgz", - "integrity": "sha512-U5I+500EOOw9e3ZrclN3Is3fRpw8c19SMyNZlZ2IS+7vLsNzb2Om11VpIVOR+/0137GhZsFEF6YiKD5+0Hr2Og==", + "version": "13.2.1", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.1.tgz", + "integrity": "sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==", "dev": true, "requires": { "@types/hast": "^3.0.0", @@ -18031,7 +14652,8 @@ "micromark-util-sanitize-uri": "^2.0.0", "trim-lines": "^3.0.0", "unist-util-position": "^5.0.0", - "unist-util-visit": "^5.0.0" + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" }, "dependencies": { "@types/mdast": { @@ -18188,36 +14810,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -18472,9 +15064,9 @@ "dev": true }, "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "dev": true, "peer": true, "requires": { @@ -18488,9 +15080,9 @@ "dev": true }, "minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true }, "mkdirp": { @@ -18754,6 +15346,12 @@ "integrity": "sha512-UbD77BuZ9Bc9aABo74gfXhNvzC9Tx7SxtHSh1fxvx3jTLLYvmVhiQZZrJzqqU0jKbN32kb5VOKiLEQI/3bIjgQ==", "dev": true }, + "package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true + }, "parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -18835,36 +15433,6 @@ "requires": { "@types/nlcst": "^2.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -18911,27 +15479,19 @@ "peer": true }, "path-scurry": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dev": true, "requires": { - "lru-cache": "^9.1.1 || ^10.0.0", + "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", - "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", - "dev": true - } } }, "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", "dev": true }, "pluralize": { @@ -18994,8 +15554,29 @@ "dev": true, "requires": { "dns-socket": "^4.2.2", - "got": "^11.8.5", + "got": "11.8.5", "is-ip": "^5.0.1" + }, + "dependencies": { + "got": { + "version": "11.8.5", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.5.tgz", + "integrity": "sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ==", + "dev": true, + "requires": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + } + } } }, "pump": { @@ -19064,13 +15645,6 @@ "picomatch": "^2.2.1" } }, - "regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", - "dev": true, - "peer": true - }, "regexp.prototype.flags": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", @@ -19130,36 +15704,6 @@ "trough": "^2.0.0", "vfile": "^6.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -19224,36 +15768,6 @@ "trough": "^2.0.0", "vfile": "^6.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -19296,36 +15810,6 @@ "trough": "^2.0.0", "vfile": "^6.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -19369,36 +15853,6 @@ "trough": "^2.0.0", "vfile": "^6.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -19466,36 +15920,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -19563,36 +15987,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -19660,36 +16054,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -19778,59 +16142,29 @@ "devlop": "^1.0.0", "extend": "^3.0.0", "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^6.0.0" - } - }, - "unified-lint-rule": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz", - "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "trough": "^2.0.0", - "unified": "^11.0.0", - "vfile": "^6.0.0" - } - }, - "unist-util-position": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", - "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" + "trough": "^2.0.0", + "vfile": "^6.0.0" } }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", + "unified-lint-rule": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz", + "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==", "dev": true, "requires": { "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" + "trough": "^2.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" } }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "unist-util-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", + "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", "dev": true, "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" + "@types/unist": "^3.0.0" } } } @@ -19888,36 +16222,6 @@ "unified": "^11.0.0", "vfile": "^6.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -19976,36 +16280,6 @@ "unified": "^11.0.0", "vfile": "^6.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -20072,36 +16346,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -20169,36 +16413,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -20266,36 +16480,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -20351,36 +16535,6 @@ "unified": "^11.0.0", "vfile": "^6.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -20450,36 +16604,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -20536,36 +16660,6 @@ "unified": "^11.0.0", "vfile": "^6.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -20632,15 +16726,6 @@ "@types/unist": "^3.0.0" } }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, "unist-util-visit": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", @@ -20651,27 +16736,6 @@ "unist-util-is": "^6.0.0", "unist-util-visit-parents": "^6.0.0" } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -20730,36 +16794,6 @@ "unified": "^11.0.0", "vfile": "^6.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -20837,36 +16871,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -20985,36 +16989,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -21080,36 +17054,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -21172,41 +17116,11 @@ }, "unist-util-position": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", - "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", + "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", "dev": true, "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" + "@types/unist": "^3.0.0" } } } @@ -21275,36 +17189,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -21373,36 +17257,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -21479,36 +17333,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -21577,15 +17401,6 @@ "@types/unist": "^3.0.0" } }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, "unist-util-visit": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", @@ -21596,27 +17411,6 @@ "unist-util-is": "^6.0.0", "unist-util-visit-parents": "^6.0.0" } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -21687,36 +17481,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -21786,36 +17550,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -21879,15 +17613,6 @@ "vfile": "^6.0.0" } }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, "unist-util-visit": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", @@ -21898,26 +17623,6 @@ "unist-util-is": "^6.0.0", "unist-util-visit-parents": "^6.0.0" } - }, - "vfile": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", - "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -21976,36 +17681,6 @@ "unified": "^11.0.0", "vfile": "^6.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -22074,36 +17749,6 @@ "unified": "^11.0.0", "vfile": "^6.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -22160,36 +17805,6 @@ "unified": "^11.0.0", "vfile": "^6.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -22297,36 +17912,6 @@ "unified": "^11.0.0", "vfile": "^6.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -22381,36 +17966,6 @@ "unified": "^11.0.0", "vfile": "^6.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -22465,36 +18020,6 @@ "unified": "^11.0.0", "vfile": "^6.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -22525,59 +18050,29 @@ }, "unified": { "version": "11.0.4", - "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz", - "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "bail": "^2.0.0", - "devlop": "^1.0.0", - "extend": "^3.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^6.0.0" - } - }, - "unified-lint-rule": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz", - "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "trough": "^2.0.0", - "unified": "^11.0.0", - "vfile": "^6.0.0" - } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz", + "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==", "dev": true, "requires": { "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" + "bail": "^2.0.0", + "devlop": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^6.0.0" } }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "unified-lint-rule": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz", + "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==", "dev": true, "requires": { "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" + "trough": "^2.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" } } } @@ -22633,36 +18128,6 @@ "unified": "^11.0.0", "vfile": "^6.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -22717,36 +18182,6 @@ "unified": "^11.0.0", "vfile": "^6.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -22814,36 +18249,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -22911,36 +18316,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -23008,36 +18383,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -23104,36 +18449,6 @@ "unified": "^11.0.0", "vfile": "^6.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -23210,36 +18525,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -23298,36 +18583,6 @@ "unified": "^11.0.0", "vfile": "^6.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -23395,36 +18650,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -23504,36 +18729,6 @@ "unified": "^11.0.0", "vfile": "^6.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -23589,36 +18784,6 @@ "unified": "^11.0.0", "vfile": "^6.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -23674,36 +18839,6 @@ "unified": "^11.0.0", "vfile": "^6.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -23773,36 +18908,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -23854,39 +18959,9 @@ "dev": true, "requires": { "@types/unist": "^3.0.0", - "trough": "^2.0.0", - "unified": "^11.0.0", - "vfile": "^6.0.0" - } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" + "trough": "^2.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" } } } @@ -23957,36 +19032,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -24043,36 +19088,6 @@ "unified": "^11.0.0", "vfile": "^6.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -24141,36 +19156,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -24240,36 +19225,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -24337,36 +19292,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -24433,36 +19358,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -24533,36 +19428,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -24632,36 +19497,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -24729,36 +19564,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -24826,36 +19631,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -24932,36 +19707,6 @@ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==", "dev": true - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -25006,36 +19751,6 @@ "trough": "^2.0.0", "vfile": "^6.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -25082,36 +19797,6 @@ "trough": "^2.0.0", "vfile": "^6.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -25167,55 +19852,25 @@ "unified": "^11.0.0" }, "dependencies": { - "@types/unist": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", - "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==", - "dev": true - }, - "unified": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz", - "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "bail": "^2.0.0", - "devlop": "^1.0.0", - "extend": "^3.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^6.0.0" - } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } + "@types/unist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", + "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==", + "dev": true }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "unified": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz", + "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==", "dev": true, "requires": { "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" + "bail": "^2.0.0", + "devlop": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^6.0.0" } } } @@ -25263,36 +19918,6 @@ "trough": "^2.0.0", "vfile": "^6.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -25339,36 +19964,6 @@ "trough": "^2.0.0", "vfile": "^6.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -25412,36 +20007,6 @@ "trough": "^2.0.0", "vfile": "^6.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -25527,15 +20092,6 @@ "@types/mdast": "^4.0.0" } }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, "unist-util-visit": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", @@ -25546,27 +20102,6 @@ "unist-util-is": "^6.0.0", "unist-util-visit-parents": "^6.0.0" } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -25953,9 +20488,9 @@ } }, "undici": { - "version": "6.21.3", - "resolved": "https://registry.npmjs.org/undici/-/undici-6.21.3.tgz", - "integrity": "sha512-gBLkYIlEnSp8pFbT64yFgGE6UIB9tAkhukC23PmMDCe5Nd+cRqKxSjw5y54MK2AZMgZfJWMaNE4nYUHgi1XEOw==", + "version": "6.27.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.27.0.tgz", + "integrity": "sha512-YmfV3YnEDzXRC5lZ2jWtWWHKGUm1zIt8AhesR1tens+HTNv+YZlN/dp6G727LOvMJ8xjP9Be7Y2Sdr96LDm+pg==", "dev": true }, "unified-args": { @@ -26019,64 +20554,35 @@ "dev": true }, "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "dev": true, "requires": { "balanced-match": "^1.0.0" } }, "glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", "dev": true, "requires": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" } }, "minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", "dev": true, "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" + "brace-expansion": "^2.0.2" } } } @@ -26103,15 +20609,6 @@ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==", "dev": true }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, "unist-util-visit": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", @@ -26122,27 +20619,6 @@ "unist-util-is": "^6.0.0", "unist-util-visit-parents": "^6.0.0" } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -26236,6 +20712,23 @@ } } }, + "unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "dev": true, + "requires": { + "@types/unist": "^3.0.0" + }, + "dependencies": { + "@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true + } + } + }, "unist-util-to-list-of-char": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/unist-util-to-list-of-char/-/unist-util-to-list-of-char-0.1.3.tgz", @@ -26336,6 +20829,24 @@ "dev": true, "peer": true }, + "vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "dev": true, + "requires": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "dependencies": { + "@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true + } + } + }, "vfile-location": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.2.tgz", @@ -26351,36 +20862,24 @@ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==", "dev": true - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } + } + } + }, + "vfile-message": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz", + "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==", + "dev": true, + "requires": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "dependencies": { + "@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true } } }, @@ -26400,47 +20899,11 @@ "vfile-statistics": "^3.0.0" }, "dependencies": { - "@types/unist": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz", - "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==", - "dev": true - }, "supports-color": { "version": "9.4.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.4.0.tgz", "integrity": "sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==", "dev": true - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -26452,44 +20915,6 @@ "requires": { "vfile": "^6.0.0", "vfile-message": "^4.0.0" - }, - "dependencies": { - "@types/unist": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz", - "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==", - "dev": true - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } - } } }, "vfile-statistics": { @@ -26500,44 +20925,6 @@ "requires": { "vfile": "^6.0.0", "vfile-message": "^4.0.0" - }, - "dependencies": { - "@types/unist": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz", - "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==", - "dev": true - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } - } } }, "walk-up-path": { @@ -26600,9 +20987,9 @@ }, "dependencies": { "ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", "dev": true }, "string-width": { diff --git a/package.json b/package.json index 26905302dc..59d2ff0cd2 100644 --- a/package.json +++ b/package.json @@ -28,74 +28,74 @@ }, "homepage": "https://gitversion.net", "devDependencies": { - "remark": "^15.0.1", - "remark-cli": "^12.0.1", - "remark-frontmatter": "^5.0.0", - "remark-heading-gap": "^6.0.0", - "remark-lint": "^10.0.1", - "remark-lint-blockquote-indentation": "^4.0.1", - "remark-lint-checkbox-character-style": "^5.0.1", - "remark-lint-checkbox-content-indent": "^5.0.1", - "remark-lint-code": "^2.0.0", - "remark-lint-code-block-style": "^4.0.1", - "remark-lint-definition-case": "^4.0.1", - "remark-lint-definition-spacing": "^4.0.1", - "remark-lint-fenced-code-flag": "^4.2.0", - "remark-lint-fenced-code-marker": "^4.0.1", - "remark-lint-file-extension": "^3.0.1", - "remark-lint-final-definition": "^4.0.2", - "remark-lint-final-newline": "^3.0.1", - "remark-lint-hard-break-spaces": "^4.1.1", - "remark-lint-heading-increment": "^4.0.1", - "remark-lint-heading-style": "^4.0.1", - "remark-lint-heading-whitespace": "^1.0.0", - "remark-lint-link-title-style": "^4.0.1", - "remark-lint-list-item-bullet-indent": "^5.0.1", - "remark-lint-list-item-content-indent": "^4.0.1", - "remark-lint-list-item-indent": "^4.0.1", - "remark-lint-maximum-heading-length": "^4.1.1", - "remark-lint-no-blockquote-without-marker": "^6.0.1", - "remark-lint-no-consecutive-blank-lines": "^5.0.1", - "remark-lint-no-dead-urls": "^2.0.1", - "remark-lint-no-duplicate-definitions": "^4.0.1", - "remark-lint-no-duplicate-headings": "^4.0.1", - "remark-lint-no-emphasis-as-heading": "^4.0.1", - "remark-lint-no-empty-sections": "^4.0.0", - "remark-lint-no-empty-url": "^4.0.1", - "remark-lint-no-file-name-articles": "^3.0.1", - "remark-lint-no-file-name-consecutive-dashes": "^3.0.1", - "remark-lint-no-file-name-irregular-characters": "^3.0.1", - "remark-lint-no-file-name-mixed-case": "^3.0.1", - "remark-lint-no-file-name-outer-dashes": "^3.0.1", - "remark-lint-no-heading-content-indent": "^5.0.1", - "remark-lint-no-heading-indent": "^5.0.1", - "remark-lint-no-heading-like-paragraph": "^4.0.1", - "remark-lint-no-literal-urls": "^4.0.1", - "remark-lint-no-multiple-toplevel-headings": "^4.0.1", - "remark-lint-no-reference-like-url": "^4.0.1", - "remark-lint-no-repeat-punctuation": "^0.1.4", - "remark-lint-no-shell-dollars": "^4.0.1", - "remark-lint-no-shortcut-reference-image": "^4.0.1", - "remark-lint-no-table-indentation": "^5.0.1", - "remark-lint-no-tabs": "^4.0.1", - "remark-lint-no-unused-definitions": "^4.0.2", - "remark-lint-ordered-list-marker-style": "^4.0.1", - "remark-lint-ordered-list-marker-value": "^4.0.1", - "remark-lint-rule-style": "^4.0.1", - "remark-lint-strong-marker": "^4.0.1", - "remark-lint-table-cell-padding": "^5.1.1", - "remark-lint-table-pipe-alignment": "^4.1.1", - "remark-lint-table-pipes": "^5.0.1", - "remark-lint-unordered-list-marker-style": "^4.0.1", - "remark-lint-write-good": "^1.2.0", - "remark-preset-lint-consistent": "^6.0.1", - "remark-preset-lint-markdown-style-guide": "^6.0.1", - "remark-preset-lint-recommended": "^7.0.1", - "remark-retext": "^6.0.1", - "remark-textr": "^6.1.0", - "remark-validate-links": "^13.1.0" + "remark": "15.0.1", + "remark-cli": "12.0.1", + "remark-frontmatter": "5.0.0", + "remark-heading-gap": "6.0.0", + "remark-lint": "10.0.1", + "remark-lint-blockquote-indentation": "4.0.1", + "remark-lint-checkbox-character-style": "5.0.1", + "remark-lint-checkbox-content-indent": "5.0.1", + "remark-lint-code": "2.0.0", + "remark-lint-code-block-style": "4.0.1", + "remark-lint-definition-case": "4.0.1", + "remark-lint-definition-spacing": "4.0.1", + "remark-lint-fenced-code-flag": "4.2.0", + "remark-lint-fenced-code-marker": "4.0.1", + "remark-lint-file-extension": "3.0.1", + "remark-lint-final-definition": "4.0.2", + "remark-lint-final-newline": "3.0.1", + "remark-lint-hard-break-spaces": "4.1.1", + "remark-lint-heading-increment": "4.0.1", + "remark-lint-heading-style": "4.0.1", + "remark-lint-heading-whitespace": "1.0.0", + "remark-lint-link-title-style": "4.0.1", + "remark-lint-list-item-bullet-indent": "5.0.1", + "remark-lint-list-item-content-indent": "4.0.1", + "remark-lint-list-item-indent": "4.0.1", + "remark-lint-maximum-heading-length": "4.1.1", + "remark-lint-no-blockquote-without-marker": "6.0.1", + "remark-lint-no-consecutive-blank-lines": "5.0.1", + "remark-lint-no-dead-urls": "2.0.1", + "remark-lint-no-duplicate-definitions": "4.0.1", + "remark-lint-no-duplicate-headings": "4.0.1", + "remark-lint-no-emphasis-as-heading": "4.0.1", + "remark-lint-no-empty-sections": "4.0.0", + "remark-lint-no-empty-url": "4.0.1", + "remark-lint-no-file-name-articles": "3.0.1", + "remark-lint-no-file-name-consecutive-dashes": "3.0.1", + "remark-lint-no-file-name-irregular-characters": "3.0.1", + "remark-lint-no-file-name-mixed-case": "3.0.1", + "remark-lint-no-file-name-outer-dashes": "3.0.1", + "remark-lint-no-heading-content-indent": "5.0.1", + "remark-lint-no-heading-indent": "5.0.1", + "remark-lint-no-heading-like-paragraph": "4.0.1", + "remark-lint-no-literal-urls": "4.0.1", + "remark-lint-no-multiple-toplevel-headings": "4.0.1", + "remark-lint-no-reference-like-url": "4.0.1", + "remark-lint-no-repeat-punctuation": "0.1.4", + "remark-lint-no-shell-dollars": "4.0.1", + "remark-lint-no-shortcut-reference-image": "4.0.1", + "remark-lint-no-table-indentation": "5.0.1", + "remark-lint-no-tabs": "4.0.1", + "remark-lint-no-unused-definitions": "4.0.2", + "remark-lint-ordered-list-marker-style": "4.0.1", + "remark-lint-ordered-list-marker-value": "4.0.1", + "remark-lint-rule-style": "4.0.1", + "remark-lint-strong-marker": "4.0.1", + "remark-lint-table-cell-padding": "5.1.1", + "remark-lint-table-pipe-alignment": "4.1.1", + "remark-lint-table-pipes": "5.0.1", + "remark-lint-unordered-list-marker-style": "4.0.1", + "remark-lint-write-good": "1.2.0", + "remark-preset-lint-consistent": "6.0.1", + "remark-preset-lint-markdown-style-guide": "6.0.1", + "remark-preset-lint-recommended": "7.0.1", + "remark-retext": "6.0.1", + "remark-textr": "6.1.0", + "remark-validate-links": "13.1.0" }, "overrides": { - "got": "^11.8.5" + "got": "11.8.5" } } diff --git a/qodana.sarif.json b/qodana.sarif.json deleted file mode 100644 index 1f50cbde5f..0000000000 --- a/qodana.sarif.json +++ /dev/null @@ -1,160237 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/schemastore/schemastore/master/src/schemas/json/sarif-2.1.0-rtm.5.json", - "version": "2.1.0", - "runs": [ - { - "tool": { - "driver": { - "name": "QDNET", - "fullName": "Qodana for .NET", - "version": "243.24609", - "rules": [], - "taxa": [ - { - "id": "C#", - "name": "C#" - }, - { - "id": "C#/Potential Code Quality Issues", - "name": "Potential Code Quality Issues", - "relationships": [ - { - "target": { - "id": "C#", - "index": 0, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "C_C++", - "name": "C/C++" - }, - { - "id": "C_C++/Clang Diagnostics", - "name": "Clang Diagnostics", - "relationships": [ - { - "target": { - "id": "C_C++", - "index": 2, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "XAML", - "name": "XAML" - }, - { - "id": "XAML/Code Notification", - "name": "Code Notification", - "relationships": [ - { - "target": { - "id": "XAML", - "index": 4, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "C_C++/Unreal Engine", - "name": "Unreal Engine", - "relationships": [ - { - "target": { - "id": "C_C++", - "index": 2, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "C#/Language Usage Opportunities", - "name": "Language Usage Opportunities", - "relationships": [ - { - "target": { - "id": "C#", - "index": 0, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "C_C++/Clang-Tidy Checks", - "name": "Clang-Tidy Checks", - "relationships": [ - { - "target": { - "id": "C_C++", - "index": 2, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "C_C++/Potential Code Quality Issues", - "name": "Potential Code Quality Issues", - "relationships": [ - { - "target": { - "id": "C_C++", - "index": 2, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Sass_SCSS", - "name": "Sass/SCSS" - }, - { - "id": "HTML", - "name": "HTML" - }, - { - "id": "C#/Common Practices and Code Improvements", - "name": "Common Practices and Code Improvements", - "relationships": [ - { - "target": { - "id": "C#", - "index": 0, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PostCSS", - "name": "PostCSS" - }, - { - "id": "JavaScript and TypeScript", - "name": "JavaScript and TypeScript" - }, - { - "id": "JavaScript and TypeScript/Bitwise operation issues", - "name": "Bitwise operation issues", - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript", - "index": 14, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "C_C++/Common Practices and Code Improvements", - "name": "Common Practices and Code Improvements", - "relationships": [ - { - "target": { - "id": "C_C++", - "index": 2, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JavaScript and TypeScript/General", - "name": "General", - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript", - "index": 14, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "C#/Unity", - "name": "Unity", - "relationships": [ - { - "target": { - "id": "C#", - "index": 0, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HTTP Client", - "name": "HTTP Client" - }, - { - "id": "EditorConfig", - "name": "EditorConfig" - }, - { - "id": "C#/Syntax Style", - "name": "Syntax Style", - "relationships": [ - { - "target": { - "id": "C#", - "index": 0, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JavaScript and TypeScript/Validity issues", - "name": "Validity issues", - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript", - "index": 14, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "C#/Redundancies in Code", - "name": "Redundancies in Code", - "relationships": [ - { - "target": { - "id": "C#", - "index": 0, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "C#/Formatting", - "name": "Formatting", - "relationships": [ - { - "target": { - "id": "C#", - "index": 0, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SQL", - "name": "SQL" - }, - { - "id": "C#/NUnit", - "name": "NUnit", - "relationships": [ - { - "target": { - "id": "C#", - "index": 0, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "C#/Compiler Warnings", - "name": "Compiler Warnings", - "relationships": [ - { - "target": { - "id": "C#", - "index": 0, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "C_C++/Formatting", - "name": "Formatting", - "relationships": [ - { - "target": { - "id": "C_C++", - "index": 2, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSS", - "name": "CSS" - }, - { - "id": "CSS/Invalid elements", - "name": "Invalid elements", - "relationships": [ - { - "target": { - "id": "CSS", - "index": 29, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JavaScript and TypeScript/Potentially undesirable code constructs", - "name": "Potentially undesirable code constructs", - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript", - "index": 14, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "C_C++/Clang Static Analyzer Checks", - "name": "Clang Static Analyzer Checks", - "relationships": [ - { - "target": { - "id": "C_C++", - "index": 2, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Kubernetes", - "name": "Kubernetes" - }, - { - "id": "C_C++/Redundancies in Code", - "name": "Redundancies in Code", - "relationships": [ - { - "target": { - "id": "C_C++", - "index": 2, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "C#/Roslyn Analyzers", - "name": "Roslyn Analyzers", - "relationships": [ - { - "target": { - "id": "C#", - "index": 0, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "C#/Redundancies in Symbol Declarations", - "name": "Redundancies in Symbol Declarations", - "relationships": [ - { - "target": { - "id": "C#", - "index": 0, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "C#/Entity Framework", - "name": "Entity Framework", - "relationships": [ - { - "target": { - "id": "C#", - "index": 0, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Properties files", - "name": "Properties files" - }, - { - "id": "VB.NET", - "name": "VB.NET" - }, - { - "id": "VB.NET/Common Practices and Code Improvements", - "name": "Common Practices and Code Improvements", - "relationships": [ - { - "target": { - "id": "VB.NET", - "index": 39, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Blazor", - "name": "Blazor" - }, - { - "id": "Blazor/Potential Code Quality Issues", - "name": "Potential Code Quality Issues", - "relationships": [ - { - "target": { - "id": "Blazor", - "index": 41, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "XSLT", - "name": "XSLT" - }, - { - "id": "Dockerfile", - "name": "Dockerfile" - }, - { - "id": "XAML/Potential Code Quality Issues", - "name": "Potential Code Quality Issues", - "relationships": [ - { - "target": { - "id": "XAML", - "index": 4, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "General", - "name": "General" - }, - { - "id": "ASP.NET route templates", - "name": "ASP.NET route templates" - }, - { - "id": "ASP.NET route templates/Code Notification", - "name": "Code Notification", - "relationships": [ - { - "target": { - "id": "ASP.NET route templates", - "index": 47, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JavaScript and TypeScript/ES2015 migration aids", - "name": "ES2015 migration aids", - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript", - "index": 14, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "C#/Godot", - "name": "Godot", - "relationships": [ - { - "target": { - "id": "C#", - "index": 0, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JavaScript and TypeScript/DOM issues", - "name": "DOM issues", - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript", - "index": 14, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "C#/Non configurable", - "name": "Non configurable", - "relationships": [ - { - "target": { - "id": "C#", - "index": 0, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Code Coverage", - "name": "Code Coverage" - }, - { - "id": "HTML/Potential Code Quality Issues", - "name": "Potential Code Quality Issues", - "relationships": [ - { - "target": { - "id": "HTML", - "index": 11, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JavaScript and TypeScript/TypeScript", - "name": "TypeScript", - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript", - "index": 14, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "XML", - "name": "XML" - }, - { - "id": "C#/Unity Burst Compiler Warnings", - "name": "Unity Burst Compiler Warnings", - "relationships": [ - { - "target": { - "id": "C#", - "index": 0, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RegExp", - "name": "RegExp" - }, - { - "id": "Angular", - "name": "Angular" - }, - { - "id": "XAML/Compiler Warnings", - "name": "Compiler Warnings", - "relationships": [ - { - "target": { - "id": "XAML", - "index": 4, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JavaScript and TypeScript/Potentially confusing code constructs", - "name": "Potentially confusing code constructs", - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript", - "index": 14, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VB.NET/Potential Code Quality Issues", - "name": "Potential Code Quality Issues", - "relationships": [ - { - "target": { - "id": "VB.NET", - "index": 39, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Aspx", - "name": "Aspx" - }, - { - "id": "Aspx/Potential Code Quality Issues", - "name": "Potential Code Quality Issues", - "relationships": [ - { - "target": { - "id": "Aspx", - "index": 63, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JavaScript and TypeScript/Control flow issues", - "name": "Control flow issues", - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript", - "index": 14, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "OpenAPI specifications", - "name": "OpenAPI specifications" - }, - { - "id": "ResX", - "name": "ResX" - }, - { - "id": "ResX/Potential Code Quality Issues", - "name": "Potential Code Quality Issues", - "relationships": [ - { - "target": { - "id": "ResX", - "index": 67, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JavaScript and TypeScript/Code quality tools", - "name": "Code quality tools", - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript", - "index": 14, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "GitHub actions", - "name": "GitHub actions" - }, - { - "id": "Pug_Jade", - "name": "Pug/Jade" - }, - { - "id": "F#", - "name": "F#" - }, - { - "id": "F#/Redundancies in Code", - "name": "Redundancies in Code", - "relationships": [ - { - "target": { - "id": "F#", - "index": 72, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HTML/Common Practices and Code Improvements", - "name": "Common Practices and Code Improvements", - "relationships": [ - { - "target": { - "id": "HTML", - "index": 11, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "C_C++/Compiler Warnings", - "name": "Compiler Warnings", - "relationships": [ - { - "target": { - "id": "C_C++", - "index": 2, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JavaScript and TypeScript/Function metrics", - "name": "Function metrics", - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript", - "index": 14, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "XAML/Redundancies in Code", - "name": "Redundancies in Code", - "relationships": [ - { - "target": { - "id": "XAML", - "index": 4, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSONPath", - "name": "JSONPath" - }, - { - "id": "JavaScript and TypeScript/Code style issues", - "name": "Code style issues", - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript", - "index": 14, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "C#/Constraints Violations", - "name": "Constraints Violations", - "relationships": [ - { - "target": { - "id": "C#", - "index": 0, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Web.Config", - "name": "Web.Config" - }, - { - "id": "Web.Config/Potential Code Quality Issues", - "name": "Potential Code Quality Issues", - "relationships": [ - { - "target": { - "id": "Web.Config", - "index": 81, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HTML/Accessibility", - "name": "Accessibility", - "relationships": [ - { - "target": { - "id": "HTML", - "index": 11, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSON and JSON5", - "name": "JSON and JSON5" - }, - { - "id": "XPath", - "name": "XPath" - }, - { - "id": "JavaScript and TypeScript/Probable bugs", - "name": "Probable bugs", - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript", - "index": 14, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "C#/Security", - "name": "Security", - "relationships": [ - { - "target": { - "id": "C#", - "index": 0, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Vue", - "name": "Vue" - }, - { - "id": "MongoJS", - "name": "MongoJS" - }, - { - "id": "Markdown", - "name": "Markdown" - }, - { - "id": "C_C++/Syntax Style", - "name": "Syntax Style", - "relationships": [ - { - "target": { - "id": "C_C++", - "index": 2, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Razor", - "name": "Razor" - }, - { - "id": "Razor/Potential Code Quality Issues", - "name": "Potential Code Quality Issues", - "relationships": [ - { - "target": { - "id": "Razor", - "index": 92, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Web.Config/Code Notification", - "name": "Code Notification", - "relationships": [ - { - "target": { - "id": "Web.Config", - "index": 81, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "YAML", - "name": "YAML" - }, - { - "id": "VB.NET/Redundancies in Code", - "name": "Redundancies in Code", - "relationships": [ - { - "target": { - "id": "VB.NET", - "index": 39, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JavaScript and TypeScript/Try statement issues", - "name": "Try statement issues", - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript", - "index": 14, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Web.Config/Redundancies in Code", - "name": "Redundancies in Code", - "relationships": [ - { - "target": { - "id": "Web.Config", - "index": 81, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ResX/Redundancies in Code", - "name": "Redundancies in Code", - "relationships": [ - { - "target": { - "id": "ResX", - "index": 67, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HttpHandler or WebService", - "name": "HttpHandler or WebService" - }, - { - "id": "HttpHandler or WebService/Potential Code Quality Issues", - "name": "Potential Code Quality Issues", - "relationships": [ - { - "target": { - "id": "HttpHandler or WebService", - "index": 100, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SQL server", - "name": "SQL server" - }, - { - "id": "JavaScript and TypeScript/Async code and promises", - "name": "Async code and promises", - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript", - "index": 14, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JavaScript and TypeScript/Naming conventions", - "name": "Naming conventions", - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript", - "index": 14, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Dependency analysis", - "name": "Dependency analysis" - }, - { - "id": "Inappropriate gRPC request scheme", - "name": "Inappropriate gRPC request scheme" - }, - { - "id": "Razor/Non configurable", - "name": "Non configurable", - "relationships": [ - { - "target": { - "id": "Razor", - "index": 92, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JavaScript and TypeScript/Assignment issues", - "name": "Assignment issues", - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript", - "index": 14, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JavaScript and TypeScript/Switch statement issues", - "name": "Switch statement issues", - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript", - "index": 14, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VB.NET/Compiler Warnings", - "name": "Compiler Warnings", - "relationships": [ - { - "target": { - "id": "VB.NET", - "index": 39, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Shell script", - "name": "Shell script" - }, - { - "id": "JavaScript and TypeScript/Data flow", - "name": "Data flow", - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript", - "index": 14, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "C_C++/UnrealHeaderTool", - "name": "UnrealHeaderTool", - "relationships": [ - { - "target": { - "id": "C_C++", - "index": 2, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSS/Code style issues", - "name": "Code style issues", - "relationships": [ - { - "target": { - "id": "CSS", - "index": 29, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "T4", - "name": "T4" - }, - { - "id": "T4/T4", - "name": "T4", - "relationships": [ - { - "target": { - "id": "T4", - "index": 115, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JavaScript and TypeScript/Unused symbols", - "name": "Unused symbols", - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript", - "index": 14, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JavaScript and TypeScript/Flow type checker", - "name": "Flow type checker", - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript", - "index": 14, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Aspx/Redundancies in Code", - "name": "Redundancies in Code", - "relationships": [ - { - "target": { - "id": "Aspx", - "index": 63, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JavaScript and TypeScript/Imports and dependencies", - "name": "Imports and dependencies", - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript", - "index": 14, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Less", - "name": "Less" - }, - { - "id": "Proofreading", - "name": "Proofreading" - }, - { - "id": "Oracle", - "name": "Oracle" - }, - { - "id": "Internationalization", - "name": "Internationalization" - }, - { - "id": "T4/Non configurable", - "name": "Non configurable", - "relationships": [ - { - "target": { - "id": "T4", - "index": 115, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unreal Engine", - "name": "Unreal Engine" - }, - { - "id": "C_C++/Non configurable", - "name": "Non configurable", - "relationships": [ - { - "target": { - "id": "C_C++", - "index": 2, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "C#/Unity Performance Inspections", - "name": "Unity Performance Inspections", - "relationships": [ - { - "target": { - "id": "C#", - "index": 0, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSS/Code quality tools", - "name": "Code quality tools", - "relationships": [ - { - "target": { - "id": "CSS", - "index": 29, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "XAML/Non configurable", - "name": "Non configurable", - "relationships": [ - { - "target": { - "id": "XAML", - "index": 4, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Security", - "name": "Security" - }, - { - "id": "Aspx/Non configurable", - "name": "Non configurable", - "relationships": [ - { - "target": { - "id": "Aspx", - "index": 63, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Assembler", - "name": "Assembler" - }, - { - "id": "Assembler/Non configurable", - "name": "Non configurable", - "relationships": [ - { - "target": { - "id": "Assembler", - "index": 133, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Docker-compose", - "name": "Docker-compose" - }, - { - "id": "RELAX NG", - "name": "RELAX NG" - }, - { - "id": "Web.Config/Non configurable", - "name": "Non configurable", - "relationships": [ - { - "target": { - "id": "Web.Config", - "index": 81, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "C_C++/Constraints Violations", - "name": "Constraints Violations", - "relationships": [ - { - "target": { - "id": "C_C++", - "index": 2, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VB.NET/Non configurable", - "name": "Non configurable", - "relationships": [ - { - "target": { - "id": "VB.NET", - "index": 39, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JavaScript and TypeScript/Unit testing", - "name": "Unit testing", - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript", - "index": 14, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "C#/Unreal Build System", - "name": "Unreal Build System", - "relationships": [ - { - "target": { - "id": "C#", - "index": 0, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MySQL", - "name": "MySQL" - }, - { - "id": "Angular 2 HTML", - "name": "Angular 2 HTML" - }, - { - "id": "Angular 2 HTML/Potential Code Quality Issues", - "name": "Potential Code Quality Issues", - "relationships": [ - { - "target": { - "id": "Angular 2 HTML", - "index": 143, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "C_C++/.NET Core", - "name": ".NET Core", - "relationships": [ - { - "target": { - "id": "C_C++", - "index": 2, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSS/Probable bugs", - "name": "Probable bugs", - "relationships": [ - { - "target": { - "id": "CSS", - "index": 29, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Ini files", - "name": "Ini files" - }, - { - "id": "Version control", - "name": "Version control" - }, - { - "id": "ShaderLab", - "name": "ShaderLab" - }, - { - "id": "ShaderLab/Non configurable", - "name": "Non configurable", - "relationships": [ - { - "target": { - "id": "ShaderLab", - "index": 149, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Aspx/Common Practices and Code Improvements", - "name": "Common Practices and Code Improvements", - "relationships": [ - { - "target": { - "id": "Aspx", - "index": 63, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PostgreSQL", - "name": "PostgreSQL" - }, - { - "id": "Dev Container", - "name": "Dev Container" - }, - { - "id": "File Watchers", - "name": "File Watchers" - }, - { - "id": "Rider", - "name": "Rider" - }, - { - "id": "Rider/General", - "name": "General", - "relationships": [ - { - "target": { - "id": "Rider", - "index": 155, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "XAML/Constraints Violations", - "name": "Constraints Violations", - "relationships": [ - { - "target": { - "id": "XAML", - "index": 4, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JavaScript and TypeScript/React", - "name": "React", - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript", - "index": 14, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HTML/Non configurable", - "name": "Non configurable", - "relationships": [ - { - "target": { - "id": "HTML", - "index": 11, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "C#/Code Notification", - "name": "Code Notification", - "relationships": [ - { - "target": { - "id": "C#", - "index": 0, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RegExpBase", - "name": "RegExpBase" - }, - { - "id": "RegExpBase/Non configurable", - "name": "Non configurable", - "relationships": [ - { - "target": { - "id": "RegExpBase", - "index": 161, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "YAML/Non configurable", - "name": "Non configurable", - "relationships": [ - { - "target": { - "id": "YAML", - "index": 95, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Protocol Buffers", - "name": "Protocol Buffers" - }, - { - "id": "MSBuild", - "name": "MSBuild" - }, - { - "id": "VB.NET/Code Notification", - "name": "Code Notification", - "relationships": [ - { - "target": { - "id": "VB.NET", - "index": 39, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HttpHandler or WebService/Non configurable", - "name": "Non configurable", - "relationships": [ - { - "target": { - "id": "HttpHandler or WebService", - "index": 100, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "XML/Non configurable", - "name": "Non configurable", - "relationships": [ - { - "target": { - "id": "XML", - "index": 56, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RegExpBase/Language Usage Opportunities", - "name": "Language Usage Opportunities", - "relationships": [ - { - "target": { - "id": "RegExpBase", - "index": 161, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Handlebars_Mustache", - "name": "Handlebars/Mustache" - }, - { - "id": "F#/Non configurable", - "name": "Non configurable", - "relationships": [ - { - "target": { - "id": "F#", - "index": 72, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JavaScript and TypeScript/Node.js", - "name": "Node.js", - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript", - "index": 14, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "C#/Xunit", - "name": "Xunit", - "relationships": [ - { - "target": { - "id": "C#", - "index": 0, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Qodana", - "name": "Qodana" - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - "extensions": [ - { - "name": "rider.intellij.plugin.appender", - "version": "243.24609", - "rules": [ - { - "id": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", - "shortDescription": { - "text": "Some values of the enum are not processed inside 'switch' statement and are handled via default section" - }, - "fullDescription": { - "text": "Some values of the enum are not processed inside 'switch' statement and fall into default section. This might indicate unintentional handling of all enum values added after the switch was introduced, consider handling missing enum values explicitly Learn more...", - "markdown": "Some values of the enum are not processed inside 'switch' statement and fall into default section. This might indicate unintentional handling of all enum values added after the switch was introduced, consider handling missing enum values explicitly [Learn more...](https://www.jetbrains.com/help/rider/SwitchStatementHandlesSomeKnownEnumValuesWithDefault.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp98Cpp11Cpp14CompatPedantic", - "shortDescription": { - "text": "c++98-c++11-c++14-compat-pedantic clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++98-c++11-c++14-compat-pedantic clang diagnostic · Learn more", - "markdown": "-Wc++98-c++11-c++14-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-98-c-11-c-14-compat-pedantic)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp98Cpp11Cpp14CompatPedantic", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.InvalidDynamicResourceType", - "shortDescription": { - "text": "XAML dynamic resource of invalid type" - }, - "fullDescription": { - "text": "XAML dynamic resource of invalid type", - "markdown": "XAML dynamic resource of invalid type" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "Xaml.InvalidDynamicResourceType", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Code Notification", - "index": 5, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppUEBlueprintImplementableEventNotImplemented", - "shortDescription": { - "text": "BlueprintImplementableEvent function is not implemented in any blueprint" - }, - "fullDescription": { - "text": "BlueprintImplementableEvent function is not implemented in any blueprint", - "markdown": "BlueprintImplementableEvent function is not implemented in any blueprint" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppUEBlueprintImplementableEventNotImplemented", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Unreal Engine", - "index": 6, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConvertToCompoundAssignment", - "shortDescription": { - "text": "Use compound assignment" - }, - "fullDescription": { - "text": "Replace assignment with compound assignment", - "markdown": "Replace assignment with compound assignment" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ConvertToCompoundAssignment", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseConfigureAwaitFalseForAsyncDisposable", - "shortDescription": { - "text": "Missing '.ConfigureAwait(false)' for async disposable in library code" - }, - "fullDescription": { - "text": "It is recommended to use 'ConfigureAwait(false)' in your library code to prevent context capture in task continuations. This inspection is controlled by the 'ConfigureAwait analysis mode' project level property, which is set to 'Disabled' by default. Set 'ConfigureAwait analysis mode' project level property to 'Library' to analyze 'await using' statements for missing 'ConfigureAwait(false)' calls.", - "markdown": "It is recommended to use 'ConfigureAwait(false)' in your library code to prevent context capture in task continuations. This inspection is controlled by the 'ConfigureAwait analysis mode' project level property, which is set to 'Disabled' by default. Set 'ConfigureAwait analysis mode' project level property to 'Library' to analyze 'await using' statements for missing 'ConfigureAwait(false)' calls." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UseConfigureAwaitFalseForAsyncDisposable", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCppcoreguidelinesProTypeReinterpretCast", - "shortDescription": { - "text": "cppcoreguidelines-pro-type-reinterpret-cast clang-tidy check" - }, - "fullDescription": { - "text": "cppcoreguidelines-pro-type-reinterpret-cast clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-pro-type-reinterpret-cast clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/pro-type-reinterpret-cast.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCppcoreguidelinesProTypeReinterpretCast", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticEnumConversion", - "shortDescription": { - "text": "enum-conversion clang diagnostic" - }, - "fullDescription": { - "text": "-Wenum-conversion clang diagnostic · Learn more", - "markdown": "-Wenum-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wenum-conversion)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticEnumConversion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCompareDistinctPointerTypes", - "shortDescription": { - "text": "compare-distinct-pointer-types clang diagnostic" - }, - "fullDescription": { - "text": "-Wcompare-distinct-pointer-types clang diagnostic · Learn more", - "markdown": "-Wcompare-distinct-pointer-types clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcompare-distinct-pointer-types)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCompareDistinctPointerTypes", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppAssignedValueIsNeverUsed", - "shortDescription": { - "text": "Assigned value is never used" - }, - "fullDescription": { - "text": "Assigned value is never used", - "markdown": "Assigned value is never used" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppAssignedValueIsNeverUsed", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppCVQualifierCanNotBeAppliedToReference", - "shortDescription": { - "text": "Adding cv-qualifiers to references has no effect" - }, - "fullDescription": { - "text": "Adding cv-qualifiers to references has no effect", - "markdown": "Adding cv-qualifiers to references has no effect" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppCVQualifierCanNotBeAppliedToReference", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppBoundToDelegateMethodIsNotMarkedAsUFunction", - "shortDescription": { - "text": "Method bound to delegate is not marked with UFUNCTION macro" - }, - "fullDescription": { - "text": "Method bound to delegate must be marked with UFUNCTION macro", - "markdown": "Method bound to delegate must be marked with UFUNCTION macro" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppBoundToDelegateMethodIsNotMarkedAsUFunction", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Unreal Engine", - "index": 6, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneEmptyCatch", - "shortDescription": { - "text": "bugprone-empty-catch clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-empty-catch clang-tidy check · Learn more", - "markdown": "bugprone-empty-catch clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/empty-catch.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneEmptyCatch", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPreOpenmp51Compat", - "shortDescription": { - "text": "pre-openmp-51-compat clang diagnostic" - }, - "fullDescription": { - "text": "-Wpre-openmp-51-compat clang diagnostic · Learn more", - "markdown": "-Wpre-openmp-51-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpre-openmp-51-compat)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPreOpenmp51Compat", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticIncompatiblePointerTypes", - "shortDescription": { - "text": "incompatible-pointer-types clang diagnostic" - }, - "fullDescription": { - "text": "-Wincompatible-pointer-types clang diagnostic · Learn more", - "markdown": "-Wincompatible-pointer-types clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wincompatible-pointer-types)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticIncompatiblePointerTypes", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticInitializerOverrides", - "shortDescription": { - "text": "initializer-overrides clang diagnostic" - }, - "fullDescription": { - "text": "-Winitializer-overrides clang diagnostic · Learn more", - "markdown": "-Winitializer-overrides clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winitializer-overrides)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticInitializerOverrides", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticStdlibcxxNotFound", - "shortDescription": { - "text": "stdlibcxx-not-found clang diagnostic" - }, - "fullDescription": { - "text": "-Wstdlibcxx-not-found clang diagnostic · Learn more", - "markdown": "-Wstdlibcxx-not-found clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wstdlibcxx-not-found)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticStdlibcxxNotFound", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticTautologicalUnsignedEnumZeroCompare", - "shortDescription": { - "text": "tautological-unsigned-enum-zero-compare clang diagnostic" - }, - "fullDescription": { - "text": "-Wtautological-unsigned-enum-zero-compare clang diagnostic · Learn more", - "markdown": "-Wtautological-unsigned-enum-zero-compare clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wtautological-unsigned-enum-zero-compare)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticTautologicalUnsignedEnumZeroCompare", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClassNeedsConstructorBecauseOfUninitializedMember", - "shortDescription": { - "text": "Class should have a user-defined constructor because of an uninitialized data member" - }, - "fullDescription": { - "text": "Class should have a user-defined constructor because of an uninitialized data member", - "markdown": "Class should have a user-defined constructor because of an uninitialized data member" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClassNeedsConstructorBecauseOfUninitializedMember", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticTargetClonesMixedSpecifiers", - "shortDescription": { - "text": "target-clones-mixed-specifiers clang diagnostic" - }, - "fullDescription": { - "text": "-Wtarget-clones-mixed-specifiers clang diagnostic · Learn more", - "markdown": "-Wtarget-clones-mixed-specifiers clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wtarget-clones-mixed-specifiers)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticTargetClonesMixedSpecifiers", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMicrosoftExists", - "shortDescription": { - "text": "microsoft-exists clang diagnostic" - }, - "fullDescription": { - "text": "-Wmicrosoft-exists clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-exists clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-exists)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftExists", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyAndroidCloexecAccept", - "shortDescription": { - "text": "android-cloexec-accept clang-tidy check" - }, - "fullDescription": { - "text": "android-cloexec-accept clang-tidy check · Learn more", - "markdown": "android-cloexec-accept clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/android/cloexec-accept.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyAndroidCloexecAccept", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CoVariantArrayConversion", - "shortDescription": { - "text": "Co-variant array conversion" - }, - "fullDescription": { - "text": "Co-variant conversion of array could cause run-time exceptions Learn more...", - "markdown": "Co-variant conversion of array could cause run-time exceptions [Learn more...](https://www.jetbrains.com/help/rider/CoVariantArrayConversion.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CoVariantArrayConversion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MemberCanBeMadeStatic.Global", - "shortDescription": { - "text": "Member can be made static (shared) (non-private accessibility)" - }, - "fullDescription": { - "text": "A non-virtual instance member does not use 'this' object (neither implicitly nor explicitly) and can be made static (shared) Learn more...", - "markdown": "A non-virtual instance member does not use 'this' object (neither implicitly nor explicitly) and can be made static (shared) [Learn more...](https://www.jetbrains.com/help/rider/MemberCanBeMadeStatic.Global.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "MemberCanBeMadeStatic.Global", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppUseElementsView", - "shortDescription": { - "text": "std::views::keys/values can be used" - }, - "fullDescription": { - "text": "For example, when iterating on key-value pairs, std::views::keys allows ignoring the values.", - "markdown": "For example, when iterating on key-value pairs, std::views::keys allows ignoring the values." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppUseElementsView", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Common Practices and Code Improvements", - "index": 16, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.Entities.SingletonMustBeRequested", - "shortDescription": { - "text": "To use the result of a 'GetSingleton' call in the function, 'OnCreate' must include a 'RequireForUpdate' call" - }, - "fullDescription": { - "text": "To use the result of a 'GetSingleton<{0}>' call in the function, 'OnCreate' must include a 'RequireForUpdate' call", - "markdown": "To use the result of a 'GetSingleton\\<{0}\\>' call in the function, 'OnCreate' must include a 'RequireForUpdate' call" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.Entities.SingletonMustBeRequested", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CollectionNeverUpdated.Global", - "shortDescription": { - "text": "Collection is never updated (non-private accessibility)" - }, - "fullDescription": { - "text": "New elements are never added to the collection Learn more...", - "markdown": "New elements are never added to the collection [Learn more...](https://www.jetbrains.com/help/rider/CollectionNeverUpdated.Global.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CollectionNeverUpdated.Global", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp98Cpp11CompatPedantic", - "shortDescription": { - "text": "c++98-c++11-compat-pedantic clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++98-c++11-compat-pedantic clang diagnostic · Learn more", - "markdown": "-Wc++98-c++11-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-98-c-11-compat-pedantic)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp98Cpp11CompatPedantic", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticIgnoredPragmaIntrinsic", - "shortDescription": { - "text": "ignored-pragma-intrinsic clang diagnostic" - }, - "fullDescription": { - "text": "-Wignored-pragma-intrinsic clang diagnostic · Learn more", - "markdown": "-Wignored-pragma-intrinsic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wignored-pragma-intrinsic)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticIgnoredPragmaIntrinsic", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ArrangeModifiersOrder", - "shortDescription": { - "text": "Adjust modifiers declaration order" - }, - "fullDescription": { - "text": "The order of declaration modifiers does not match code style settings Learn more...", - "markdown": "The order of declaration modifiers does not match code style settings [Learn more...](https://www.jetbrains.com/help/rider/ArrangeModifiersOrder.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ArrangeModifiersOrder", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Syntax Style", - "index": 21, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.UnknownLayer", - "shortDescription": { - "text": "The layer is not defined in the 'Tags & Layers'" - }, - "fullDescription": { - "text": "The layer is not defined in the 'Tags & Layers'. The call is likely to fail at runtime.", - "markdown": "The layer is not defined in the 'Tags \\& Layers'. The call is likely to fail at runtime." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.UnknownLayer", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantDelegateCreation", - "shortDescription": { - "text": "Explicit delegate creation expression is redundant" - }, - "fullDescription": { - "text": "Explicit delegate creation expression is redundant Learn more...", - "markdown": "Explicit delegate creation expression is redundant [Learn more...](https://www.jetbrains.com/help/rider/RedundantDelegateCreation.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantDelegateCreation", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "BadSemicolonSpaces", - "shortDescription": { - "text": "Incorrect spacing (around semicolon)" - }, - "fullDescription": { - "text": "Around semicolon Learn more...", - "markdown": "Around semicolon [Learn more...](https://www.jetbrains.com/help/rider/BadSemicolonSpaces.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "BadSemicolonSpaces", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Formatting", - "index": 24, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticVarargs", - "shortDescription": { - "text": "varargs clang diagnostic" - }, - "fullDescription": { - "text": "-Wvarargs clang diagnostic · Learn more", - "markdown": "-Wvarargs clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wvarargs)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticVarargs", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.IncorrectScriptableObjectInstantiation", - "shortDescription": { - "text": "'ScriptableObject' instances must be instantiated with 'ScriptableObject.CreateInstance<T>()' instead of 'new'" - }, - "fullDescription": { - "text": "Using 'new' to instantiate a class derived from 'ScriptableObject' means that Unity will not call any event functions. Create a new instance using 'GameObject.AddComponent()'. Learn more...", - "markdown": "Using 'new' to instantiate a class derived from 'ScriptableObject' means that Unity will not call any event functions. Create a new instance using 'GameObject.AddComponent()'. [Learn more...](https://github.com/JetBrains/resharper-unity/wiki/ScriptableObjects-must-be-instantiated-with-ScriptableObject.CreateInstance-instead-of-new)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.IncorrectScriptableObjectInstantiation", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticFormatTruncation", - "shortDescription": { - "text": "format-truncation clang diagnostic" - }, - "fullDescription": { - "text": "-Wformat-truncation clang diagnostic · Learn more", - "markdown": "-Wformat-truncation clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wformat-truncation)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticFormatTruncation", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppFunctionDoesntReturnValue", - "shortDescription": { - "text": "No return statement in a function or a lambda returning non-void" - }, - "fullDescription": { - "text": "No return statement in a function or a lambda with non-void return type", - "markdown": "No return statement in a function or a lambda with non-void return type" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppFunctionDoesntReturnValue", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPointerArith", - "shortDescription": { - "text": "pointer-arith clang diagnostic" - }, - "fullDescription": { - "text": "-Wpointer-arith clang diagnostic · Learn more", - "markdown": "-Wpointer-arith clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpointer-arith)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPointerArith", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMaxUnsignedZero", - "shortDescription": { - "text": "max-unsigned-zero clang diagnostic" - }, - "fullDescription": { - "text": "-Wmax-unsigned-zero clang diagnostic · Learn more", - "markdown": "-Wmax-unsigned-zero clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmax-unsigned-zero)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMaxUnsignedZero", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyModernizeReplaceRandomShuffle", - "shortDescription": { - "text": "modernize-replace-random-shuffle clang-tidy check" - }, - "fullDescription": { - "text": "modernize-replace-random-shuffle clang-tidy check · Learn more", - "markdown": "modernize-replace-random-shuffle clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/replace-random-shuffle.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyModernizeReplaceRandomShuffle", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticSpirvCompat", - "shortDescription": { - "text": "spirv-compat clang diagnostic" - }, - "fullDescription": { - "text": "-Wspirv-compat clang diagnostic · Learn more", - "markdown": "-Wspirv-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wspirv-compat)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticSpirvCompat", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CompareNonConstrainedGenericWithNull", - "shortDescription": { - "text": "Possible comparison of value type with 'null'" - }, - "fullDescription": { - "text": "Generic type has no value or class constraint, the condition could be always 'false' Learn more...", - "markdown": "Generic type has no value or class constraint, the condition could be always 'false' [Learn more...](https://www.jetbrains.com/help/rider/CompareNonConstrainedGenericWithNull.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "CompareNonConstrainedGenericWithNull", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit.ImplicitUnspecifiedNullValues", - "shortDescription": { - "text": "NUnit. Implicitly unspecified null values." - }, - "fullDescription": { - "text": "NUnit. No enough values are provided in the Values attribute so NUnit implicitly adds 'null' values to fill test data. Learn more...", - "markdown": "NUnit. No enough values are provided in the Values attribute so NUnit implicitly adds 'null' values to fill test data. [Learn more...](https://www.jetbrains.com/help/rider/NUnit.ImplicitUnspecifiedNullValues.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NUnit.ImplicitUnspecifiedNullValues", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/NUnit", - "index": 26, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppFunctionResultShouldBeUsed", - "shortDescription": { - "text": "Function result should be used" - }, - "fullDescription": { - "text": "Function returns a value of a type that should be handled at the call site", - "markdown": "Function returns a value of a type that should be handled at the call site" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppFunctionResultShouldBeUsed", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDanglingAssignmentGsl", - "shortDescription": { - "text": "dangling-assignment-gsl clang diagnostic" - }, - "fullDescription": { - "text": "-Wdangling-assignment-gsl clang diagnostic · Learn more", - "markdown": "-Wdangling-assignment-gsl clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdangling-assignment-gsl)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDanglingAssignmentGsl", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppDoxygenUndocumentedParameter", - "shortDescription": { - "text": "Missing function parameter description in a documentation comment" - }, - "fullDescription": { - "text": "Missing function parameter description in a documentation comment", - "markdown": "Missing function parameter description in a documentation comment" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppDoxygenUndocumentedParameter", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS4014", - "shortDescription": { - "text": "Async method invocation without await expression" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/hh873131.aspx)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS4014", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppBadSwitchBracesIndent", - "shortDescription": { - "text": "Incorrect indent (around switch statement)" - }, - "fullDescription": { - "text": "Around switch statement", - "markdown": "Around switch statement" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppBadSwitchBracesIndent", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Formatting", - "index": 28, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticImplicitConstIntFloatConversion", - "shortDescription": { - "text": "implicit-const-int-float-conversion clang diagnostic" - }, - "fullDescription": { - "text": "-Wimplicit-const-int-float-conversion clang diagnostic · Learn more", - "markdown": "-Wimplicit-const-int-float-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wimplicit-const-int-float-conversion)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticImplicitConstIntFloatConversion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyGoogleExplicitConstructor", - "shortDescription": { - "text": "google-explicit-constructor clang-tidy check" - }, - "fullDescription": { - "text": "google-explicit-constructor clang-tidy check · Learn more", - "markdown": "google-explicit-constructor clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/google/explicit-constructor.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyGoogleExplicitConstructor", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticShadowUncapturedLocal", - "shortDescription": { - "text": "shadow-uncaptured-local clang diagnostic" - }, - "fullDescription": { - "text": "-Wshadow-uncaptured-local clang diagnostic · Learn more", - "markdown": "-Wshadow-uncaptured-local clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wshadow-uncaptured-local)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticShadowUncapturedLocal", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerCplusplusSmartPtrModeling", - "shortDescription": { - "text": "cplusplus.SmartPtrModeling clang static analyzer check" - }, - "fullDescription": { - "text": "cplusplus.SmartPtrModeling clang static analyzer check · Learn more", - "markdown": "cplusplus.SmartPtrModeling clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerCplusplusSmartPtrModeling", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticGnuComplexInteger", - "shortDescription": { - "text": "gnu-complex-integer clang diagnostic" - }, - "fullDescription": { - "text": "-Wgnu-complex-integer clang diagnostic · Learn more", - "markdown": "-Wgnu-complex-integer clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-complex-integer)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticGnuComplexInteger", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithOfType.Single.1", - "shortDescription": { - "text": "Replace with OfType<T>().Single()" - }, - "fullDescription": { - "text": "$seq$.Select($x$ => $x$ as $T$).Single($y$ => $y$ != null)", - "markdown": "$seq$.Select($x$ =\\> $x$ as $T$).Single($y$ =\\> $y$ != null)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithOfType.Single.1", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithOfType.Single.2", - "shortDescription": { - "text": "Replace with OfType<T>().Single() (replace with OfType<T>().Single(..))" - }, - "fullDescription": { - "text": "$seq$.Select($x$ => $x$ as $T$).Single($y$ => $y$ != null && $expr$)", - "markdown": "$seq$.Select($x$ =\\> $x$ as $T$).Single($y$ =\\> $y$ != null \\&\\& $expr$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithOfType.Single.2", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyAbseilTimeSubtraction", - "shortDescription": { - "text": "abseil-time-subtraction clang-tidy check" - }, - "fullDescription": { - "text": "abseil-time-subtraction clang-tidy check · Learn more", - "markdown": "abseil-time-subtraction clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/time-subtraction.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyAbseilTimeSubtraction", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDeallocInCategory", - "shortDescription": { - "text": "dealloc-in-category clang diagnostic" - }, - "fullDescription": { - "text": "-Wdealloc-in-category clang diagnostic · Learn more", - "markdown": "-Wdealloc-in-category clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdealloc-in-category)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDeallocInCategory", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp20Compat", - "shortDescription": { - "text": "c++20-compat clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++20-compat clang diagnostic · Learn more", - "markdown": "-Wc++20-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-20-compat)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp20Compat", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDeleteIncomplete", - "shortDescription": { - "text": "delete-incomplete clang diagnostic" - }, - "fullDescription": { - "text": "-Wdelete-incomplete clang diagnostic · Learn more", - "markdown": "-Wdelete-incomplete clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdelete-incomplete)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDeleteIncomplete", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticThreadSafetyAnalysis", - "shortDescription": { - "text": "thread-safety-analysis clang diagnostic" - }, - "fullDescription": { - "text": "-Wthread-safety-analysis clang diagnostic · Learn more", - "markdown": "-Wthread-safety-analysis clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wthread-safety-analysis)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticThreadSafetyAnalysis", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyMiscNoRecursion", - "shortDescription": { - "text": "misc-no-recursion clang-tidy check" - }, - "fullDescription": { - "text": "misc-no-recursion clang-tidy check · Learn more", - "markdown": "misc-no-recursion clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/no-recursion.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyMiscNoRecursion", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EventUnsubscriptionViaAnonymousDelegate", - "shortDescription": { - "text": "Event unsubscription via anonymous delegate" - }, - "fullDescription": { - "text": "Event unsubscription via anonymous delegate is meaningless", - "markdown": "Event unsubscription via anonymous delegate is meaningless" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "EventUnsubscriptionViaAnonymousDelegate", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppRedundantConstSpecifier", - "shortDescription": { - "text": "Redundant 'const' specifier" - }, - "fullDescription": { - "text": "The 'const' specifier on a variable definition is redundant", - "markdown": "The 'const' specifier on a variable definition is redundant" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppRedundantConstSpecifier", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Redundancies in Code", - "index": 34, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA3147", - "shortDescription": { - "text": "RoslynAnalyzers Mark Verb Handlers With Validate Antiforgery Token" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA3147", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseNullableAnnotationInsteadOfAttribute", - "shortDescription": { - "text": "Use nullable annotation instead of an attribute" - }, - "fullDescription": { - "text": "An attribute is used to declare the nullability of a type. Nullable reference types' annotations might be used instead.", - "markdown": "An attribute is used to declare the nullability of a type. Nullable reference types' annotations might be used instead." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UseNullableAnnotationInsteadOfAttribute", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1091FadeOut", - "shortDescription": { - "text": "RoslynAnalyzers [deprecated] Remove empty region" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1091FadeOut", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp14CompatPedantic", - "shortDescription": { - "text": "c++14-compat-pedantic clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++14-compat-pedantic clang diagnostic · Learn more", - "markdown": "-Wc++14-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-14-compat-pedantic)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp14CompatPedantic", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppMissingIncludeGuard", - "shortDescription": { - "text": "Missing include guard" - }, - "fullDescription": { - "text": "Include guard is not found at the beginning of a header file Learn more...", - "markdown": "Include guard is not found at the beginning of a header file [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rs-guards)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppMissingIncludeGuard", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnusedTupleComponentInReturnValue", - "shortDescription": { - "text": "Component of the tuple is never used" - }, - "fullDescription": { - "text": "Component of the tuple is never used", - "markdown": "Component of the tuple is never used" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "UnusedTupleComponentInReturnValue", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMacroRedefined", - "shortDescription": { - "text": "macro-redefined clang diagnostic" - }, - "fullDescription": { - "text": "-Wmacro-redefined clang diagnostic · Learn more", - "markdown": "-Wmacro-redefined clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmacro-redefined)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMacroRedefined", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticRetainedLanguageLinkage", - "shortDescription": { - "text": "retained-language-linkage clang diagnostic" - }, - "fullDescription": { - "text": "-Wretained-language-linkage clang diagnostic · Learn more", - "markdown": "-Wretained-language-linkage clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wretained-language-linkage)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticRetainedLanguageLinkage", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EntityFramework.UnsupportedServerSideFunctionCall", - "shortDescription": { - "text": "Function is not convertible to SQL and must not be called in the database context" - }, - "fullDescription": { - "text": "Reports methods that are not convertible to SQL and will produce runtime exceptions when called in database contexts Learn more...", - "markdown": "Reports methods that are not convertible to SQL and will produce runtime exceptions when called in database contexts [Learn more...](https://www.jetbrains.com/help/rider/EntityFramework.UnsupportedServerSideFunctionCall.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "EntityFramework.UnsupportedServerSideFunctionCall", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Entity Framework", - "index": 37, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticKeywordMacro", - "shortDescription": { - "text": "keyword-macro clang diagnostic" - }, - "fullDescription": { - "text": "-Wkeyword-macro clang diagnostic · Learn more", - "markdown": "-Wkeyword-macro clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wkeyword-macro)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticKeywordMacro", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityUseAnyofallof", - "shortDescription": { - "text": "readability-use-anyofallof clang-tidy check" - }, - "fullDescription": { - "text": "readability-use-anyofallof clang-tidy check · Learn more", - "markdown": "readability-use-anyofallof clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/use-anyofallof.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityUseAnyofallof", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticReadonlyIboutletProperty", - "shortDescription": { - "text": "readonly-iboutlet-property clang diagnostic" - }, - "fullDescription": { - "text": "-Wreadonly-iboutlet-property clang diagnostic · Learn more", - "markdown": "-Wreadonly-iboutlet-property clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wreadonly-iboutlet-property)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticReadonlyIboutletProperty", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1311", - "shortDescription": { - "text": "RoslynAnalyzers Specify a culture or use an invariant version" - }, - "fullDescription": { - "text": "Specify culture to help avoid accidental implicit dependency on current culture. Using an invariant version yields consistent results regardless of the culture of an application.", - "markdown": "Specify culture to help avoid accidental implicit dependency on current culture. Using an invariant version yields consistent results regardless of the culture of an application." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1311", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1310", - "shortDescription": { - "text": "RoslynAnalyzers Specify StringComparison for correctness" - }, - "fullDescription": { - "text": "A string comparison operation uses a method overload that does not set a StringComparison parameter, hence its behavior could vary based on the current user's locale settings. It is strongly recommended to use the overload with StringComparison parameter for correctness and clarity of intent. If the result will be displayed to the user, such as when sorting a list of items for display in a list box, specify 'StringComparison.CurrentCulture' or 'StringComparison.CurrentCultureIgnoreCase' as the 'StringComparison' parameter. If comparing case-insensitive identifiers, such as file paths, environment variables, or registry keys and values, specify 'StringComparison.OrdinalIgnoreCase'. Otherwise, if comparing case-sensitive identifiers, specify 'StringComparison.Ordinal'.", - "markdown": "A string comparison operation uses a method overload that does not set a StringComparison parameter, hence its behavior could vary based on the current user's locale settings. It is strongly recommended to use the overload with StringComparison parameter for correctness and clarity of intent. If the result will be displayed to the user, such as when sorting a list of items for display in a list box, specify 'StringComparison.CurrentCulture' or 'StringComparison.CurrentCultureIgnoreCase' as the 'StringComparison' parameter. If comparing case-insensitive identifiers, such as file paths, environment variables, or registry keys and values, specify 'StringComparison.OrdinalIgnoreCase'. Otherwise, if comparing case-sensitive identifiers, specify 'StringComparison.Ordinal'." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1310", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticGccCompat", - "shortDescription": { - "text": "gcc-compat clang diagnostic" - }, - "fullDescription": { - "text": "-Wgcc-compat clang diagnostic · Learn more", - "markdown": "-Wgcc-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgcc-compat)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticGccCompat", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppDeprecatedRegisterStorageClassSpecifier", - "shortDescription": { - "text": "Deprecated 'register' storage class specifier" - }, - "fullDescription": { - "text": "The 'register' storage class specifier is deprecated in C++11 and removed in C++17", - "markdown": "The 'register' storage class specifier is deprecated in C++11 and removed in C++17" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppDeprecatedRegisterStorageClassSpecifier", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMemsizeComparison", - "shortDescription": { - "text": "memsize-comparison clang diagnostic" - }, - "fullDescription": { - "text": "-Wmemsize-comparison clang diagnostic · Learn more", - "markdown": "-Wmemsize-comparison clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmemsize-comparison)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMemsizeComparison", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseNegatedPatternInIsExpression", - "shortDescription": { - "text": "Convert negated 'is' expression into 'is' expression with negated pattern" - }, - "fullDescription": { - "text": "Replace unary negation operator '!' before 'is' expression with C# 9.0 negated pattern", - "markdown": "Replace unary negation operator '!' before 'is' expression with C# 9.0 negated pattern" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UseNegatedPatternInIsExpression", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyHicppAvoidCArrays", - "shortDescription": { - "text": "hicpp-avoid-c-arrays clang-tidy check" - }, - "fullDescription": { - "text": "hicpp-avoid-c-arrays clang-tidy check · Learn more", - "markdown": "hicpp-avoid-c-arrays clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/avoid-c-arrays.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyHicppAvoidCArrays", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBReplaceWithSingleCallToLast", - "shortDescription": { - "text": "Replace with single call to Last(..)" - }, - "fullDescription": { - "text": "$seq$.Where(Function ($x$) $expr$).Last()", - "markdown": "$seq$.Where(Function ($x$) $expr$).Last()" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBReplaceWithSingleCallToLast", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCppcoreguidelinesNoexceptMoveOperations", - "shortDescription": { - "text": "cppcoreguidelines-noexcept-move-operations clang-tidy check" - }, - "fullDescription": { - "text": "cppcoreguidelines-noexcept-move-operations clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-noexcept-move-operations clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/noexcept-move-operations.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyCppcoreguidelinesNoexceptMoveOperations", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Blazor.EditorRequired", - "shortDescription": { - "text": "Missed value for required attribute" - }, - "fullDescription": { - "text": "Missed value for required attribute", - "markdown": "Missed value for required attribute" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Blazor.EditorRequired", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Blazor/Potential Code Quality Issues", - "index": 42, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "TypeWithSuspiciousEqualityIsUsedInRecord.Local", - "shortDescription": { - "text": "Type with suspicious equality is used in a record (private accessibility)" - }, - "fullDescription": { - "text": "Type with suspicious equality is used as a member of a record type. This inspection only triggers when the record type is actually used for equality comparisons in the solution. Learn more...", - "markdown": "Type with suspicious equality is used as a member of a record type. This inspection only triggers when the record type is actually used for equality comparisons in the solution. [Learn more...](https://www.jetbrains.com/help/rider/TypeWithSuspiciousEqualityIsUsedInRecord.Local.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "TypeWithSuspiciousEqualityIsUsedInRecord.Local", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticBackslashNewlineEscape", - "shortDescription": { - "text": "backslash-newline-escape clang diagnostic" - }, - "fullDescription": { - "text": "-Wbackslash-newline-escape clang diagnostic · Learn more", - "markdown": "-Wbackslash-newline-escape clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wbackslash-newline-escape)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticBackslashNewlineEscape", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1309", - "shortDescription": { - "text": "RoslynAnalyzers Use ordinal string comparison" - }, - "fullDescription": { - "text": "A string comparison operation that is nonlinguistic does not set the StringComparison parameter to either Ordinal or OrdinalIgnoreCase. By explicitly setting the parameter to either StringComparison.Ordinal or StringComparison.OrdinalIgnoreCase, your code often gains speed, becomes more correct, and becomes more reliable.", - "markdown": "A string comparison operation that is nonlinguistic does not set the StringComparison parameter to either Ordinal or OrdinalIgnoreCase. By explicitly setting the parameter to either StringComparison.Ordinal or StringComparison.OrdinalIgnoreCase, your code often gains speed, becomes more correct, and becomes more reliable." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1309", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1308", - "shortDescription": { - "text": "RoslynAnalyzers Normalize strings to uppercase" - }, - "fullDescription": { - "text": "Strings should be normalized to uppercase. A small group of characters cannot make a round trip when they are converted to lowercase. To make a round trip means to convert the characters from one locale to another locale that represents character data differently, and then to accurately retrieve the original characters from the converted characters.", - "markdown": "Strings should be normalized to uppercase. A small group of characters cannot make a round trip when they are converted to lowercase. To make a round trip means to convert the characters from one locale to another locale that represents character data differently, and then to accurately retrieve the original characters from the converted characters." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1308", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1307", - "shortDescription": { - "text": "RoslynAnalyzers Specify StringComparison for clarity" - }, - "fullDescription": { - "text": "A string comparison operation uses a method overload that does not set a StringComparison parameter. It is recommended to use the overload with StringComparison parameter for clarity of intent. If the result will be displayed to the user, such as when sorting a list of items for display in a list box, specify 'StringComparison.CurrentCulture' or 'StringComparison.CurrentCultureIgnoreCase' as the 'StringComparison' parameter. If comparing case-insensitive identifiers, such as file paths, environment variables, or registry keys and values, specify 'StringComparison.OrdinalIgnoreCase'. Otherwise, if comparing case-sensitive identifiers, specify 'StringComparison.Ordinal'.", - "markdown": "A string comparison operation uses a method overload that does not set a StringComparison parameter. It is recommended to use the overload with StringComparison parameter for clarity of intent. If the result will be displayed to the user, such as when sorting a list of items for display in a list box, specify 'StringComparison.CurrentCulture' or 'StringComparison.CurrentCultureIgnoreCase' as the 'StringComparison' parameter. If comparing case-insensitive identifiers, such as file paths, environment variables, or registry keys and values, specify 'StringComparison.OrdinalIgnoreCase'. Otherwise, if comparing case-sensitive identifiers, specify 'StringComparison.Ordinal'." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1307", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneSizeofExpression", - "shortDescription": { - "text": "bugprone-sizeof-expression clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-sizeof-expression clang-tidy check · Learn more", - "markdown": "bugprone-sizeof-expression clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/sizeof-expression.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneSizeofExpression", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1305", - "shortDescription": { - "text": "RoslynAnalyzers Specify IFormatProvider" - }, - "fullDescription": { - "text": "A method or constructor calls one or more members that have overloads that accept a System.IFormatProvider parameter, and the method or constructor does not call the overload that takes the IFormatProvider parameter. When a System.Globalization.CultureInfo or IFormatProvider object is not supplied, the default value that is supplied by the overloaded member might not have the effect that you want in all locales. If the result will be based on the input from/output displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider'. Otherwise, if the result will be stored and accessed by software, such as when it is loaded from disk/database and when it is persisted to disk/database, specify 'CultureInfo.InvariantCulture'.", - "markdown": "A method or constructor calls one or more members that have overloads that accept a System.IFormatProvider parameter, and the method or constructor does not call the overload that takes the IFormatProvider parameter. When a System.Globalization.CultureInfo or IFormatProvider object is not supplied, the default value that is supplied by the overloaded member might not have the effect that you want in all locales. If the result will be based on the input from/output displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider'. Otherwise, if the result will be stored and accessed by software, such as when it is loaded from disk/database and when it is persisted to disk/database, specify 'CultureInfo.InvariantCulture'." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1305", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1304", - "shortDescription": { - "text": "RoslynAnalyzers Specify CultureInfo" - }, - "fullDescription": { - "text": "A method or constructor calls a member that has an overload that accepts a System.Globalization.CultureInfo parameter, and the method or constructor does not call the overload that takes the CultureInfo parameter. When a CultureInfo or System.IFormatProvider object is not supplied, the default value that is supplied by the overloaded member might not have the effect that you want in all locales. If the result will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'CultureInfo' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", - "markdown": "A method or constructor calls a member that has an overload that accepts a System.Globalization.CultureInfo parameter, and the method or constructor does not call the overload that takes the CultureInfo parameter. When a CultureInfo or System.IFormatProvider object is not supplied, the default value that is supplied by the overloaded member might not have the effect that you want in all locales. If the result will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'CultureInfo' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1304", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1303", - "shortDescription": { - "text": "RoslynAnalyzers Do not pass literals as localized parameters" - }, - "fullDescription": { - "text": "A method passes a string literal as a parameter to a constructor or method in the .NET Framework class library and that string should be localizable. To fix a violation of this rule, replace the string literal with a string retrieved through an instance of the ResourceManager class.", - "markdown": "A method passes a string literal as a parameter to a constructor or method in the .NET Framework class library and that string should be localizable. To fix a violation of this rule, replace the string literal with a string retrieved through an instance of the ResourceManager class." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1303", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit.TestCaseSourceShouldImplementIEnumerable", - "shortDescription": { - "text": "NUnit. Test case source must be non-abstract and implement IEnumerable." - }, - "fullDescription": { - "text": "NUnit. Test case source must refer to non-abstract class implementing IEnumerable. Learn more...", - "markdown": "NUnit. Test case source must refer to non-abstract class implementing IEnumerable. [Learn more...](https://www.jetbrains.com/help/rider/NUnit.TestCaseSourceShouldImplementIEnumerable.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NUnit.TestCaseSourceShouldImplementIEnumerable", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/NUnit", - "index": 26, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CollectionNeverUpdated.Local", - "shortDescription": { - "text": "Collection is never updated (private accessibility)" - }, - "fullDescription": { - "text": "New elements are never added to the collection Learn more...", - "markdown": "New elements are never added to the collection [Learn more...](https://www.jetbrains.com/help/rider/CollectionNeverUpdated.Local.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CollectionNeverUpdated.Local", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticOpenmp51Extensions", - "shortDescription": { - "text": "openmp-51-extensions clang diagnostic" - }, - "fullDescription": { - "text": "-Wopenmp-51-extensions clang diagnostic · Learn more", - "markdown": "-Wopenmp-51-extensions clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wopenmp-51-extensions)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticOpenmp51Extensions", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppBadColonSpaces", - "shortDescription": { - "text": "Incorrect spacing (around colon)" - }, - "fullDescription": { - "text": "Around colon", - "markdown": "Around colon" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppBadColonSpaces", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Formatting", - "index": 28, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MergeNestedPropertyPatterns", - "shortDescription": { - "text": "Merge nested property patterns" - }, - "fullDescription": { - "text": "Simplify nested member access in a pattern by using the C# 10 extended property patterns syntax Learn more...", - "markdown": "Simplify nested member access in a pattern by using the C# 10 extended property patterns syntax [Learn more...](https://www.jetbrains.com/help/rider/MergeNestedPropertyPatterns.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "MergeNestedPropertyPatterns", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1217FadeOut", - "shortDescription": { - "text": "RoslynAnalyzers Convert interpolated string to concatenation" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1217FadeOut", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticStrictPrototypes", - "shortDescription": { - "text": "strict-prototypes clang diagnostic" - }, - "fullDescription": { - "text": "-Wstrict-prototypes clang diagnostic · Learn more", - "markdown": "-Wstrict-prototypes clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wstrict-prototypes)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticStrictPrototypes", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.XKeyAttributeDisallowed", - "shortDescription": { - "text": "x:Key is allowed for resources and dictionary elements only" - }, - "fullDescription": { - "text": "x:Key is allowed for resources and dictionary elements only", - "markdown": "x:Key is allowed for resources and dictionary elements only" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "Xaml.XKeyAttributeDisallowed", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Potential Code Quality Issues", - "index": 45, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PatternIsRedundant", - "shortDescription": { - "text": "The pattern is redundant, it does not produce any runtime checks" - }, - "fullDescription": { - "text": "The pattern is redundant because it does not produce any actual checks at runtime. This usually indicates an error in the pattern matching condition. Learn more...", - "markdown": "The pattern is redundant because it does not produce any actual checks at runtime. This usually indicates an error in the pattern matching condition. [Learn more...](https://www.jetbrains.com/help/rider/PatternIsRedundant.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "PatternIsRedundant", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCppcoreguidelinesMissingStdForward", - "shortDescription": { - "text": "cppcoreguidelines-missing-std-forward clang-tidy check" - }, - "fullDescription": { - "text": "cppcoreguidelines-missing-std-forward clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-missing-std-forward clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/missing-std-forward.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyCppcoreguidelinesMissingStdForward", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JoinNullCheckWithUsage", - "shortDescription": { - "text": "Join null check with assignment" - }, - "fullDescription": { - "text": "Replaces if statement with code using ?? operator and throw expression Learn more...", - "markdown": "Replaces if statement with code using ?? operator and throw expression [Learn more...](https://www.jetbrains.com/help/rider/JoinNullCheckWithUsage.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "JoinNullCheckWithUsage", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticSingleBitBitfieldConstantConversion", - "shortDescription": { - "text": "single-bit-bitfield-constant-conversion clang diagnostic" - }, - "fullDescription": { - "text": "-Wsingle-bit-bitfield-constant-conversion clang diagnostic · Learn more", - "markdown": "-Wsingle-bit-bitfield-constant-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wsingle-bit-bitfield-constant-conversion)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticSingleBitBitfieldConstantConversion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticReceiverExpr", - "shortDescription": { - "text": "receiver-expr clang diagnostic" - }, - "fullDescription": { - "text": "-Wreceiver-expr clang diagnostic · Learn more", - "markdown": "-Wreceiver-expr clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wreceiver-expr)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticReceiverExpr", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyModernizeUseDesignatedInitializers", - "shortDescription": { - "text": "modernize-use-designated-initializers clang-tidy check" - }, - "fullDescription": { - "text": "modernize-use-designated-initializers clang-tidy check · Learn more", - "markdown": "modernize-use-designated-initializers clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-designated-initializers.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyModernizeUseDesignatedInitializers", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS1574,CS1584,CS1581,CS1580", - "shortDescription": { - "text": "Cannot resolve reference in XML comment" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://www.jetbrains.com/help/rider/CSharpWarnings_CS1574_CS1584_CS1581_CS1580.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS1574,CS1584,CS1581,CS1580", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.LoadSceneUnexistingScene", - "shortDescription": { - "text": "Scene does not exist" - }, - "fullDescription": { - "text": "There is no scene with the same name in the project.", - "markdown": "There is no scene with the same name in the project." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.LoadSceneUnexistingScene", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8425", - "shortDescription": { - "text": "Async-iterator has one or more parameters of type 'CancellationToken' but none of them is annotated with the 'EnumeratorCancellation' attribute." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8425", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8424", - "shortDescription": { - "text": "The 'EnumeratorCancellation' attribute is only effective on a parameter of type 'CancellationToken' in an async-iterator method returning 'IAsyncEnumerable<>'." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8424", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnsafeBufferUsage", - "shortDescription": { - "text": "unsafe-buffer-usage clang diagnostic" - }, - "fullDescription": { - "text": "-Wunsafe-buffer-usage clang diagnostic · Learn more", - "markdown": "-Wunsafe-buffer-usage clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunsafe-buffer-usage)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnsafeBufferUsage", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppDeletingVoidPointer", - "shortDescription": { - "text": "Deleting a void pointer" - }, - "fullDescription": { - "text": "Deleting a void pointer is undefined behavior", - "markdown": "Deleting a void pointer is undefined behavior" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppDeletingVoidPointer", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticStrictSelectorMatch", - "shortDescription": { - "text": "strict-selector-match clang diagnostic" - }, - "fullDescription": { - "text": "-Wstrict-selector-match clang diagnostic · Learn more", - "markdown": "-Wstrict-selector-match clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wstrict-selector-match)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticStrictSelectorMatch", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerCplusplusArrayDelete", - "shortDescription": { - "text": "cplusplus.ArrayDelete clang static analyzer check" - }, - "fullDescription": { - "text": "cplusplus.ArrayDelete clang static analyzer check · Learn more", - "markdown": "cplusplus.ArrayDelete clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerCplusplusArrayDelete", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticNullableToNonnullConversion", - "shortDescription": { - "text": "nullable-to-nonnull-conversion clang diagnostic" - }, - "fullDescription": { - "text": "-Wnullable-to-nonnull-conversion clang diagnostic · Learn more", - "markdown": "-Wnullable-to-nonnull-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnullable-to-nonnull-conversion)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticNullableToNonnullConversion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RouteTemplates.ParameterConstraintCanBeSpecified", - "shortDescription": { - "text": "Route parameter constraint can be added due to type of method argument" - }, - "fullDescription": { - "text": "Route parameter constraint can be added due to type of method argument", - "markdown": "Route parameter constraint can be added due to type of method argument" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RouteTemplates.ParameterConstraintCanBeSpecified", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "ASP.NET route templates/Code Notification", - "index": 48, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMicrosoftCommentPaste", - "shortDescription": { - "text": "microsoft-comment-paste clang diagnostic" - }, - "fullDescription": { - "text": "-Wmicrosoft-comment-paste clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-comment-paste clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-comment-paste)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftCommentPaste", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppThrowExpressionCanBeReplacedWithRethrow", - "shortDescription": { - "text": "Throw expression can be replaced with a rethrow expression" - }, - "fullDescription": { - "text": "Throw expression can be replaced with a rethrow expression", - "markdown": "Throw expression can be replaced with a rethrow expression" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppThrowExpressionCanBeReplacedWithRethrow", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Common Practices and Code Improvements", - "index": 16, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Godot.MissingParameterlessConstructor", - "shortDescription": { - "text": "Parameterless constructor required" - }, - "fullDescription": { - "text": "Consider adding a parameterless constructor for the GodotEngine to initialize a script/game object", - "markdown": "Consider adding a parameterless constructor for the GodotEngine to initialize a script/game object" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Godot.MissingParameterlessConstructor", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Godot", - "index": 50, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.XamlMismatchedDeviceFamilyViewClrNameHighlighting", - "shortDescription": { - "text": "DeviceFamily-specific view type name does not match generic type name" - }, - "fullDescription": { - "text": "DeviceFamily-specific view type name does not match generic type name", - "markdown": "DeviceFamily-specific view type name does not match generic type name" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Xaml.XamlMismatchedDeviceFamilyViewClrNameHighlighting", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Potential Code Quality Issues", - "index": 45, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp98Cpp11Cpp14Compat", - "shortDescription": { - "text": "c++98-c++11-c++14-compat clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++98-c++11-c++14-compat clang diagnostic · Learn more", - "markdown": "-Wc++98-c++11-c++14-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-98-c-11-c-14-compat)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp98Cpp11Cpp14Compat", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1031FadeOut", - "shortDescription": { - "text": "RoslynAnalyzers Remove unnecessary braces in switch section" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1031FadeOut", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneChainedComparison", - "shortDescription": { - "text": "bugprone-chained-comparison clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-chained-comparison clang-tidy check · Learn more", - "markdown": "bugprone-chained-comparison clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/chained-comparison.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneChainedComparison", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneSwitchMissingDefaultCase", - "shortDescription": { - "text": "bugprone-switch-missing-default-case clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-switch-missing-default-case clang-tidy check · Learn more", - "markdown": "bugprone-switch-missing-default-case clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/switch-missing-default-case.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyBugproneSwitchMissingDefaultCase", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPreCpp14CompatPedantic", - "shortDescription": { - "text": "pre-c++14-compat-pedantic clang diagnostic" - }, - "fullDescription": { - "text": "-Wpre-c++14-compat-pedantic clang diagnostic · Learn more", - "markdown": "-Wpre-c++14-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpre-c-14-compat-pedantic)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPreCpp14CompatPedantic", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AsmDefWarnings", - "shortDescription": { - "text": "AsmDef Warnings" - }, - "fullDescription": { - "text": "AsmDef Warnings", - "markdown": "AsmDef Warnings" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "AsmDefWarnings", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Non configurable", - "index": 52, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDeprecatedCopyWithUserProvidedCopy", - "shortDescription": { - "text": "deprecated-copy-with-user-provided-copy clang diagnostic" - }, - "fullDescription": { - "text": "-Wdeprecated-copy-with-user-provided-copy clang diagnostic · Learn more", - "markdown": "-Wdeprecated-copy-with-user-provided-copy clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-copy-with-user-provided-copy)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedCopyWithUserProvidedCopy", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppRangeBasedForIncompatibleReference", - "shortDescription": { - "text": "Possibly unintended incompatible reference type in range declaration" - }, - "fullDescription": { - "text": "Using an incompatible reference type in the range declaration is likely to cause unwanted object copying", - "markdown": "Using an incompatible reference type in the range declaration is likely to cause unwanted object copying" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppRangeBasedForIncompatibleReference", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticAtomicAccess", - "shortDescription": { - "text": "atomic-access clang diagnostic" - }, - "fullDescription": { - "text": "-Watomic-access clang diagnostic · Learn more", - "markdown": "-Watomic-access clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#watomic-access)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticAtomicAccess", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticTautologicalTypeLimitCompare", - "shortDescription": { - "text": "tautological-type-limit-compare clang diagnostic" - }, - "fullDescription": { - "text": "-Wtautological-type-limit-compare clang diagnostic · Learn more", - "markdown": "-Wtautological-type-limit-compare clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wtautological-type-limit-compare)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticTautologicalTypeLimitCompare", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCertCon36C", - "shortDescription": { - "text": "cert-con36-c clang-tidy check" - }, - "fullDescription": { - "text": "cert-con36-c clang-tidy check · Learn more", - "markdown": "cert-con36-c clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/con36-c.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCertCon36C", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMicrosoftUnionMemberReference", - "shortDescription": { - "text": "microsoft-union-member-reference clang diagnostic" - }, - "fullDescription": { - "text": "-Wmicrosoft-union-member-reference clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-union-member-reference clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-union-member-reference)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftUnionMemberReference", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConvertToLocalFunction", - "shortDescription": { - "text": "Convert delegate variable into local function" - }, - "fullDescription": { - "text": "Replace delegate variable with local function Learn more...", - "markdown": "Replace delegate variable with local function [Learn more...](https://www.jetbrains.com/help/rider/ConvertToLocalFunction.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ConvertToLocalFunction", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticNonModularIncludeInModule", - "shortDescription": { - "text": "non-modular-include-in-module clang diagnostic" - }, - "fullDescription": { - "text": "-Wnon-modular-include-in-module clang diagnostic · Learn more", - "markdown": "-Wnon-modular-include-in-module clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnon-modular-include-in-module)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticNonModularIncludeInModule", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyPerformanceNoexceptDestructor", - "shortDescription": { - "text": "performance-noexcept-destructor clang-tidy check" - }, - "fullDescription": { - "text": "performance-noexcept-destructor clang-tidy check · Learn more", - "markdown": "performance-noexcept-destructor clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance/noexcept-destructor.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyPerformanceNoexceptDestructor", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticIncompatibleMsStruct", - "shortDescription": { - "text": "incompatible-ms-struct clang diagnostic" - }, - "fullDescription": { - "text": "-Wincompatible-ms-struct clang diagnostic · Learn more", - "markdown": "-Wincompatible-ms-struct clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wincompatible-ms-struct)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticIncompatibleMsStruct", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyHicppNoArrayDecay", - "shortDescription": { - "text": "hicpp-no-array-decay clang-tidy check" - }, - "fullDescription": { - "text": "hicpp-no-array-decay clang-tidy check · Learn more", - "markdown": "hicpp-no-array-decay clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/no-array-decay.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyHicppNoArrayDecay", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerOsxNSOrCFErrorDerefChecker", - "shortDescription": { - "text": "osx.NSOrCFErrorDerefChecker clang static analyzer check" - }, - "fullDescription": { - "text": "osx.NSOrCFErrorDerefChecker clang static analyzer check · Learn more", - "markdown": "osx.NSOrCFErrorDerefChecker clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerOsxNSOrCFErrorDerefChecker", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPointerIntegerCompare", - "shortDescription": { - "text": "pointer-integer-compare clang diagnostic" - }, - "fullDescription": { - "text": "-Wpointer-integer-compare clang diagnostic · Learn more", - "markdown": "-Wpointer-integer-compare clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpointer-integer-compare)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPointerIntegerCompare", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppMissingIndent", - "shortDescription": { - "text": "Incorrect indent (missing indent/outdent elsewhere)" - }, - "fullDescription": { - "text": "Missing indent/outdent elsewhere", - "markdown": "Missing indent/outdent elsewhere" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppMissingIndent", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Formatting", - "index": 28, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticIncompatibleFunctionPointerTypesStrict", - "shortDescription": { - "text": "incompatible-function-pointer-types-strict clang diagnostic" - }, - "fullDescription": { - "text": "-Wincompatible-function-pointer-types-strict clang diagnostic · Learn more", - "markdown": "-Wincompatible-function-pointer-types-strict clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wincompatible-function-pointer-types-strict)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticIncompatibleFunctionPointerTypesStrict", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Html.AttributeValueNotResolved", - "shortDescription": { - "text": "Unknown attribute value" - }, - "fullDescription": { - "text": "Unknown attribute value in HTML and related technologies", - "markdown": "Unknown attribute value in HTML and related technologies" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Html.AttributeValueNotResolved", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HTML/Potential Code Quality Issues", - "index": 54, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppPrintfExtraArg", - "shortDescription": { - "text": "Too many arguments in a call to printf" - }, - "fullDescription": { - "text": "Too many arguments in a call to printf. Some of the arguments are not used.", - "markdown": "Too many arguments in a call to printf. Some of the arguments are not used." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppPrintfExtraArg", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityElseAfterReturn", - "shortDescription": { - "text": "readability-else-after-return clang-tidy check" - }, - "fullDescription": { - "text": "readability-else-after-return clang-tidy check · Learn more", - "markdown": "readability-else-after-return clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/else-after-return.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityElseAfterReturn", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPragmaClangAttribute", - "shortDescription": { - "text": "pragma-clang-attribute clang diagnostic" - }, - "fullDescription": { - "text": "-Wpragma-clang-attribute clang diagnostic · Learn more", - "markdown": "-Wpragma-clang-attribute clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpragma-clang-attribute)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPragmaClangAttribute", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCppcoreguidelinesProBoundsPointerArithmetic", - "shortDescription": { - "text": "cppcoreguidelines-pro-bounds-pointer-arithmetic clang-tidy check" - }, - "fullDescription": { - "text": "cppcoreguidelines-pro-bounds-pointer-arithmetic clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-pro-bounds-pointer-arithmetic clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/pro-bounds-pointer-arithmetic.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCppcoreguidelinesProBoundsPointerArithmetic", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticExternInitializer", - "shortDescription": { - "text": "extern-initializer clang diagnostic" - }, - "fullDescription": { - "text": "-Wextern-initializer clang diagnostic · Learn more", - "markdown": "-Wextern-initializer clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wextern-initializer)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticExternInitializer", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCppcoreguidelinesAvoidMagicNumbers", - "shortDescription": { - "text": "cppcoreguidelines-avoid-magic-numbers clang-tidy check" - }, - "fullDescription": { - "text": "cppcoreguidelines-avoid-magic-numbers clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-avoid-magic-numbers clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/avoid-magic-numbers.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCppcoreguidelinesAvoidMagicNumbers", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "BaseObjectGetHashCodeCallInGetHashCode", - "shortDescription": { - "text": "Overridden GetHashCode calls base 'Object.GetHashCode()'" - }, - "fullDescription": { - "text": "Overridden GetHashCode calls base 'Object.GetHashCode()' Learn more...", - "markdown": "Overridden GetHashCode calls base 'Object.GetHashCode()' [Learn more...](https://www.jetbrains.com/help/rider/BaseObjectGetHashCodeCallInGetHashCode.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "BaseObjectGetHashCodeCallInGetHashCode", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDeprecatedLiteralOperator", - "shortDescription": { - "text": "deprecated-literal-operator clang diagnostic" - }, - "fullDescription": { - "text": "-Wdeprecated-literal-operator clang diagnostic · Learn more", - "markdown": "-Wdeprecated-literal-operator clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-literal-operator)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedLiteralOperator", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityUppercaseLiteralSuffix", - "shortDescription": { - "text": "readability-uppercase-literal-suffix clang-tidy check" - }, - "fullDescription": { - "text": "readability-uppercase-literal-suffix clang-tidy check · Learn more", - "markdown": "readability-uppercase-literal-suffix clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/uppercase-literal-suffix.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityUppercaseLiteralSuffix", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDirectIvarAccess", - "shortDescription": { - "text": "direct-ivar-access clang diagnostic" - }, - "fullDescription": { - "text": "-Wdirect-ivar-access clang diagnostic · Learn more", - "markdown": "-Wdirect-ivar-access clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdirect-ivar-access)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDirectIvarAccess", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppIdenticalOperandsInBinaryExpression", - "shortDescription": { - "text": "Binary operator acts on identical operands" - }, - "fullDescription": { - "text": "Binary operator acts on identical operands", - "markdown": "Binary operator acts on identical operands" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppIdenticalOperandsInBinaryExpression", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDeprecatedRegister", - "shortDescription": { - "text": "deprecated-register clang diagnostic" - }, - "fullDescription": { - "text": "-Wdeprecated-register clang diagnostic · Learn more", - "markdown": "-Wdeprecated-register clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-register)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedRegister", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMismatchedNewDelete", - "shortDescription": { - "text": "mismatched-new-delete clang diagnostic" - }, - "fullDescription": { - "text": "-Wmismatched-new-delete clang diagnostic · Learn more", - "markdown": "-Wmismatched-new-delete clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmismatched-new-delete)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMismatchedNewDelete", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.BurstAccessingManagedMethod", - "shortDescription": { - "text": "Accessing managed methods is not supported" - }, - "fullDescription": { - "text": "Accessing managed methods is not supported", - "markdown": "Accessing managed methods is not supported" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.BurstAccessingManagedMethod", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity Burst Compiler Warnings", - "index": 57, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ShiftExpressionResultEqualsZero", - "shortDescription": { - "text": "Constant shift expression with non-zero operands results in a zero value" - }, - "fullDescription": { - "text": "Constant shift expression with non-zero operands results in a zero value", - "markdown": "Constant shift expression with non-zero operands results in a zero value" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "ShiftExpressionResultEqualsZero", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityRedundantStringInit", - "shortDescription": { - "text": "readability-redundant-string-init clang-tidy check" - }, - "fullDescription": { - "text": "readability-redundant-string-init clang-tidy check · Learn more", - "markdown": "readability-redundant-string-init clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/redundant-string-init.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityRedundantStringInit", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnsupportedTargetOpt", - "shortDescription": { - "text": "unsupported-target-opt clang diagnostic" - }, - "fullDescription": { - "text": "-Wunsupported-target-opt clang diagnostic · Learn more", - "markdown": "-Wunsupported-target-opt clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunsupported-target-opt)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnsupportedTargetOpt", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticTautologicalConstantInRangeCompare", - "shortDescription": { - "text": "tautological-constant-in-range-compare clang diagnostic" - }, - "fullDescription": { - "text": "-Wtautological-constant-in-range-compare clang diagnostic · Learn more", - "markdown": "-Wtautological-constant-in-range-compare clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wtautological-constant-in-range-compare)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticTautologicalConstantInRangeCompare", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnknownEscapeSequence", - "shortDescription": { - "text": "unknown-escape-sequence clang diagnostic" - }, - "fullDescription": { - "text": "-Wunknown-escape-sequence clang diagnostic · Learn more", - "markdown": "-Wunknown-escape-sequence clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunknown-escape-sequence)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnknownEscapeSequence", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyHicppIgnoredRemoveResult", - "shortDescription": { - "text": "hicpp-ignored-remove-result clang-tidy check" - }, - "fullDescription": { - "text": "hicpp-ignored-remove-result clang-tidy check · Learn more", - "markdown": "hicpp-ignored-remove-result clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/ignored-remove-result.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyHicppIgnoredRemoveResult", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseArrayEmptyMethod", - "shortDescription": { - "text": "Use 'Array.Empty<T>()'" - }, - "fullDescription": { - "text": "Replace an empty array allocation with a call of the predefined 'Array.Empty()' method", - "markdown": "Replace an empty array allocation with a call of the predefined 'Array.Empty()' method" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UseArrayEmptyMethod", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppBadCommaSpaces", - "shortDescription": { - "text": "Incorrect spacing (around comma)" - }, - "fullDescription": { - "text": "Around comma", - "markdown": "Around comma" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppBadCommaSpaces", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Formatting", - "index": 28, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppAbstractClassWithoutSpecifier", - "shortDescription": { - "text": "Class is abstract but not explicitly declared as such" - }, - "fullDescription": { - "text": "The class is abstract but not explicitly declared as such", - "markdown": "The class is abstract but not explicitly declared as such" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppAbstractClassWithoutSpecifier", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBReplaceWithOfType.Single.2", - "shortDescription": { - "text": "Replace with OfType<T>().Single() (replace with OfType(Of ..)().Single(..))" - }, - "fullDescription": { - "text": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).Single(Function ($y$) $y$ IsNot Nothing AndAlso $expr$)", - "markdown": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).Single(Function ($y$) $y$ IsNot Nothing AndAlso $expr$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBReplaceWithOfType.Single.2", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBReplaceWithOfType.Single.1", - "shortDescription": { - "text": "Replace with OfType<T>().Single() (replace with OfType(Of ..)().Single())" - }, - "fullDescription": { - "text": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).Single(Function ($y$) $y$ IsNot Nothing)", - "markdown": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).Single(Function ($y$) $y$ IsNot Nothing)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBReplaceWithOfType.Single.1", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticFormatSecurity", - "shortDescription": { - "text": "format-security clang diagnostic" - }, - "fullDescription": { - "text": "-Wformat-security clang diagnostic · Learn more", - "markdown": "-Wformat-security clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wformat-security)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticFormatSecurity", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppBoostFormatBadCode", - "shortDescription": { - "text": "Incorrect format directive in boost::format" - }, - "fullDescription": { - "text": "A format string of boost::format contains an erroneous format directive", - "markdown": "A format string of boost::format contains an erroneous format directive" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppBoostFormatBadCode", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp23LambdaAttributes", - "shortDescription": { - "text": "c++23-lambda-attributes clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++23-lambda-attributes clang diagnostic · Learn more", - "markdown": "-Wc++23-lambda-attributes clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-23-lambda-attributes)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp23LambdaAttributes", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppBadParensSpaces", - "shortDescription": { - "text": "Incorrect spacing (around parenthesis)" - }, - "fullDescription": { - "text": "Around parenthesis", - "markdown": "Around parenthesis" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppBadParensSpaces", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Formatting", - "index": 28, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PossibleInterfaceMemberAmbiguity", - "shortDescription": { - "text": "Possible ambiguity while accessing member by interface" - }, - "fullDescription": { - "text": "Possible ambiguity while accessing member by interface", - "markdown": "Possible ambiguity while accessing member by interface" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "PossibleInterfaceMemberAmbiguity", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPessimizingMove", - "shortDescription": { - "text": "pessimizing-move clang diagnostic" - }, - "fullDescription": { - "text": "-Wpessimizing-move clang diagnostic · Learn more", - "markdown": "-Wpessimizing-move clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpessimizing-move)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPessimizingMove", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MethodHasAsyncOverloadWithCancellation", - "shortDescription": { - "text": "Method has async overload with cancellation support" - }, - "fullDescription": { - "text": "Method has async overload with 'CancellationToken'", - "markdown": "Method has async overload with 'CancellationToken'" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "MethodHasAsyncOverloadWithCancellation", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticIncompatibleFunctionPointerTypes", - "shortDescription": { - "text": "incompatible-function-pointer-types clang diagnostic" - }, - "fullDescription": { - "text": "-Wincompatible-function-pointer-types clang diagnostic · Learn more", - "markdown": "-Wincompatible-function-pointer-types clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wincompatible-function-pointer-types)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticIncompatibleFunctionPointerTypes", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDeleteNonAbstractNonVirtualDtor", - "shortDescription": { - "text": "delete-non-abstract-non-virtual-dtor clang diagnostic" - }, - "fullDescription": { - "text": "-Wdelete-non-abstract-non-virtual-dtor clang diagnostic · Learn more", - "markdown": "-Wdelete-non-abstract-non-virtual-dtor clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdelete-non-abstract-non-virtual-dtor)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDeleteNonAbstractNonVirtualDtor", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppPrivateSpecialMemberFunctionIsNotImplemented", - "shortDescription": { - "text": "Private special member function is not implemented" - }, - "fullDescription": { - "text": "A private special member function must be defined or deleted", - "markdown": "A private special member function must be defined or deleted" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppPrivateSpecialMemberFunctionIsNotImplemented", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCppcoreguidelinesAvoidGoto", - "shortDescription": { - "text": "cppcoreguidelines-avoid-goto clang-tidy check" - }, - "fullDescription": { - "text": "cppcoreguidelines-avoid-goto clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-avoid-goto clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/avoid-goto.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyCppcoreguidelinesAvoidGoto", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUndefPrefix", - "shortDescription": { - "text": "undef-prefix clang diagnostic" - }, - "fullDescription": { - "text": "-Wundef-prefix clang diagnostic · Learn more", - "markdown": "-Wundef-prefix clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wundef-prefix)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUndefPrefix", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityInconsistentDeclarationParameterName", - "shortDescription": { - "text": "readability-inconsistent-declaration-parameter-name clang-tidy check" - }, - "fullDescription": { - "text": "readability-inconsistent-declaration-parameter-name clang-tidy check · Learn more", - "markdown": "readability-inconsistent-declaration-parameter-name clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/inconsistent-declaration-parameter-name.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityInconsistentDeclarationParameterName", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ObsoleteElementError", - "shortDescription": { - "text": "Use of obsolete type or type member (error)" - }, - "fullDescription": { - "text": "Use of obsolete type or type member in XAML markup (error)", - "markdown": "Use of obsolete type or type member in XAML markup (error)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "ObsoleteElementError", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Compiler Warnings", - "index": 60, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConvertConstructorToMemberInitializers", - "shortDescription": { - "text": "Convert constructor into member initializers" - }, - "fullDescription": { - "text": "Replace constructor with members initialized inline Learn more...", - "markdown": "Replace constructor with members initialized inline [Learn more...](https://www.jetbrains.com/help/rider/ConvertConstructorToMemberInitializers.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ConvertConstructorToMemberInitializers", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.DuplicateShortcut", - "shortDescription": { - "text": "The same shortcut is defined for another menu item" - }, - "fullDescription": { - "text": "The same shortcut is defined for another menu item", - "markdown": "The same shortcut is defined for another menu item" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.DuplicateShortcut", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneUnhandledExceptionAtNew", - "shortDescription": { - "text": "bugprone-unhandled-exception-at-new clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-unhandled-exception-at-new clang-tidy check · Learn more", - "markdown": "bugprone-unhandled-exception-at-new clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/unhandled-exception-at-new.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyBugproneUnhandledExceptionAtNew", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDllexportExplicitInstantiationDecl", - "shortDescription": { - "text": "dllexport-explicit-instantiation-decl clang diagnostic" - }, - "fullDescription": { - "text": "-Wdllexport-explicit-instantiation-decl clang diagnostic · Learn more", - "markdown": "-Wdllexport-explicit-instantiation-decl clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdllexport-explicit-instantiation-decl)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDllexportExplicitInstantiationDecl", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppIntegralToPointerConversion", - "shortDescription": { - "text": "Implicit integer to pointer conversion" - }, - "fullDescription": { - "text": "Implicit integer to pointer conversion", - "markdown": "Implicit integer to pointer conversion" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppIntegralToPointerConversion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS0420", - "shortDescription": { - "text": "Reference to a volatile field will not be treated as volatile" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/4bw5ewxy.aspx)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS0420", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticFourCharConstants", - "shortDescription": { - "text": "four-char-constants clang diagnostic" - }, - "fullDescription": { - "text": "-Wfour-char-constants clang diagnostic · Learn more", - "markdown": "-Wfour-char-constants clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wfour-char-constants)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticFourCharConstants", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8383", - "shortDescription": { - "text": "The tuple element name is ignored because a different name or no name is specified on the other side of the tuple == or != operator." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8383", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.XamlRelativeSourceDefaultModeWarningHighlighting", - "shortDescription": { - "text": "RelativeSourceMode is not set explicitly" - }, - "fullDescription": { - "text": "Default RelativeSourceMode value is platform-specific, explicit specification is required to process RelativeSource usage unambiguously", - "markdown": "Default RelativeSourceMode value is platform-specific, explicit specification is required to process RelativeSource usage unambiguously" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Xaml.XamlRelativeSourceDefaultModeWarningHighlighting", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Potential Code Quality Issues", - "index": 45, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit.RangeAttributeBoundsAreOutOfRange", - "shortDescription": { - "text": "NUnit. Values in range do not fit the type of the test parameter." - }, - "fullDescription": { - "text": "NUnit. Values specified in [Range] are out range for the type of the test parameter. Learn more...", - "markdown": "NUnit. Values specified in \\[Range\\] are out range for the type of the test parameter. [Learn more...](https://www.jetbrains.com/help/rider/NUnit.RangeAttributeBoundsAreOutOfRange.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NUnit.RangeAttributeBoundsAreOutOfRange", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/NUnit", - "index": 26, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyFuchsiaVirtualInheritance", - "shortDescription": { - "text": "fuchsia-virtual-inheritance clang-tidy check" - }, - "fullDescription": { - "text": "fuchsia-virtual-inheritance clang-tidy check · Learn more", - "markdown": "fuchsia-virtual-inheritance clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/fuchsia/virtual-inheritance.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyFuchsiaVirtualInheritance", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticGnuPointerArith", - "shortDescription": { - "text": "gnu-pointer-arith clang diagnostic" - }, - "fullDescription": { - "text": "-Wgnu-pointer-arith clang diagnostic · Learn more", - "markdown": "-Wgnu-pointer-arith clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-pointer-arith)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticGnuPointerArith", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCertMsc33C", - "shortDescription": { - "text": "cert-msc33-c clang-tidy check" - }, - "fullDescription": { - "text": "cert-msc33-c clang-tidy check · Learn more", - "markdown": "cert-msc33-c clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/msc33-c.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCertMsc33C", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "BadIndent", - "shortDescription": { - "text": "Incorrect indent (redundant indent/outdent elsewhere)" - }, - "fullDescription": { - "text": "Redundant indent/outdent elsewhere Learn more...", - "markdown": "Redundant indent/outdent elsewhere [Learn more...](https://www.jetbrains.com/help/rider/BadIndent.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "BadIndent", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Formatting", - "index": 24, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCertCon54Cpp", - "shortDescription": { - "text": "cert-con54-cpp clang-tidy check" - }, - "fullDescription": { - "text": "cert-con54-cpp clang-tidy check · Learn more", - "markdown": "cert-con54-cpp clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/con54-cpp.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCertCon54Cpp", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NotAssignedOutParameter", - "shortDescription": { - "text": "'out' parameter is not assigned upon exit" - }, - "fullDescription": { - "text": "'out' parameter is not assigned upon exit", - "markdown": "'out' parameter is not assigned upon exit" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NotAssignedOutParameter", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Potential Code Quality Issues", - "index": 62, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticInvalidPpToken", - "shortDescription": { - "text": "invalid-pp-token clang diagnostic" - }, - "fullDescription": { - "text": "-Winvalid-pp-token clang diagnostic · Learn more", - "markdown": "-Winvalid-pp-token clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winvalid-pp-token)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticInvalidPpToken", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS1723", - "shortDescription": { - "text": "XML comment has cref attribute that refers to a type parameter" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/ms228603.aspx)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS1723", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit.RedundantExpectedResultInTestCaseAttribute", - "shortDescription": { - "text": "NUnit. Redundant expected result for void test method." - }, - "fullDescription": { - "text": "Specifying expected result for void NUnit test methods through the [TestCase] attribute is redundant. Learn more...", - "markdown": "Specifying expected result for void NUnit test methods through the \\[TestCase\\] attribute is redundant. [Learn more...](https://www.jetbrains.com/help/rider/NUnit.RedundantExpectedResultInTestCaseAttribute.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NUnit.RedundantExpectedResultInTestCaseAttribute", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/NUnit", - "index": 26, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.UnknownTag", - "shortDescription": { - "text": "The tag is not defined in the 'Tags & Layers'" - }, - "fullDescription": { - "text": "The tag is not defined in the 'Tags & Layers'. Expression will return 'false'.", - "markdown": "The tag is not defined in the 'Tags \\& Layers'. Expression will return 'false'." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.UnknownTag", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantExplicitParamsArrayCreation", - "shortDescription": { - "text": "Redundant explicit collection creation in argument of 'params' parameter" - }, - "fullDescription": { - "text": "Explicit collection creation in an argument passed to the 'params' parameter is redundant Learn more...", - "markdown": "Explicit collection creation in an argument passed to the 'params' parameter is redundant [Learn more...](https://www.jetbrains.com/help/rider/RedundantExplicitParamsArrayCreation.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "RedundantExplicitParamsArrayCreation", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyGoogleObjcFunctionNaming", - "shortDescription": { - "text": "google-objc-function-naming clang-tidy check" - }, - "fullDescription": { - "text": "google-objc-function-naming clang-tidy check · Learn more", - "markdown": "google-objc-function-naming clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/google/objc-function-naming.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyGoogleObjcFunctionNaming", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerOptinPerformancePadding", - "shortDescription": { - "text": "optin.performance.Padding clang static analyzer check" - }, - "fullDescription": { - "text": "optin.performance.Padding clang static analyzer check · Learn more", - "markdown": "optin.performance.Padding clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerOptinPerformancePadding", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS7023", - "shortDescription": { - "text": "Static type in 'is' or 'as' operator." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/warning-waves#cs7023---a-static-type-is-used-in-an-is-or-as-expression)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS7023", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Asp.Warning", - "shortDescription": { - "text": "ASP.NET Warning" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Asp.Warning", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Aspx/Potential Code Quality Issues", - "index": 64, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS7022", - "shortDescription": { - "text": "The 'Main' method will not be used as an entry point because compilation unit with top-level statements was found." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS7022", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneMultipleNewInOneExpression", - "shortDescription": { - "text": "bugprone-multiple-new-in-one-expression clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-multiple-new-in-one-expression clang-tidy check · Learn more", - "markdown": "bugprone-multiple-new-in-one-expression clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/multiple-new-in-one-expression.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneMultipleNewInOneExpression", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerCoreUninitializedArraySubscript", - "shortDescription": { - "text": "core.uninitialized.ArraySubscript clang static analyzer check" - }, - "fullDescription": { - "text": "core.uninitialized.ArraySubscript clang static analyzer check · Learn more", - "markdown": "core.uninitialized.ArraySubscript clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerCoreUninitializedArraySubscript", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseIndexFromEndExpression", - "shortDescription": { - "text": "Use index from end expression" - }, - "fullDescription": { - "text": "Replace array indexer argument with index from end expression", - "markdown": "Replace array indexer argument with index from end expression" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UseIndexFromEndExpression", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RouteTemplates.ParameterTypeAndConstraintsMismatch", - "shortDescription": { - "text": "Type of parameter doesn't satisfy constraints declared in route template" - }, - "fullDescription": { - "text": "Type of parameter doesn't satisfy constraints declared in route template", - "markdown": "Type of parameter doesn't satisfy constraints declared in route template" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RouteTemplates.ParameterTypeAndConstraintsMismatch", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "ASP.NET route templates/Code Notification", - "index": 48, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCertMsc32C", - "shortDescription": { - "text": "cert-msc32-c clang-tidy check" - }, - "fullDescription": { - "text": "cert-msc32-c clang-tidy check · Learn more", - "markdown": "cert-msc32-c clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/msc32-c.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCertMsc32C", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticGnuBinaryLiteral", - "shortDescription": { - "text": "gnu-binary-literal clang diagnostic" - }, - "fullDescription": { - "text": "-Wgnu-binary-literal clang diagnostic · Learn more", - "markdown": "-Wgnu-binary-literal clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-binary-literal)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticGnuBinaryLiteral", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConvertTypeCheckToNullCheck", - "shortDescription": { - "text": "Use null check instead of a type check succeeding on any not-null value" - }, - "fullDescription": { - "text": "The expression of 'is' operator matches the provided type on any non-null value. Consider comparing with 'null' instead. Learn more...", - "markdown": "The expression of 'is' operator matches the provided type on any non-null value. Consider comparing with 'null' instead. [Learn more...](https://www.jetbrains.com/help/rider/ConvertTypeCheckToNullCheck.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "ConvertTypeCheckToNullCheck", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyHicppUseEqualsDefault", - "shortDescription": { - "text": "hicpp-use-equals-default clang-tidy check" - }, - "fullDescription": { - "text": "hicpp-use-equals-default clang-tidy check · Learn more", - "markdown": "hicpp-use-equals-default clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/use-equals-default.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyHicppUseEqualsDefault", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit.IgnoredParameterAttribute", - "shortDescription": { - "text": "NUnit. Ignored parameter attribute." - }, - "fullDescription": { - "text": "NUnit. Parameter attribute is ignored by NUnit framework.", - "markdown": "NUnit. Parameter attribute is ignored by NUnit framework." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NUnit.IgnoredParameterAttribute", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/NUnit", - "index": 26, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyModernizeUseTransparentFunctors", - "shortDescription": { - "text": "modernize-use-transparent-functors clang-tidy check" - }, - "fullDescription": { - "text": "modernize-use-transparent-functors clang-tidy check · Learn more", - "markdown": "modernize-use-transparent-functors clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-transparent-functors.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyModernizeUseTransparentFunctors", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MeaninglessDefaultParameterValue", - "shortDescription": { - "text": "'DefaultParameterValueAttribute' must be used in conjunction with 'OptionalAttribute'" - }, - "fullDescription": { - "text": "'DefaultParameterValueAttribute' must be used in conjunction with 'OptionalAttribute'", - "markdown": "'DefaultParameterValueAttribute' must be used in conjunction with 'OptionalAttribute'" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "MeaninglessDefaultParameterValue", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnneededInternalDeclaration", - "shortDescription": { - "text": "unneeded-internal-declaration clang diagnostic" - }, - "fullDescription": { - "text": "-Wunneeded-internal-declaration clang diagnostic · Learn more", - "markdown": "-Wunneeded-internal-declaration clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunneeded-internal-declaration)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnneededInternalDeclaration", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.BurstCreatingManagedType", - "shortDescription": { - "text": "Creating a managed type is not supported" - }, - "fullDescription": { - "text": "Creating a managed type is not supported", - "markdown": "Creating a managed type is not supported" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.BurstCreatingManagedType", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity Burst Compiler Warnings", - "index": 57, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDangling", - "shortDescription": { - "text": "dangling clang diagnostic" - }, - "fullDescription": { - "text": "-Wdangling clang diagnostic · Learn more", - "markdown": "-Wdangling clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdangling)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDangling", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticWeakVtables", - "shortDescription": { - "text": "weak-vtables clang diagnostic" - }, - "fullDescription": { - "text": "-Wweak-vtables clang diagnostic · Learn more", - "markdown": "-Wweak-vtables clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wweak-vtables)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticWeakVtables", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMissingNoreturn", - "shortDescription": { - "text": "missing-noreturn clang diagnostic" - }, - "fullDescription": { - "text": "-Wmissing-noreturn clang diagnostic · Learn more", - "markdown": "-Wmissing-noreturn clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmissing-noreturn)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMissingNoreturn", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppIfCanBeReplacedByConstexprIf", - "shortDescription": { - "text": "If statement with constant condition can be replaced with 'if constexpr'" - }, - "fullDescription": { - "text": "If statement with constant condition can be replaced with 'if constexpr'", - "markdown": "If statement with constant condition can be replaced with 'if constexpr'" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppIfCanBeReplacedByConstexprIf", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Common Practices and Code Improvements", - "index": 16, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyHicppUseNoexcept", - "shortDescription": { - "text": "hicpp-use-noexcept clang-tidy check" - }, - "fullDescription": { - "text": "hicpp-use-noexcept clang-tidy check · Learn more", - "markdown": "hicpp-use-noexcept clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/use-noexcept.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyHicppUseNoexcept", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS0458", - "shortDescription": { - "text": "The result of the expression is always 'null' of nullable type" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/misc/cs0458)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS0458", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnusedButSetParameter", - "shortDescription": { - "text": "unused-but-set-parameter clang diagnostic" - }, - "fullDescription": { - "text": "-Wunused-but-set-parameter clang diagnostic · Learn more", - "markdown": "-Wunused-but-set-parameter clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunused-but-set-parameter)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnusedButSetParameter", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppDefaultCaseNotHandledInSwitchStatement", - "shortDescription": { - "text": "Default case is not handled in a switch statement" - }, - "fullDescription": { - "text": "Default case is not handled in a switch statement", - "markdown": "Default case is not handled in a switch statement" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppDefaultCaseNotHandledInSwitchStatement", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticShadowFieldInConstructorModified", - "shortDescription": { - "text": "shadow-field-in-constructor-modified clang diagnostic" - }, - "fullDescription": { - "text": "-Wshadow-field-in-constructor-modified clang diagnostic · Learn more", - "markdown": "-Wshadow-field-in-constructor-modified clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wshadow-field-in-constructor-modified)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticShadowFieldInConstructorModified", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NotOverriddenInSpecificCulture", - "shortDescription": { - "text": "Resource is not overridden in specific culture" - }, - "fullDescription": { - "text": "Resource is not overridden in one or more specific cultures Learn more...", - "markdown": "Resource is not overridden in one or more specific cultures [Learn more...](https://www.jetbrains.com/help/rider/NotOverriddenInSpecificCulture.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NotOverriddenInSpecificCulture", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "ResX/Potential Code Quality Issues", - "index": 68, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NonReadonlyMemberInGetHashCode", - "shortDescription": { - "text": "Non-readonly type member referenced in 'GetHashCode()'" - }, - "fullDescription": { - "text": "Non-readonly field or auto-property referenced in 'GetHashCode()' Learn more...", - "markdown": "Non-readonly field or auto-property referenced in 'GetHashCode()' [Learn more...](https://www.jetbrains.com/help/rider/NonReadonlyMemberInGetHashCode.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NonReadonlyMemberInGetHashCode", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyMiscConfusableIdentifiers", - "shortDescription": { - "text": "misc-confusable-identifiers clang-tidy check" - }, - "fullDescription": { - "text": "misc-confusable-identifiers clang-tidy check · Learn more", - "markdown": "misc-confusable-identifiers clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/confusable-identifiers.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyMiscConfusableIdentifiers", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticNonportableSystemIncludePath", - "shortDescription": { - "text": "nonportable-system-include-path clang diagnostic" - }, - "fullDescription": { - "text": "-Wnonportable-system-include-path clang diagnostic · Learn more", - "markdown": "-Wnonportable-system-include-path clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnonportable-system-include-path)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticNonportableSystemIncludePath", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCertMsc30C", - "shortDescription": { - "text": "cert-msc30-c clang-tidy check" - }, - "fullDescription": { - "text": "cert-msc30-c clang-tidy check · Learn more", - "markdown": "cert-msc30-c clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/msc30-c.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCertMsc30C", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPragmaOnceOutsideHeader", - "shortDescription": { - "text": "pragma-once-outside-header clang diagnostic" - }, - "fullDescription": { - "text": "-Wpragma-once-outside-header clang diagnostic · Learn more", - "markdown": "-Wpragma-once-outside-header clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpragma-once-outside-header)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPragmaOnceOutsideHeader", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticAtomicAlignment", - "shortDescription": { - "text": "atomic-alignment clang diagnostic" - }, - "fullDescription": { - "text": "-Watomic-alignment clang diagnostic · Learn more", - "markdown": "-Watomic-alignment clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#watomic-alignment)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticAtomicAlignment", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnusedAnonymousMethodSignature", - "shortDescription": { - "text": "Anonymous method signature is not necessary" - }, - "fullDescription": { - "text": "Specifying signature in an anonymous method is not necessary because none of its parameters are used in the body", - "markdown": "Specifying signature in an anonymous method is not necessary because none of its parameters are used in the body" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "UnusedAnonymousMethodSignature", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS0469", - "shortDescription": { - "text": "'goto case' value is not implicitly convertible to required type" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/ms228370.aspx)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS0469", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMissingExceptionSpec", - "shortDescription": { - "text": "missing-exception-spec clang diagnostic" - }, - "fullDescription": { - "text": "-Wmissing-exception-spec clang diagnostic · Learn more", - "markdown": "-Wmissing-exception-spec clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmissing-exception-spec)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMissingExceptionSpec", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPoisonSystemDirectories", - "shortDescription": { - "text": "poison-system-directories clang diagnostic" - }, - "fullDescription": { - "text": "-Wpoison-system-directories clang diagnostic · Learn more", - "markdown": "-Wpoison-system-directories clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpoison-system-directories)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPoisonSystemDirectories", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS0464", - "shortDescription": { - "text": "Comparing with null of nullable value type always produces 'false'" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/misc/cs0464)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS0464", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS0465", - "shortDescription": { - "text": "Introducing a 'Finalize' method can interfere with destructor invocation" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/02wtfwbt.aspx)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS0465", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnusedLambdaCapture", - "shortDescription": { - "text": "unused-lambda-capture clang diagnostic" - }, - "fullDescription": { - "text": "-Wunused-lambda-capture clang diagnostic · Learn more", - "markdown": "-Wunused-lambda-capture clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunused-lambda-capture)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnusedLambdaCapture", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticFormat", - "shortDescription": { - "text": "format clang diagnostic" - }, - "fullDescription": { - "text": "-Wformat clang diagnostic · Learn more", - "markdown": "-Wformat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wformat)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticFormat", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticIgnoredReferenceQualifiers", - "shortDescription": { - "text": "ignored-reference-qualifiers clang diagnostic" - }, - "fullDescription": { - "text": "-Wignored-reference-qualifiers clang diagnostic · Learn more", - "markdown": "-Wignored-reference-qualifiers clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wignored-reference-qualifiers)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticIgnoredReferenceQualifiers", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPreCpp2cCompatPedantic", - "shortDescription": { - "text": "pre-c++2c-compat-pedantic clang diagnostic" - }, - "fullDescription": { - "text": "-Wpre-c++2c-compat-pedantic clang diagnostic · Learn more", - "markdown": "-Wpre-c++2c-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpre-c-2c-compat-pedantic)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPreCpp2cCompatPedantic", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.EmptyGridLengthDefinition", - "shortDescription": { - "text": "Grid length definition must not be empty" - }, - "fullDescription": { - "text": "Grid length definition must not be empty", - "markdown": "Grid length definition must not be empty" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "Xaml.EmptyGridLengthDefinition", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Code Notification", - "index": 5, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBUseMethodAny.1", - "shortDescription": { - "text": "Use method Any()" - }, - "fullDescription": { - "text": "$seq$.Count() > 0", - "markdown": "$seq$.Count() \\> 0" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBUseMethodAny.1", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS7095", - "shortDescription": { - "text": "Filter expression is a constant, consider removing the filter" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS7095", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBUseMethodAny.2", - "shortDescription": { - "text": "Use method Any()" - }, - "fullDescription": { - "text": "$seq$.Count() >= 1", - "markdown": "$seq$.Count() \\>= 1" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBUseMethodAny.2", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBUseMethodAny.3", - "shortDescription": { - "text": "Use method Any()" - }, - "fullDescription": { - "text": "$seq$.Count() = 0", - "markdown": "$seq$.Count() = 0" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBUseMethodAny.3", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBUseMethodAny.4", - "shortDescription": { - "text": "Use method Any()" - }, - "fullDescription": { - "text": "$seq$.Count() <= 0", - "markdown": "$seq$.Count() \\<= 0" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBUseMethodAny.4", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBUseMethodAny.5", - "shortDescription": { - "text": "Use method Any()" - }, - "fullDescription": { - "text": "$seq$.Count() < 1", - "markdown": "$seq$.Count() \\< 1" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBUseMethodAny.5", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUsedButMarkedUnused", - "shortDescription": { - "text": "used-but-marked-unused clang diagnostic" - }, - "fullDescription": { - "text": "-Wused-but-marked-unused clang diagnostic · Learn more", - "markdown": "-Wused-but-marked-unused clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wused-but-marked-unused)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUsedButMarkedUnused", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticOverloadedShiftOpParentheses", - "shortDescription": { - "text": "overloaded-shift-op-parentheses clang diagnostic" - }, - "fullDescription": { - "text": "-Woverloaded-shift-op-parentheses clang diagnostic · Learn more", - "markdown": "-Woverloaded-shift-op-parentheses clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#woverloaded-shift-op-parentheses)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticOverloadedShiftOpParentheses", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "FSharpInterpolatedString", - "shortDescription": { - "text": "Format string can be replaced with an interpolated string" - }, - "fullDescription": { - "text": "Format string can be replaced with an interpolated string.", - "markdown": "Format string can be replaced with an interpolated string." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "FSharpInterpolatedString", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "F#/Redundancies in Code", - "index": 73, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithFieldKeyword", - "shortDescription": { - "text": "Replace with 'field' keyword" - }, - "fullDescription": { - "text": "Replace explicit field declaration with a 'field' keyword usage in corresponding property declaration (anonymous field)", - "markdown": "Replace explicit field declaration with a 'field' keyword usage in corresponding property declaration (anonymous field)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithFieldKeyword", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ArrangeTypeModifiers", - "shortDescription": { - "text": "Use explicit or implicit modifier definition for types" - }, - "fullDescription": { - "text": "'internal' modifier can be safely added/removed from types without changing code semantics Learn more...", - "markdown": "'internal' modifier can be safely added/removed from types without changing code semantics [Learn more...](https://www.jetbrains.com/help/rider/ArrangeTypeModifiers.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "ArrangeTypeModifiers", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Syntax Style", - "index": 21, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticNonModularIncludeInFrameworkModule", - "shortDescription": { - "text": "non-modular-include-in-framework-module clang diagnostic" - }, - "fullDescription": { - "text": "-Wnon-modular-include-in-framework-module clang diagnostic · Learn more", - "markdown": "-Wnon-modular-include-in-framework-module clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnon-modular-include-in-framework-module)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticNonModularIncludeInFrameworkModule", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "LocalFunctionHidesMethod", - "shortDescription": { - "text": "Local function hides method" - }, - "fullDescription": { - "text": "Local function has the same name as a method and hides it", - "markdown": "Local function has the same name as a method and hides it" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "LocalFunctionHidesMethod", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.LoadSceneAmbiguousSceneName", - "shortDescription": { - "text": "Short scene name is not unique" - }, - "fullDescription": { - "text": "There are several scenes with the same name in the Unity build settings. Only scene with smallest index will be used.", - "markdown": "There are several scenes with the same name in the Unity build settings. Only scene with smallest index will be used." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.LoadSceneAmbiguousSceneName", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.LoadSceneDisabledSceneName", - "shortDescription": { - "text": "Scene is disabled in the build settings" - }, - "fullDescription": { - "text": "Scene is disabled in the Unity build settings, so it could not be loaded", - "markdown": "Scene is disabled in the Unity build settings, so it could not be loaded" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.LoadSceneDisabledSceneName", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.BurstStringFormatInvalidArgument", - "shortDescription": { - "text": "Burst: String.Format(format, ...) invalid argument type" - }, - "fullDescription": { - "text": "Burst: String.Format(format, ...) invalid argument type", - "markdown": "Burst: String.Format(format, ...) invalid argument type" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.BurstStringFormatInvalidArgument", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity Burst Compiler Warnings", - "index": 57, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReturnTypeCanBeNotNullable", - "shortDescription": { - "text": "Return type of a function can be made non-nullable" - }, - "fullDescription": { - "text": "Function's return type is declared as nullable but it never returns nullable values", - "markdown": "Function's return type is declared as nullable but it never returns nullable values" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "ReturnTypeCanBeNotNullable", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDefaultedFunctionDeleted", - "shortDescription": { - "text": "defaulted-function-deleted clang diagnostic" - }, - "fullDescription": { - "text": "-Wdefaulted-function-deleted clang diagnostic · Learn more", - "markdown": "-Wdefaulted-function-deleted clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdefaulted-function-deleted)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDefaultedFunctionDeleted", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MissingBodyTag", - "shortDescription": { - "text": "Important tags or attributes missing (missing <body>)" - }, - "fullDescription": { - "text": "<([)html(]) $attr1$>$cont$", - "markdown": "\\<(\\[)html(\\]) $attr1$\\>$cont$" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "MissingBodyTag", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HTML/Common Practices and Code Improvements", - "index": 74, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppOutParameterMustBeWritten", - "shortDescription": { - "text": "The 'out' parameter must be assigned" - }, - "fullDescription": { - "text": "In HLSL 'out' parameters must be assigned before exiting the function", - "markdown": "In HLSL 'out' parameters must be assigned before exiting the function" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppOutParameterMustBeWritten", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Compiler Warnings", - "index": 75, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.BindingWithContextNotResolved", - "shortDescription": { - "text": "Unresolved binding path when DataContext is known" - }, - "fullDescription": { - "text": "Unresolved binding path when DataContext for data binding is specified, but symbol cannot be found", - "markdown": "Unresolved binding path when DataContext for data binding is specified, but symbol cannot be found" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Xaml.BindingWithContextNotResolved", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Code Notification", - "index": 5, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppWarningDirective", - "shortDescription": { - "text": "#warning directive" - }, - "fullDescription": { - "text": "#warning preprocessor directive", - "markdown": "#warning preprocessor directive" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppWarningDirective", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Compiler Warnings", - "index": 75, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticOutOfScopeFunction", - "shortDescription": { - "text": "out-of-scope-function clang diagnostic" - }, - "fullDescription": { - "text": "-Wout-of-scope-function clang diagnostic · Learn more", - "markdown": "-Wout-of-scope-function clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wout-of-scope-function)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticOutOfScopeFunction", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ArrangeConstructorOrDestructorBody", - "shortDescription": { - "text": "Use preferred body style (convert into constructor or destructor with preferred body style)" - }, - "fullDescription": { - "text": "Use expression or block body Learn more...", - "markdown": "Use expression or block body [Learn more...](https://www.jetbrains.com/help/rider/ArrangeConstructorOrDestructorBody.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "ArrangeConstructorOrDestructorBody", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Syntax Style", - "index": 21, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Html.TagShouldNotBeSelfClosed", - "shortDescription": { - "text": "Wrong self-closed tag" - }, - "fullDescription": { - "text": "Wrong self-closed tag in HTML and related technologies", - "markdown": "Wrong self-closed tag in HTML and related technologies" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Html.TagShouldNotBeSelfClosed", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HTML/Potential Code Quality Issues", - "index": 54, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticModuleConflict", - "shortDescription": { - "text": "module-conflict clang diagnostic" - }, - "fullDescription": { - "text": "-Wmodule-conflict clang diagnostic · Learn more", - "markdown": "-Wmodule-conflict clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmodule-conflict)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticModuleConflict", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantExtendsListEntry", - "shortDescription": { - "text": "Redundant class or interface specification in base types list" - }, - "fullDescription": { - "text": "Type is either mentioned in the base types list of other part or it is an interface and appears as other type's base and contains no explicit implementations Learn more...", - "markdown": "Type is either mentioned in the base types list of other part or it is an interface and appears as other type's base and contains no explicit implementations [Learn more...](https://www.jetbrains.com/help/rider/RedundantExtendsListEntry.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "RedundantExtendsListEntry", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReturnValueOfPureMethodIsNotUsed", - "shortDescription": { - "text": "Return value of pure method is not used" - }, - "fullDescription": { - "text": "Return value of pure method is not used Learn more...", - "markdown": "Return value of pure method is not used [Learn more...](https://www.jetbrains.com/help/rider/ReturnValueOfPureMethodIsNotUsed.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "ReturnValueOfPureMethodIsNotUsed", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticFormatOverflowNonKprintf", - "shortDescription": { - "text": "format-overflow-non-kprintf clang diagnostic" - }, - "fullDescription": { - "text": "-Wformat-overflow-non-kprintf clang diagnostic · Learn more", - "markdown": "-Wformat-overflow-non-kprintf clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wformat-overflow-non-kprintf)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticFormatOverflowNonKprintf", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticConfigMacros", - "shortDescription": { - "text": "config-macros clang diagnostic" - }, - "fullDescription": { - "text": "-Wconfig-macros clang diagnostic · Learn more", - "markdown": "-Wconfig-macros clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wconfig-macros)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticConfigMacros", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDocumentationUnknownCommand", - "shortDescription": { - "text": "documentation-unknown-command clang diagnostic" - }, - "fullDescription": { - "text": "-Wdocumentation-unknown-command clang diagnostic · Learn more", - "markdown": "-Wdocumentation-unknown-command clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdocumentation-unknown-command)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDocumentationUnknownCommand", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EmptyStatement", - "shortDescription": { - "text": "Empty statement is redundant" - }, - "fullDescription": { - "text": "Empty statement is redundant Learn more...", - "markdown": "Empty statement is redundant [Learn more...](https://www.jetbrains.com/help/rider/EmptyStatement.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "EmptyStatement", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NotAccessedPositionalProperty.Local", - "shortDescription": { - "text": "Non-accessed positional property (private accessibility)" - }, - "fullDescription": { - "text": "Positional property is never accessed for reading Learn more...", - "markdown": "Positional property is never accessed for reading [Learn more...](https://www.jetbrains.com/help/rider/NotAccessedPositionalProperty.Local.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NotAccessedPositionalProperty.Local", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticAliasTemplateInDeclarationName", - "shortDescription": { - "text": "alias-template-in-declaration-name clang diagnostic" - }, - "fullDescription": { - "text": "-Walias-template-in-declaration-name clang diagnostic · Learn more", - "markdown": "-Walias-template-in-declaration-name clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#walias-template-in-declaration-name)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticAliasTemplateInDeclarationName", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.IncorrectMethodSignatureInStringLiteral", - "shortDescription": { - "text": "Method referenced in string literal does not have the expected signature" - }, - "fullDescription": { - "text": "Method referenced in string literal does not have the expected signature.", - "markdown": "Method referenced in string literal does not have the expected signature." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.IncorrectMethodSignatureInStringLiteral", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.RedundantFreezeAttribute", - "shortDescription": { - "text": "Redundant 'Freeze' attribute" - }, - "fullDescription": { - "text": "Freeze attribute is not used and can be safely removed", - "markdown": "Freeze attribute is not used and can be safely removed" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Xaml.RedundantFreezeAttribute", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Redundancies in Code", - "index": 77, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnassignedGetOnlyAutoProperty", - "shortDescription": { - "text": "Get-only auto-property is never assigned" - }, - "fullDescription": { - "text": "Auto-property without setter has no initializer or is never assigned in constructor Learn more...", - "markdown": "Auto-property without setter has no initializer or is never assigned in constructor [Learn more...](https://www.jetbrains.com/help/rider/UnassignedGetOnlyAutoProperty.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "UnassignedGetOnlyAutoProperty", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1007", - "shortDescription": { - "text": "RoslynAnalyzers Add braces" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1007", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "StringSpanComparison", - "shortDescription": { - "text": "Possibly wrong string comparison: spans are only equal when pointing to the same memory location" - }, - "fullDescription": { - "text": "Possibly wrong string comparison: spans are only equal when pointing to the same memory location. Spans from freshly created or static strings are unlikely to be equal to other spans, probably you want to compare chars/bytes instead. Learn more...", - "markdown": "Possibly wrong string comparison: spans are only equal when pointing to the same memory location. Spans from freshly created or static strings are unlikely to be equal to other spans, probably you want to compare chars/bytes instead. [Learn more...](https://www.jetbrains.com/help/rider/StringSpanComparison.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "StringSpanComparison", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1008", - "shortDescription": { - "text": "RoslynAnalyzers [deprecated] Use explicit type instead of 'var' (when the type is not obvious)" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1008", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1009", - "shortDescription": { - "text": "RoslynAnalyzers [deprecated] Use explicit type instead of 'var' (foreach variable)" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1009", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppUE4BlueprintCallableFunctionMayBeStatic", - "shortDescription": { - "text": "BlueprintCallable function can be made static" - }, - "fullDescription": { - "text": "BlueprintCallable function can be made static", - "markdown": "BlueprintCallable function can be made static" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppUE4BlueprintCallableFunctionMayBeStatic", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Unreal Engine", - "index": 6, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1003", - "shortDescription": { - "text": "RoslynAnalyzers Add braces to if-else (when expression spans over multiple lines)" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "RCS1003", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1004", - "shortDescription": { - "text": "RoslynAnalyzers Remove braces from if-else" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1004", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1005", - "shortDescription": { - "text": "RoslynAnalyzers Simplify nested using statement" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1005", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneUnhandledSelfAssignment", - "shortDescription": { - "text": "bugprone-unhandled-self-assignment clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-unhandled-self-assignment clang-tidy check · Learn more", - "markdown": "bugprone-unhandled-self-assignment clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/unhandled-self-assignment.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneUnhandledSelfAssignment", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1006", - "shortDescription": { - "text": "RoslynAnalyzers Merge 'else' with nested 'if'" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1006", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneSuspiciousMemoryComparison", - "shortDescription": { - "text": "bugprone-suspicious-memory-comparison clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-suspicious-memory-comparison clang-tidy check · Learn more", - "markdown": "bugprone-suspicious-memory-comparison clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/suspicious-memory-comparison.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneSuspiciousMemoryComparison", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1001", - "shortDescription": { - "text": "RoslynAnalyzers Add braces (when expression spans over multiple lines)" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "RCS1001", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1002", - "shortDescription": { - "text": "RoslynAnalyzers Remove braces" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1002", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AssignNullToNotNullAttribute", - "shortDescription": { - "text": "Possible 'null' assignment to non-nullable entity" - }, - "fullDescription": { - "text": "An expression that can have 'null' value is assigned to an entity marked with 'Value cannot be null' attribute. In particular, this can happen when passing such value to a method whose parameter is marked with 'Value cannot be null' attribute. Learn more...", - "markdown": "An expression that can have 'null' value is assigned to an entity marked with 'Value cannot be null' attribute. In particular, this can happen when passing such value to a method whose parameter is marked with 'Value cannot be null' attribute. [Learn more...](https://www.jetbrains.com/help/rider/AssignNullToNotNullAttribute.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "AssignNullToNotNullAttribute", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Constraints Violations", - "index": 80, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyModernizeUseStdPrint", - "shortDescription": { - "text": "modernize-use-std-print clang-tidy check" - }, - "fullDescription": { - "text": "modernize-use-std-print clang-tidy check · Learn more", - "markdown": "modernize-use-std-print clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-std-print.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyModernizeUseStdPrint", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneIncorrectEnableIf", - "shortDescription": { - "text": "bugprone-incorrect-enable-if clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-incorrect-enable-if clang-tidy check · Learn more", - "markdown": "bugprone-incorrect-enable-if clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/incorrect-enable-if.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneIncorrectEnableIf", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppDeclarationSpecifierWithoutDeclarators", - "shortDescription": { - "text": "Declaration specifier with no declarators" - }, - "fullDescription": { - "text": "A declaration specifier is ignored when there are no declarators", - "markdown": "A declaration specifier is ignored when there are no declarators" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppDeclarationSpecifierWithoutDeclarators", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDuplicateMethodArg", - "shortDescription": { - "text": "duplicate-method-arg clang diagnostic" - }, - "fullDescription": { - "text": "-Wduplicate-method-arg clang diagnostic · Learn more", - "markdown": "-Wduplicate-method-arg clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wduplicate-method-arg)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDuplicateMethodArg", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "WebConfig.ModuleQualificationResolve", - "shortDescription": { - "text": "Module qualification required" - }, - "fullDescription": { - "text": "Module qualification required for type resolution", - "markdown": "Module qualification required for type resolution" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "WebConfig.ModuleQualificationResolve", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Web.Config/Potential Code Quality Issues", - "index": 82, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCppcoreguidelinesNonPrivateMemberVariablesInClasses", - "shortDescription": { - "text": "cppcoreguidelines-non-private-member-variables-in-classes clang-tidy check" - }, - "fullDescription": { - "text": "cppcoreguidelines-non-private-member-variables-in-classes clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-non-private-member-variables-in-classes clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/non-private-member-variables-in-classes.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCppcoreguidelinesNonPrivateMemberVariablesInClasses", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerOsxCocoaSelfInit", - "shortDescription": { - "text": "osx.cocoa.SelfInit clang static analyzer check" - }, - "fullDescription": { - "text": "osx.cocoa.SelfInit clang static analyzer check · Learn more", - "markdown": "osx.cocoa.SelfInit clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerOsxCocoaSelfInit", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IntroduceOptionalParameters.Global", - "shortDescription": { - "text": "Introduce optional parameters (non-private accessibility)" - }, - "fullDescription": { - "text": "Introduce optional parameters to overload method Learn more...", - "markdown": "Introduce optional parameters to overload method [Learn more...](https://www.jetbrains.com/help/rider/IntroduceOptionalParameters.Global.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IntroduceOptionalParameters.Global", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCppcoreguidelinesNoexceptSwap", - "shortDescription": { - "text": "cppcoreguidelines-noexcept-swap clang-tidy check" - }, - "fullDescription": { - "text": "cppcoreguidelines-noexcept-swap clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-noexcept-swap clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/noexcept-swap.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyCppcoreguidelinesNoexceptSwap", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "DoubleNegationOperator", - "shortDescription": { - "text": "Double negation operator" - }, - "fullDescription": { - "text": "Double negation is meaningless bool b = !!condition; Learn more...", - "markdown": "Double negation is meaningless\n\n```\nbool b = !!condition;\n```\n\n[Learn more...](https://www.jetbrains.com/help/rider/DoubleNegationOperator.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "DoubleNegationOperator", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyGoogleBuildNamespaces", - "shortDescription": { - "text": "google-build-namespaces clang-tidy check" - }, - "fullDescription": { - "text": "google-build-namespaces clang-tidy check · Learn more", - "markdown": "google-build-namespaces clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/google/build-namespaces.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyGoogleBuildNamespaces", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneForwardingReferenceOverload", - "shortDescription": { - "text": "bugprone-forwarding-reference-overload clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-forwarding-reference-overload clang-tidy check · Learn more", - "markdown": "bugprone-forwarding-reference-overload clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/forwarding-reference-overload.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneForwardingReferenceOverload", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyModernizeUseNullptr", - "shortDescription": { - "text": "modernize-use-nullptr clang-tidy check" - }, - "fullDescription": { - "text": "modernize-use-nullptr clang-tidy check · Learn more", - "markdown": "modernize-use-nullptr clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-nullptr.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyModernizeUseNullptr", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1031", - "shortDescription": { - "text": "RoslynAnalyzers Remove unnecessary braces in switch section" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1031", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithSingleCallToSingle", - "shortDescription": { - "text": "Replace with single call to Single(..)" - }, - "fullDescription": { - "text": "$seq$.Where($x$ => $expr$).Single()", - "markdown": "$seq$.Where($x$ =\\> $expr$).Single()" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithSingleCallToSingle", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyModernizePassByValue", - "shortDescription": { - "text": "modernize-pass-by-value clang-tidy check" - }, - "fullDescription": { - "text": "modernize-pass-by-value clang-tidy check · Learn more", - "markdown": "modernize-pass-by-value clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/pass-by-value.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyModernizePassByValue", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticRegister", - "shortDescription": { - "text": "register clang diagnostic" - }, - "fullDescription": { - "text": "-Wregister clang diagnostic · Learn more", - "markdown": "-Wregister clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wregister)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticRegister", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS0472", - "shortDescription": { - "text": "The result of the expression is always 'true' or 'false' since a value of value type is never equal to 'null'" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/misc/cs0472)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS0472", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.BurstFunctionSignatureContainsManagedTypes", - "shortDescription": { - "text": "Function signature cannot contain managed types" - }, - "fullDescription": { - "text": "Function signature cannot contain managed types", - "markdown": "Function signature cannot contain managed types" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.BurstFunctionSignatureContainsManagedTypes", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity Burst Compiler Warnings", - "index": 57, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticGnuConditionalOmittedOperand", - "shortDescription": { - "text": "gnu-conditional-omitted-operand clang diagnostic" - }, - "fullDescription": { - "text": "-Wgnu-conditional-omitted-operand clang diagnostic · Learn more", - "markdown": "-Wgnu-conditional-omitted-operand clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-conditional-omitted-operand)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticGnuConditionalOmittedOperand", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticClassVarargs", - "shortDescription": { - "text": "class-varargs clang diagnostic" - }, - "fullDescription": { - "text": "-Wclass-varargs clang diagnostic · Learn more", - "markdown": "-Wclass-varargs clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wclass-varargs)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticClassVarargs", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1021", - "shortDescription": { - "text": "RoslynAnalyzers Convert lambda expression body to expression body" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1021", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1020", - "shortDescription": { - "text": "RoslynAnalyzers Simplify Nullable<T> to T?" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1020", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCastFunctionType", - "shortDescription": { - "text": "cast-function-type clang diagnostic" - }, - "fullDescription": { - "text": "-Wcast-function-type clang diagnostic · Learn more", - "markdown": "-Wcast-function-type clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcast-function-type)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCastFunctionType", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppWrongIndentSize", - "shortDescription": { - "text": "Incorrect indent (incorrect indent size)" - }, - "fullDescription": { - "text": "Incorrect indent size", - "markdown": "Incorrect indent size" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppWrongIndentSize", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Formatting", - "index": 28, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ArrangeRedundantParentheses", - "shortDescription": { - "text": "Remove redundant parentheses" - }, - "fullDescription": { - "text": "Parentheses can be safely removed from expressions without changing code semantics Learn more...", - "markdown": "Parentheses can be safely removed from expressions without changing code semantics [Learn more...](https://www.jetbrains.com/help/rider/ArrangeRedundantParentheses.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ArrangeRedundantParentheses", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Syntax Style", - "index": 21, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.ResourceFilePathCaseMismatch", - "shortDescription": { - "text": "Path to resource is case-sensitive" - }, - "fullDescription": { - "text": "Path to resource is case-sensitive", - "markdown": "Path to resource is case-sensitive" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Xaml.ResourceFilePathCaseMismatch", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Code Notification", - "index": 5, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithLastOrDefault.2", - "shortDescription": { - "text": "Replace with LastOrDefault($args$)" - }, - "fullDescription": { - "text": "$expr$ && $seq$.Any($args$) ? $seq$.Last($args$) : null", - "markdown": "$expr$ \\&\\& $seq$.Any($args$) ? $seq$.Last($args$) : null" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithLastOrDefault.2", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithLastOrDefault.3", - "shortDescription": { - "text": "Replace with LastOrDefault($args$)" - }, - "fullDescription": { - "text": "$seq$.Any($args$) ? $seq$.Last($args$) : default($T$)", - "markdown": "$seq$.Any($args$) ? $seq$.Last($args$) : default($T$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithLastOrDefault.3", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PossibleInvalidCastExceptionInForeachLoop", - "shortDescription": { - "text": "Possible 'System.InvalidCastException' in foreach loop" - }, - "fullDescription": { - "text": "Possible cast expression of incompatible type Learn more...", - "markdown": "Possible cast expression of incompatible type [Learn more...](https://www.jetbrains.com/help/rider/PossibleInvalidCastExceptionInForeachLoop.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "PossibleInvalidCastExceptionInForeachLoop", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMissingPrototypes", - "shortDescription": { - "text": "missing-prototypes clang diagnostic" - }, - "fullDescription": { - "text": "-Wmissing-prototypes clang diagnostic · Learn more", - "markdown": "-Wmissing-prototypes clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmissing-prototypes)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMissingPrototypes", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithLastOrDefault.1", - "shortDescription": { - "text": "Replace with LastOrDefault($args$)" - }, - "fullDescription": { - "text": "$seq$.Any($args$) ? $seq$.Last($args$) : null", - "markdown": "$seq$.Any($args$) ? $seq$.Last($args$) : null" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithLastOrDefault.1", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1018", - "shortDescription": { - "text": "RoslynAnalyzers Add/remove accessibility modifiers" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1018", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PossiblyImpureMethodCallOnReadonlyVariable", - "shortDescription": { - "text": "Possibly impure struct method is called on readonly variable: struct value always copied before invocation" - }, - "fullDescription": { - "text": "Possibly impure struct instance method or 'this ref' extension method is called on readonly field/in parameter/ref readonly return: struct value always copied before invocation Learn more...", - "markdown": "Possibly impure struct instance method or 'this ref' extension method is called on readonly field/in parameter/ref readonly return: struct value always copied before invocation [Learn more...](https://www.jetbrains.com/help/rider/PossiblyImpureMethodCallOnReadonlyVariable.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "PossiblyImpureMethodCallOnReadonlyVariable", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1019", - "shortDescription": { - "text": "RoslynAnalyzers Order modifiers" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1019", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyAndroidCloexecPipe2", - "shortDescription": { - "text": "android-cloexec-pipe2 clang-tidy check" - }, - "fullDescription": { - "text": "android-cloexec-pipe2 clang-tidy check · Learn more", - "markdown": "android-cloexec-pipe2 clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/android/cloexec-pipe2.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyAndroidCloexecPipe2", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithLastOrDefault.4", - "shortDescription": { - "text": "Replace with LastOrDefault($args$)" - }, - "fullDescription": { - "text": "$expr$ && $seq$.Any($args$) ? $seq$.Last($args$) : default($T$)", - "markdown": "$expr$ \\&\\& $seq$.Any($args$) ? $seq$.Last($args$) : default($T$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithLastOrDefault.4", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1014", - "shortDescription": { - "text": "RoslynAnalyzers Use explicitly/implicitly typed array" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1014", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1015", - "shortDescription": { - "text": "RoslynAnalyzers Use nameof operator" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1015", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1016", - "shortDescription": { - "text": "RoslynAnalyzers Use block body or expression body" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1016", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppUE4CodingStandardUClassNamingViolationError", - "shortDescription": { - "text": "Inconsistent Unreal Engine UCLASS Naming" - }, - "fullDescription": { - "text": "Class is declared with UCLASS or USTRUCT macro but its name doesn't match the Unreal Engine's coding standard naming style; this will lead to a build error. This inspection includes three rules: classes inherited from AActor must be prefixed by 'A', classes inherited from UObject must be prefixed by 'U', and USTRUCTS must be prefixed by 'F'.", - "markdown": "Class is declared with UCLASS or USTRUCT macro but its name doesn't match the Unreal Engine's coding standard naming style; this will lead to a build error. This inspection includes three rules: classes inherited from AActor must be prefixed by 'A', classes inherited from UObject must be prefixed by 'U', and USTRUCTS must be prefixed by 'F'." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "CppUE4CodingStandardUClassNamingViolationError", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Unreal Engine", - "index": 6, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMicrosoftTemplate", - "shortDescription": { - "text": "microsoft-template clang diagnostic" - }, - "fullDescription": { - "text": "-Wmicrosoft-template clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-template clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-template)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftTemplate", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.BurstTryNotSupported", - "shortDescription": { - "text": "Try statement is not supported" - }, - "fullDescription": { - "text": "Try statement is not supported", - "markdown": "Try statement is not supported" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.BurstTryNotSupported", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity Burst Compiler Warnings", - "index": 57, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1010", - "shortDescription": { - "text": "RoslynAnalyzers [deprecated] Use 'var' instead of explicit type (when the type is obvious)" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1010", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantEnumCaseLabelForDefaultSection", - "shortDescription": { - "text": "Redundant 'case' label before default section" - }, - "fullDescription": { - "text": "'case' label statement with enum value in front of default section is redundant", - "markdown": "'case' label statement with enum value in front of default section is redundant" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RedundantEnumCaseLabelForDefaultSection", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1012", - "shortDescription": { - "text": "RoslynAnalyzers [deprecated] Use explicit type instead of 'var' (when the type is obvious)" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1012", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1013", - "shortDescription": { - "text": "RoslynAnalyzers Use predefined type" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1013", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppBadParensLineBreaks", - "shortDescription": { - "text": "Incorrect line breaks (around parenthesis)" - }, - "fullDescription": { - "text": "Around parenthesis", - "markdown": "Around parenthesis" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppBadParensLineBreaks", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Formatting", - "index": 28, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyPerformanceTypePromotionInMathFn", - "shortDescription": { - "text": "performance-type-promotion-in-math-fn clang-tidy check" - }, - "fullDescription": { - "text": "performance-type-promotion-in-math-fn clang-tidy check · Learn more", - "markdown": "performance-type-promotion-in-math-fn clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance/type-promotion-in-math-fn.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyPerformanceTypePromotionInMathFn", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnsequenced", - "shortDescription": { - "text": "unsequenced clang diagnostic" - }, - "fullDescription": { - "text": "-Wunsequenced clang diagnostic · Learn more", - "markdown": "-Wunsequenced clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunsequenced)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnsequenced", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDuplicateDeclSpecifier", - "shortDescription": { - "text": "duplicate-decl-specifier clang diagnostic" - }, - "fullDescription": { - "text": "-Wduplicate-decl-specifier clang diagnostic · Learn more", - "markdown": "-Wduplicate-decl-specifier clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wduplicate-decl-specifier)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDuplicateDeclSpecifier", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppBadSymbolSpaces", - "shortDescription": { - "text": "Incorrect spacing (around operator symbols)" - }, - "fullDescription": { - "text": "Around operator symbols", - "markdown": "Around operator symbols" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppBadSymbolSpaces", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Formatting", - "index": 28, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCppcoreguidelinesExplicitVirtualFunctions", - "shortDescription": { - "text": "cppcoreguidelines-explicit-virtual-functions clang-tidy check" - }, - "fullDescription": { - "text": "cppcoreguidelines-explicit-virtual-functions clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-explicit-virtual-functions clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/explicit-virtual-functions.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCppcoreguidelinesExplicitVirtualFunctions", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ROS0003", - "shortDescription": { - "text": "RoslynAnalyzers Analyzer requires config option to be specified" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ROS0003", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ROS0002", - "shortDescription": { - "text": "RoslynAnalyzers Analyzer option is obsolete" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "ROS0002", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithOfType.Any.2", - "shortDescription": { - "text": "Replace with OfType<T>().Any() (replace with OfType<T>().Any(..))" - }, - "fullDescription": { - "text": "$seq$.Select($x$ => $x$ as $T$).Any($y$ => $y$ != null && $expr$)", - "markdown": "$seq$.Select($x$ =\\> $x$ as $T$).Any($y$ =\\> $y$ != null \\&\\& $expr$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithOfType.Any.2", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VulnerableApi", - "shortDescription": { - "text": "Vulnerable API usage" - }, - "fullDescription": { - "text": "Reports usages of Vulnerable APIs in imported dependencies Learn more...", - "markdown": "Reports usages of Vulnerable APIs in imported dependencies [Learn more...](https://www.jetbrains.com/help/rider/VulnerableApi.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "VulnerableApi", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Security", - "index": 87, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithOfType.Any.1", - "shortDescription": { - "text": "Replace with OfType<T>().Any()" - }, - "fullDescription": { - "text": "$seq$.Select($x$ => $x$ as $T$).Any($y$ => $y$ != null)", - "markdown": "$seq$.Select($x$ =\\> $x$ as $T$).Any($y$ =\\> $y$ != null)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithOfType.Any.1", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PossibleInvalidOperationException", - "shortDescription": { - "text": "Possible 'System.InvalidOperationException'" - }, - "fullDescription": { - "text": "Possible call to method is invalid for the object's current state Learn more...", - "markdown": "Possible call to method is invalid for the object's current state [Learn more...](https://www.jetbrains.com/help/rider/PossibleInvalidOperationException.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "PossibleInvalidOperationException", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp11NarrowingConstReference", - "shortDescription": { - "text": "c++11-narrowing-const-reference clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++11-narrowing-const-reference clang diagnostic · Learn more", - "markdown": "-Wc++11-narrowing-const-reference clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-11-narrowing-const-reference)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp11NarrowingConstReference", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticIndependentClassAttribute", - "shortDescription": { - "text": "IndependentClass-attribute clang diagnostic" - }, - "fullDescription": { - "text": "-WIndependentClass-attribute clang diagnostic · Learn more", - "markdown": "-WIndependentClass-attribute clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wIndependentClass-attribute)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticIndependentClassAttribute", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDeprecatedOfast", - "shortDescription": { - "text": "deprecated-ofast clang diagnostic" - }, - "fullDescription": { - "text": "-Wdeprecated-ofast clang diagnostic · Learn more", - "markdown": "-Wdeprecated-ofast clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-ofast)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedOfast", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticSignedEnumBitfield", - "shortDescription": { - "text": "signed-enum-bitfield clang diagnostic" - }, - "fullDescription": { - "text": "-Wsigned-enum-bitfield clang diagnostic · Learn more", - "markdown": "-Wsigned-enum-bitfield clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wsigned-enum-bitfield)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticSignedEnumBitfield", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ArrangeVarKeywordsInDeconstructingDeclaration", - "shortDescription": { - "text": "Join or separate 'var' in deconstruction declarations" - }, - "fullDescription": { - "text": "Use preferred code style to check joined/separate 'var' usages in deconstruction declarations Learn more...", - "markdown": "Use preferred code style to check joined/separate 'var' usages in deconstruction declarations [Learn more...](https://www.jetbrains.com/help/rider/ArrangeVarKeywordsInDeconstructingDeclaration.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "ArrangeVarKeywordsInDeconstructingDeclaration", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Syntax Style", - "index": 21, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerApiModelingTrustReturnsNonnull", - "shortDescription": { - "text": "apiModeling.TrustReturnsNonnull clang static analyzer check" - }, - "fullDescription": { - "text": "apiModeling.TrustReturnsNonnull clang static analyzer check · Learn more", - "markdown": "apiModeling.TrustReturnsNonnull clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerApiModelingTrustReturnsNonnull", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.InstantiateWithoutParent", - "shortDescription": { - "text": "Setting 'parent' property immediately after object instantiation is inefficient" - }, - "fullDescription": { - "text": "Instantiating a Unity object and setting the 'parent' property as separate operations is inefficient, as the transform hierarchy is created and immediately replaced. Combine setting the 'parent' property with the call to instantiate the object. Learn more...", - "markdown": "Instantiating a Unity object and setting the 'parent' property as separate operations is inefficient, as the transform hierarchy is created and immediately replaced. Combine setting the 'parent' property with the call to instantiate the object. [Learn more...](https://github.com/JetBrains/resharper-unity/wiki/Avoid-using-Object.Instantiate-without-“Transform-Parent”-parameter-and-using-SetParent-later)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.InstantiateWithoutParent", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticShiftSignOverflow", - "shortDescription": { - "text": "shift-sign-overflow clang diagnostic" - }, - "fullDescription": { - "text": "-Wshift-sign-overflow clang diagnostic · Learn more", - "markdown": "-Wshift-sign-overflow clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wshift-sign-overflow)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticShiftSignOverflow", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticShadowFieldInConstructor", - "shortDescription": { - "text": "shadow-field-in-constructor clang diagnostic" - }, - "fullDescription": { - "text": "-Wshadow-field-in-constructor clang diagnostic · Learn more", - "markdown": "-Wshadow-field-in-constructor clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wshadow-field-in-constructor)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticShadowFieldInConstructor", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseObjectOrCollectionInitializer", - "shortDescription": { - "text": "Use object or collection initializer when possible" - }, - "fullDescription": { - "text": "Suggest to replace object sequential assignments to newly created object fields by object initializer Learn more...", - "markdown": "Suggest to replace object sequential assignments to newly created object fields by object initializer [Learn more...](https://www.jetbrains.com/help/rider/UseObjectOrCollectionInitializer.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "UseObjectOrCollectionInitializer", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MemberCanBePrivate.Global", - "shortDescription": { - "text": "Member can be made private (non-private accessibility)" - }, - "fullDescription": { - "text": "Member can be made private Learn more...", - "markdown": "Member can be made private [Learn more...](https://www.jetbrains.com/help/rider/MemberCanBePrivate.Global.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "MemberCanBePrivate.Global", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppDiscardedPostfixOperatorResult", - "shortDescription": { - "text": "Result of a postfix operator is discarded" - }, - "fullDescription": { - "text": "Result of a postfix operator is discarded. It might be more efficient to use a prefix form of the operator.", - "markdown": "Result of a postfix operator is discarded. It might be more efficient to use a prefix form of the operator." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppDiscardedPostfixOperatorResult", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Common Practices and Code Improvements", - "index": 16, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCertInt09C", - "shortDescription": { - "text": "cert-int09-c clang-tidy check" - }, - "fullDescription": { - "text": "cert-int09-c clang-tidy check · Learn more", - "markdown": "cert-int09-c clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/int09-c.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCertInt09C", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseCollectionCountProperty", - "shortDescription": { - "text": "Use collection's count property" - }, - "fullDescription": { - "text": "Usage of 'Enumerable.Count()' method can be replaced with direct collection count property access Learn more...", - "markdown": "Usage of 'Enumerable.Count()' method can be replaced with direct collection count property access [Learn more...](https://www.jetbrains.com/help/rider/UseCollectionCountProperty.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "UseCollectionCountProperty", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPragmaPack", - "shortDescription": { - "text": "pragma-pack clang diagnostic" - }, - "fullDescription": { - "text": "-Wpragma-pack clang diagnostic · Learn more", - "markdown": "-Wpragma-pack clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpragma-pack)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPragmaPack", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyGoogleReadabilityTodo", - "shortDescription": { - "text": "google-readability-todo clang-tidy check" - }, - "fullDescription": { - "text": "google-readability-todo clang-tidy check · Learn more", - "markdown": "google-readability-todo clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/google/readability-todo.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyGoogleReadabilityTodo", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDeprecatedType", - "shortDescription": { - "text": "deprecated-type clang diagnostic" - }, - "fullDescription": { - "text": "-Wdeprecated-type clang diagnostic · Learn more", - "markdown": "-Wdeprecated-type clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-type)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedType", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppEmptyDeclaration", - "shortDescription": { - "text": "Declaration does not declare anything" - }, - "fullDescription": { - "text": "A declaration does not declare anything", - "markdown": "A declaration does not declare anything" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppEmptyDeclaration", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticStrictPrimaryTemplateShadow", - "shortDescription": { - "text": "strict-primary-template-shadow clang diagnostic" - }, - "fullDescription": { - "text": "-Wstrict-primary-template-shadow clang diagnostic · Learn more", - "markdown": "-Wstrict-primary-template-shadow clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wstrict-primary-template-shadow)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticStrictPrimaryTemplateShadow", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppIncompatiblePointerConversion", - "shortDescription": { - "text": "Implicit conversion to incompatible pointer type" - }, - "fullDescription": { - "text": "Implicit conversion to incompatible pointer type", - "markdown": "Implicit conversion to incompatible pointer type" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppIncompatiblePointerConversion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerCoreUninitializedCapturedBlockVariable", - "shortDescription": { - "text": "core.uninitialized.CapturedBlockVariable clang static analyzer check" - }, - "fullDescription": { - "text": "core.uninitialized.CapturedBlockVariable clang static analyzer check · Learn more", - "markdown": "core.uninitialized.CapturedBlockVariable clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerCoreUninitializedCapturedBlockVariable", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyMiscIncludeCleaner", - "shortDescription": { - "text": "misc-include-cleaner clang-tidy check" - }, - "fullDescription": { - "text": "misc-include-cleaner clang-tidy check · Learn more", - "markdown": "misc-include-cleaner clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/include-cleaner.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyMiscIncludeCleaner", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityAvoidNestedConditionalOperator", - "shortDescription": { - "text": "readability-avoid-nested-conditional-operator clang-tidy check" - }, - "fullDescription": { - "text": "readability-avoid-nested-conditional-operator clang-tidy check · Learn more", - "markdown": "readability-avoid-nested-conditional-operator clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/avoid-nested-conditional-operator.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityAvoidNestedConditionalOperator", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticStringConversion", - "shortDescription": { - "text": "string-conversion clang diagnostic" - }, - "fullDescription": { - "text": "-Wstring-conversion clang diagnostic · Learn more", - "markdown": "-Wstring-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wstring-conversion)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticStringConversion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerUnixStream", - "shortDescription": { - "text": "unix.Stream clang static analyzer check" - }, - "fullDescription": { - "text": "unix.Stream clang static analyzer check · Learn more", - "markdown": "unix.Stream clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerUnixStream", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NotNullOrRequiredMemberIsNotInitialized", - "shortDescription": { - "text": "Non-nullable or required member is not initialized at constructor exit" - }, - "fullDescription": { - "text": "Non-nullable or required type member is not initialized in any execution path of the constructor Learn more...", - "markdown": "Non-nullable or required type member is not initialized in any execution path of the constructor [Learn more...](https://www.jetbrains.com/help/rider/NotNullOrRequiredMemberIsNotInitialized.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NotNullOrRequiredMemberIsNotInitialized", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Constraints Violations", - "index": 80, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseUnsignedRightShiftOperator", - "shortDescription": { - "text": "Use unsigned right shift operator '>>>'" - }, - "fullDescription": { - "text": "Use unsigned right shift operator '>>>' instead of manual casting and shifting Learn more...", - "markdown": "Use unsigned right shift operator '\\>\\>\\>' instead of manual casting and shifting [Learn more...](https://www.jetbrains.com/help/rider/UseUnsignedRightShiftOperator.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UseUnsignedRightShiftOperator", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDeprecatedDeclarations", - "shortDescription": { - "text": "deprecated-declarations clang diagnostic" - }, - "fullDescription": { - "text": "-Wdeprecated-declarations clang diagnostic · Learn more", - "markdown": "-Wdeprecated-declarations clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-declarations)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedDeclarations", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnreachableCodeLoopIncrement", - "shortDescription": { - "text": "unreachable-code-loop-increment clang diagnostic" - }, - "fullDescription": { - "text": "-Wunreachable-code-loop-increment clang diagnostic · Learn more", - "markdown": "-Wunreachable-code-loop-increment clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunreachable-code-loop-increment)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnreachableCodeLoopIncrement", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBReplaceWithOfType.Last.1", - "shortDescription": { - "text": "Replace with OfType<T>().Last() (replace with OfType(Of ..)().Last())" - }, - "fullDescription": { - "text": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).Last(Function ($y$) $y$ IsNot Nothing)", - "markdown": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).Last(Function ($y$) $y$ IsNot Nothing)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBReplaceWithOfType.Last.1", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "OneWayOperationContractWithReturnType", - "shortDescription": { - "text": "One way operations must not return values" - }, - "fullDescription": { - "text": "Methods marked with OperationContract attribute as OneWay operations must not return values Learn more...", - "markdown": "Methods marked with OperationContract attribute as OneWay operations must not return values [Learn more...](https://www.jetbrains.com/help/rider/OneWayOperationContractWithReturnType.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "OneWayOperationContractWithReturnType", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBReplaceWithOfType.Last.2", - "shortDescription": { - "text": "Replace with OfType<T>().Last() (replace with OfType(Of ..)().Last(..))" - }, - "fullDescription": { - "text": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).Last(Function ($y$) $y$ IsNot Nothing AndAlso $expr$)", - "markdown": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).Last(Function ($y$) $y$ IsNot Nothing AndAlso $expr$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBReplaceWithOfType.Last.2", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AnnotateCanBeNullTypeMember", - "shortDescription": { - "text": "Declaration nullability inferred (type member is inferred to be nullable)" - }, - "fullDescription": { - "text": "Type member is inferred to be nullable: consider annotating it with [CanBeNull] or [ItemCanBeNull] attribute", - "markdown": "Type member is inferred to be nullable: consider annotating it with \\[CanBeNull\\] or \\[ItemCanBeNull\\] attribute" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "AnnotateCanBeNullTypeMember", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseThrowIfNullMethod", - "shortDescription": { - "text": "Use 'ArgumentNullException.ThrowIfNull'" - }, - "fullDescription": { - "text": "Replace throwing of 'ArgumentNullException' object with an invocation of the helper method", - "markdown": "Replace throwing of 'ArgumentNullException' object with an invocation of the helper method" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UseThrowIfNullMethod", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConvertToAutoPropertyWhenPossible", - "shortDescription": { - "text": "Convert property into auto-property (when possible)" - }, - "fullDescription": { - "text": "Converts property declaration into C# auto-property syntax", - "markdown": "Converts property declaration into C# auto-property syntax" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ConvertToAutoPropertyWhenPossible", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1094", - "shortDescription": { - "text": "RoslynAnalyzers Declare using directive on top level" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1094", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SimplifyStringInterpolation", - "shortDescription": { - "text": "Use format specifier in interpolated strings" - }, - "fullDescription": { - "text": "'.ToString()' call could be replaced with a format specifier Learn more...", - "markdown": "'.ToString()' call could be replaced with a format specifier [Learn more...](https://www.jetbrains.com/help/rider/SimplifyStringInterpolation.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "SimplifyStringInterpolation", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1096", - "shortDescription": { - "text": "RoslynAnalyzers Use 'HasFlag' method or bitwise operator" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1096", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1097", - "shortDescription": { - "text": "RoslynAnalyzers Remove redundant 'ToString' call" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1097", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1090", - "shortDescription": { - "text": "RoslynAnalyzers Add/remove 'ConfigureAwait(false)' call" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1090", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1091", - "shortDescription": { - "text": "RoslynAnalyzers [deprecated] Remove empty region" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1091", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1093", - "shortDescription": { - "text": "RoslynAnalyzers File contains no code" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1093", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MoveVariableDeclarationInsideLoopCondition", - "shortDescription": { - "text": "Move variable declaration inside loop condition" - }, - "fullDescription": { - "text": "Declare variable inside a loop condition using pattern matching syntax to reduce its scope and avoid doing a C-style assignment as a side effect", - "markdown": "Declare variable inside a loop condition using pattern matching syntax to reduce its scope and avoid doing a C-style assignment as a side effect" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "MoveVariableDeclarationInsideLoopCondition", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticGnuIncludeNext", - "shortDescription": { - "text": "gnu-include-next clang diagnostic" - }, - "fullDescription": { - "text": "-Wgnu-include-next clang diagnostic · Learn more", - "markdown": "-Wgnu-include-next clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-include-next)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticGnuIncludeNext", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReferenceEqualsWithValueType", - "shortDescription": { - "text": "'Object.ReferenceEquals' is always false because it is called with value type" - }, - "fullDescription": { - "text": "'Object.ReferenceEquals' is always false because it is called with value type", - "markdown": "'Object.ReferenceEquals' is always false because it is called with value type" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "ReferenceEqualsWithValueType", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SimplifyConditionalTernaryExpression", - "shortDescription": { - "text": "Simplify conditional ternary expression" - }, - "fullDescription": { - "text": "Ternary expression contains 'true' or 'false' in result branch, for example \r\n condition ? true : elseBranch\r\n condition ? thenBranch : true\r\n Learn more...", - "markdown": "Ternary expression contains 'true' or 'false' in result branch, for example\n\n```\n\r\n condition ? true : elseBranch\r\n condition ? thenBranch : true\r\n \n```\n\n[Learn more...](https://www.jetbrains.com/help/rider/SimplifyConditionalTernaryExpression.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "SimplifyConditionalTernaryExpression", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticEmbeddedDirective", - "shortDescription": { - "text": "embedded-directive clang diagnostic" - }, - "fullDescription": { - "text": "-Wembedded-directive clang diagnostic · Learn more", - "markdown": "-Wembedded-directive clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wembedded-directive)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticEmbeddedDirective", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerOptinOsxOSObjectCStyleCast", - "shortDescription": { - "text": "optin.osx.OSObjectCStyleCast clang static analyzer check" - }, - "fullDescription": { - "text": "optin.osx.OSObjectCStyleCast clang static analyzer check · Learn more", - "markdown": "optin.osx.OSObjectCStyleCast clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerOptinOsxOSObjectCStyleCast", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1089", - "shortDescription": { - "text": "RoslynAnalyzers Use --/++ operator instead of assignment" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1089", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "BadAttributeBracketsSpaces", - "shortDescription": { - "text": "Incorrect spacing (around attributes)" - }, - "fullDescription": { - "text": "Around attributes Learn more...", - "markdown": "Around attributes [Learn more...](https://www.jetbrains.com/help/rider/BadAttributeBracketsSpaces.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "BadAttributeBracketsSpaces", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Formatting", - "index": 24, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Mvc.AreaNotResolved", - "shortDescription": { - "text": "MVC (unknown area)" - }, - "fullDescription": { - "text": "Unknown ASP.NET MVC Area", - "markdown": "Unknown ASP.NET MVC Area" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Mvc.AreaNotResolved", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Aspx/Potential Code Quality Issues", - "index": 64, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1084", - "shortDescription": { - "text": "RoslynAnalyzers Use coalesce expression instead of conditional expression" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1084", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1085", - "shortDescription": { - "text": "RoslynAnalyzers Use auto-implemented property" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1085", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyPerformanceImplicitConversionInLoop", - "shortDescription": { - "text": "performance-implicit-conversion-in-loop clang-tidy check" - }, - "fullDescription": { - "text": "performance-implicit-conversion-in-loop clang-tidy check · Learn more", - "markdown": "performance-implicit-conversion-in-loop clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance/implicit-conversion-in-loop.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyPerformanceImplicitConversionInLoop", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1080", - "shortDescription": { - "text": "RoslynAnalyzers Use 'Count/Length' property instead of 'Any' method" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1080", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Asp.ResolveWarning", - "shortDescription": { - "text": "ASP.NET Resolve Warning" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Asp.ResolveWarning", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Aspx/Potential Code Quality Issues", - "index": 64, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1081", - "shortDescription": { - "text": "RoslynAnalyzers Split variable declaration" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1081", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1021FadeOut", - "shortDescription": { - "text": "RoslynAnalyzers Convert lambda expression body to expression body" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1021FadeOut", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilitySimplifyBooleanExpr", - "shortDescription": { - "text": "readability-simplify-boolean-expr clang-tidy check" - }, - "fullDescription": { - "text": "readability-simplify-boolean-expr clang-tidy check · Learn more", - "markdown": "readability-simplify-boolean-expr clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/simplify-boolean-expr.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilitySimplifyBooleanExpr", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMalformedWarningCheck", - "shortDescription": { - "text": "malformed-warning-check clang diagnostic" - }, - "fullDescription": { - "text": "-Wmalformed-warning-check clang diagnostic · Learn more", - "markdown": "-Wmalformed-warning-check clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmalformed-warning-check)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMalformedWarningCheck", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDeprecatedAltivecSrcCompat", - "shortDescription": { - "text": "deprecated-altivec-src-compat clang diagnostic" - }, - "fullDescription": { - "text": "-Wdeprecated-altivec-src-compat clang diagnostic · Learn more", - "markdown": "-Wdeprecated-altivec-src-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-altivec-src-compat)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedAltivecSrcCompat", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticExtraSemiStmt", - "shortDescription": { - "text": "extra-semi-stmt clang diagnostic" - }, - "fullDescription": { - "text": "-Wextra-semi-stmt clang diagnostic · Learn more", - "markdown": "-Wextra-semi-stmt clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wextra-semi-stmt)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticExtraSemiStmt", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "InternalOrPrivateMemberNotDocumented", - "shortDescription": { - "text": "Missing XML comment for private or internal type or member" - }, - "fullDescription": { - "text": "Missing XML comment for private or internal type or member", - "markdown": "Missing XML comment for private or internal type or member" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "InternalOrPrivateMemberNotDocumented", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnusedConstVariable", - "shortDescription": { - "text": "unused-const-variable clang diagnostic" - }, - "fullDescription": { - "text": "-Wunused-const-variable clang diagnostic · Learn more", - "markdown": "-Wunused-const-variable clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunused-const-variable)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnusedConstVariable", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CanSimplifyIsAssignableFrom", - "shortDescription": { - "text": "Simplify 'IsInstanceOfType()' invocation" - }, - "fullDescription": { - "text": "IsInstanceOfType() invocation can be simplified with 'is' operator Learn more...", - "markdown": "IsInstanceOfType() invocation can be simplified with 'is' operator [Learn more...](https://www.jetbrains.com/help/rider/CanSimplifyIsAssignableFrom.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CanSimplifyIsAssignableFrom", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPreC11Compat", - "shortDescription": { - "text": "pre-c11-compat clang diagnostic" - }, - "fullDescription": { - "text": "-Wpre-c11-compat clang diagnostic · Learn more", - "markdown": "-Wpre-c11-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpre-c11-compat)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPreC11Compat", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IsExpressionAlwaysFalse", - "shortDescription": { - "text": "The expression of 'is' operator is never of the provided type" - }, - "fullDescription": { - "text": "The expression of 'is' operator is never of the provided type", - "markdown": "The expression of 'is' operator is never of the provided type" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "IsExpressionAlwaysFalse", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDllAttributeOnRedeclaration", - "shortDescription": { - "text": "dll-attribute-on-redeclaration clang diagnostic" - }, - "fullDescription": { - "text": "-Wdll-attribute-on-redeclaration clang diagnostic · Learn more", - "markdown": "-Wdll-attribute-on-redeclaration clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdll-attribute-on-redeclaration)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDllAttributeOnRedeclaration", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1077", - "shortDescription": { - "text": "RoslynAnalyzers Optimize LINQ method call" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "RCS1077", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppUENonExistentInputAction", - "shortDescription": { - "text": "Action with this name does not exist" - }, - "fullDescription": { - "text": "Action with this name does not exist", - "markdown": "Action with this name does not exist" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppUENonExistentInputAction", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Unreal Engine", - "index": 6, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1078", - "shortDescription": { - "text": "RoslynAnalyzers Use \"\" or 'string.Empty'" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1078", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticArcPerformSelectorLeaks", - "shortDescription": { - "text": "arc-performSelector-leaks clang diagnostic" - }, - "fullDescription": { - "text": "-Warc-performSelector-leaks clang diagnostic · Learn more", - "markdown": "-Warc-performSelector-leaks clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#warc-performSelector-leaks)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticArcPerformSelectorLeaks", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1079", - "shortDescription": { - "text": "RoslynAnalyzers Throwing of new NotImplementedException" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1079", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyModernizeAvoidCArrays", - "shortDescription": { - "text": "modernize-avoid-c-arrays clang-tidy check" - }, - "fullDescription": { - "text": "modernize-avoid-c-arrays clang-tidy check · Learn more", - "markdown": "modernize-avoid-c-arrays clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/avoid-c-arrays.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyModernizeAvoidCArrays", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppBadControlBracesIndent", - "shortDescription": { - "text": "Incorrect indent (around statement braces)" - }, - "fullDescription": { - "text": "Around statement braces", - "markdown": "Around statement braces" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppBadControlBracesIndent", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Formatting", - "index": 28, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticAnonEnumEnumConversion", - "shortDescription": { - "text": "anon-enum-enum-conversion clang diagnostic" - }, - "fullDescription": { - "text": "-Wanon-enum-enum-conversion clang diagnostic · Learn more", - "markdown": "-Wanon-enum-enum-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wanon-enum-enum-conversion)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticAnonEnumEnumConversion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppCoroutineCallResolveError", - "shortDescription": { - "text": "Cannot resolve a required coroutine function" - }, - "fullDescription": { - "text": "A coroutine-related function which is required by the C++20 standard cannot be resolved", - "markdown": "A coroutine-related function which is required by the C++20 standard cannot be resolved" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppCoroutineCallResolveError", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Compiler Warnings", - "index": 75, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppRemoveRedundantBraces", - "shortDescription": { - "text": "Use preferred braces style (remove redundant braces)" - }, - "fullDescription": { - "text": "Braces can be safely removed without changing code semantics", - "markdown": "Braces can be safely removed without changing code semantics" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppRemoveRedundantBraces", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Syntax Style", - "index": 91, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppDefaultIsUsedAsIdentifier", - "shortDescription": { - "text": "Keyword 'default' is used as identifier" - }, - "fullDescription": { - "text": "'default' is a keyword in the C++ standard and cannot be used as an identifier", - "markdown": "'default' is a keyword in the C++ standard and cannot be used as an identifier" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppDefaultIsUsedAsIdentifier", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticIncompleteUmbrella", - "shortDescription": { - "text": "incomplete-umbrella clang diagnostic" - }, - "fullDescription": { - "text": "-Wincomplete-umbrella clang diagnostic · Learn more", - "markdown": "-Wincomplete-umbrella clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wincomplete-umbrella)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticIncompleteUmbrella", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ArgumentsStyleOther", - "shortDescription": { - "text": "Use preferred argument style" - }, - "fullDescription": { - "text": "Prefer using named/positional argument for all expressions except literal, named and anonymous function Learn more...", - "markdown": "Prefer using named/positional argument for all expressions except literal, named and anonymous function [Learn more...](https://www.jetbrains.com/help/rider/ArgumentsStyleOther.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ArgumentsStyleOther", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Syntax Style", - "index": 21, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantDefaultMemberInitializer", - "shortDescription": { - "text": "Redundant member initializer" - }, - "fullDescription": { - "text": "Initializing field/property/event with default value is redundant Learn more...", - "markdown": "Initializing field/property/event with default value is redundant [Learn more...](https://www.jetbrains.com/help/rider/RedundantDefaultMemberInitializer.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantDefaultMemberInitializer", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.RedundantXamarinFormsClassDeclaration", - "shortDescription": { - "text": "Resource cannot be accessed by class name because of x:Key attribute" - }, - "fullDescription": { - "text": "Resource cannot be accessed by class name because of x:Key attribute", - "markdown": "Resource cannot be accessed by class name because of x:Key attribute" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Xaml.RedundantXamarinFormsClassDeclaration", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Potential Code Quality Issues", - "index": 45, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnusedLabel", - "shortDescription": { - "text": "Unused label" - }, - "fullDescription": { - "text": "Label is never referenced", - "markdown": "Label is never referenced" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "UnusedLabel", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDeprecatedCopy", - "shortDescription": { - "text": "deprecated-copy clang diagnostic" - }, - "fullDescription": { - "text": "-Wdeprecated-copy clang diagnostic · Learn more", - "markdown": "-Wdeprecated-copy clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-copy)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedCopy", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppUESourceFileWithoutStandardLibrary", - "shortDescription": { - "text": "C/C++ standard library headers not found" - }, - "fullDescription": { - "text": "C++ standard library headers cannot be resolved in an Unreal Engine source file. You might need to regenerate the project files.", - "markdown": "C++ standard library headers cannot be resolved in an Unreal Engine source file. You might need to regenerate the project files." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "CppUESourceFileWithoutStandardLibrary", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Unreal Engine", - "index": 6, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticHigherPrecisionFp", - "shortDescription": { - "text": "higher-precision-fp clang diagnostic" - }, - "fullDescription": { - "text": "-Whigher-precision-fp clang diagnostic · Learn more", - "markdown": "-Whigher-precision-fp clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#whigher-precision-fp)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticHigherPrecisionFp", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDelegatingCtorCycles", - "shortDescription": { - "text": "delegating-ctor-cycles clang diagnostic" - }, - "fullDescription": { - "text": "-Wdelegating-ctor-cycles clang diagnostic · Learn more", - "markdown": "-Wdelegating-ctor-cycles clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdelegating-ctor-cycles)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDelegatingCtorCycles", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Razor.AssemblyNotResolved", - "shortDescription": { - "text": "Unknown Razor assembly" - }, - "fullDescription": { - "text": "Unknown Razor assembly", - "markdown": "Unknown Razor assembly" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Razor.AssemblyNotResolved", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Razor/Potential Code Quality Issues", - "index": 93, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyModernizeMakeShared", - "shortDescription": { - "text": "modernize-make-shared clang-tidy check" - }, - "fullDescription": { - "text": "modernize-make-shared clang-tidy check · Learn more", - "markdown": "modernize-make-shared clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/make-shared.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyModernizeMakeShared", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCompoundTokenSplitBySpace", - "shortDescription": { - "text": "compound-token-split-by-space clang diagnostic" - }, - "fullDescription": { - "text": "-Wcompound-token-split-by-space clang diagnostic · Learn more", - "markdown": "-Wcompound-token-split-by-space clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcompound-token-split-by-space)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCompoundTokenSplitBySpace", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticAbstractFinalClass", - "shortDescription": { - "text": "abstract-final-class clang diagnostic" - }, - "fullDescription": { - "text": "-Wabstract-final-class clang diagnostic · Learn more", - "markdown": "-Wabstract-final-class clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wabstract-final-class)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticAbstractFinalClass", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NestedStringInterpolation", - "shortDescription": { - "text": "Nested string interpolation can be inlined" - }, - "fullDescription": { - "text": "Nested string interpolation can be inlined into containing one", - "markdown": "Nested string interpolation can be inlined into containing one" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "NestedStringInterpolation", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReadAccessInDoubleCheckLocking", - "shortDescription": { - "text": "Possible incorrect implementation of Double-Check Locking pattern. Read access to checked field." - }, - "fullDescription": { - "text": "Possible incorrect implementation of Double-Check Locking pattern. Read access to checked field. Learn more...", - "markdown": "Possible incorrect implementation of Double-Check Locking pattern. Read access to checked field. [Learn more...](https://www.jetbrains.com/help/rider/ReadAccessInDoubleCheckLocking.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "ReadAccessInDoubleCheckLocking", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCertMsc50Cpp", - "shortDescription": { - "text": "cert-msc50-cpp clang-tidy check" - }, - "fullDescription": { - "text": "cert-msc50-cpp clang-tidy check · Learn more", - "markdown": "cert-msc50-cpp clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/msc50-cpp.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCertMsc50Cpp", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticLiteralRange", - "shortDescription": { - "text": "literal-range clang diagnostic" - }, - "fullDescription": { - "text": "-Wliteral-range clang diagnostic · Learn more", - "markdown": "-Wliteral-range clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wliteral-range)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticLiteralRange", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "TooWideLocalVariableScope", - "shortDescription": { - "text": "Local variable has too wide declaration scope" - }, - "fullDescription": { - "text": "Local variable is declared in a wider scope than the scope of its actual use Learn more...", - "markdown": "Local variable is declared in a wider scope than the scope of its actual use [Learn more...](https://www.jetbrains.com/help/rider/TooWideLocalVariableScope.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "TooWideLocalVariableScope", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppUnmatchedPragmaEndRegionDirective", - "shortDescription": { - "text": "Missing a matching '#pragma region' directive" - }, - "fullDescription": { - "text": "A '#pragma endregion' directive is missing a matching '#pragma region' directive", - "markdown": "A '#pragma endregion' directive is missing a matching '#pragma region' directive" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppUnmatchedPragmaEndRegionDirective", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AspOdsMethodReferenceResolveError", - "shortDescription": { - "text": "Object data source method resolve problem" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "AspOdsMethodReferenceResolveError", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Aspx/Potential Code Quality Issues", - "index": 64, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit.RangeToValueIsNotReachable", - "shortDescription": { - "text": "NUnit. The maximum range value is not reachable with the step value." - }, - "fullDescription": { - "text": "NUnit. The maximum value of [Range] is not reachable, check range and step values. Learn more...", - "markdown": "NUnit. The maximum value of \\[Range\\] is not reachable, check range and step values. [Learn more...](https://www.jetbrains.com/help/rider/NUnit.RangeToValueIsNotReachable.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NUnit.RangeToValueIsNotReachable", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/NUnit", - "index": 26, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticQualifiedVoidReturnType", - "shortDescription": { - "text": "qualified-void-return-type clang diagnostic" - }, - "fullDescription": { - "text": "-Wqualified-void-return-type clang diagnostic · Learn more", - "markdown": "-Wqualified-void-return-type clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wqualified-void-return-type)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticQualifiedVoidReturnType", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA3001", - "shortDescription": { - "text": "RoslynAnalyzers Review code for SQL injection vulnerabilities" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA3001", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1098", - "shortDescription": { - "text": "RoslynAnalyzers Constant values should be placed on right side of comparisons" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1098", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1099", - "shortDescription": { - "text": "RoslynAnalyzers Default label should be the last label in a switch section" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1099", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA3002", - "shortDescription": { - "text": "RoslynAnalyzers Review code for XSS vulnerabilities" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA3002", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticStaticFloatInit", - "shortDescription": { - "text": "static-float-init clang diagnostic" - }, - "fullDescription": { - "text": "-Wstatic-float-init clang diagnostic · Learn more", - "markdown": "-Wstatic-float-init clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wstatic-float-init)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticStaticFloatInit", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA3003", - "shortDescription": { - "text": "RoslynAnalyzers Review code for file path injection vulnerabilities" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA3003", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Web.MappedPath", - "shortDescription": { - "text": "Mapped path" - }, - "fullDescription": { - "text": "Path is mapped to a different path in project settings", - "markdown": "Path is mapped to a different path in project settings" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "Web.MappedPath", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Web.Config/Code Notification", - "index": 94, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA3004", - "shortDescription": { - "text": "RoslynAnalyzers Review code for information disclosure vulnerabilities" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA3004", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA3005", - "shortDescription": { - "text": "RoslynAnalyzers Review code for LDAP injection vulnerabilities" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA3005", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1050", - "shortDescription": { - "text": "RoslynAnalyzers Include/omit parentheses when creating new object" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1050", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1051", - "shortDescription": { - "text": "RoslynAnalyzers Add/remove parentheses from condition in conditional operator" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1051", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA3006", - "shortDescription": { - "text": "RoslynAnalyzers Review code for process command injection vulnerabilities" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA3006", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA3007", - "shortDescription": { - "text": "RoslynAnalyzers Review code for open redirect vulnerabilities" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA3007", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1052", - "shortDescription": { - "text": "RoslynAnalyzers Declare each attribute separately" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1052", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCertErr33C", - "shortDescription": { - "text": "cert-err33-c clang-tidy check" - }, - "fullDescription": { - "text": "cert-err33-c clang-tidy check · Learn more", - "markdown": "cert-err33-c clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/err33-c.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyCertErr33C", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA3008", - "shortDescription": { - "text": "RoslynAnalyzers Review code for XPath injection vulnerabilities" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA3008", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneNarrowingConversions", - "shortDescription": { - "text": "bugprone-narrowing-conversions clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-narrowing-conversions clang-tidy check · Learn more", - "markdown": "bugprone-narrowing-conversions clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/narrowing-conversions.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneNarrowingConversions", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA3009", - "shortDescription": { - "text": "RoslynAnalyzers Review code for XML injection vulnerabilities" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA3009", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "BadBracesSpaces", - "shortDescription": { - "text": "Incorrect spacing (around braces)" - }, - "fullDescription": { - "text": "Around braces Learn more...", - "markdown": "Around braces [Learn more...](https://www.jetbrains.com/help/rider/BadBracesSpaces.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "BadBracesSpaces", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Formatting", - "index": 24, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCertErr60Cpp", - "shortDescription": { - "text": "cert-err60-cpp clang-tidy check" - }, - "fullDescription": { - "text": "cert-err60-cpp clang-tidy check · Learn more", - "markdown": "cert-err60-cpp clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/err60-cpp.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyCertErr60Cpp", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CanReplaceCastWithTypeArgument", - "shortDescription": { - "text": "Cast expression can be replaced with explicit type arguments" - }, - "fullDescription": { - "text": "Replace cast expression with explicit type arguments to enhance compile-time safety Learn more...", - "markdown": "Replace cast expression with explicit type arguments to enhance compile-time safety [Learn more...](https://www.jetbrains.com/help/rider/CanReplaceCastWithTypeArgument.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CanReplaceCastWithTypeArgument", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceSliceWithRangeIndexer", - "shortDescription": { - "text": "Replace 'Slice' with range indexer" - }, - "fullDescription": { - "text": "Replace 'Slice' method call with range indexer access", - "markdown": "Replace 'Slice' method call with range indexer access" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceSliceWithRangeIndexer", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1047", - "shortDescription": { - "text": "RoslynAnalyzers Non-asynchronous method name should not end with 'Async'" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1047", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1048", - "shortDescription": { - "text": "RoslynAnalyzers Use lambda expression instead of anonymous method" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1048", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA3010", - "shortDescription": { - "text": "RoslynAnalyzers Review code for XAML injection vulnerabilities" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA3010", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1049", - "shortDescription": { - "text": "RoslynAnalyzers Simplify boolean comparison" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1049", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA3011", - "shortDescription": { - "text": "RoslynAnalyzers Review code for DLL injection vulnerabilities" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA3011", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1043", - "shortDescription": { - "text": "RoslynAnalyzers Remove 'partial' modifier from type with a single part" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1043", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA3012", - "shortDescription": { - "text": "RoslynAnalyzers Review code for regex injection vulnerabilities" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA3012", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1044", - "shortDescription": { - "text": "RoslynAnalyzers Remove original exception from throw statement" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RCS1044", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantPropertyPatternClause", - "shortDescription": { - "text": "Redundant property pattern clause" - }, - "fullDescription": { - "text": "Empty property pattern clause can be omitted", - "markdown": "Empty property pattern clause can be omitted" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RedundantPropertyPatternClause", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1046", - "shortDescription": { - "text": "RoslynAnalyzers Asynchronous method name should end with 'Async'" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1046", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1040", - "shortDescription": { - "text": "RoslynAnalyzers [deprecated] Remove empty 'else' clause" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1040", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1041", - "shortDescription": { - "text": "RoslynAnalyzers [deprecated] Remove empty initializer" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1041", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1042", - "shortDescription": { - "text": "RoslynAnalyzers Remove enum default underlying type" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1042", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerUnixCstringBadSizeArg", - "shortDescription": { - "text": "unix.cstring.BadSizeArg clang static analyzer check" - }, - "fullDescription": { - "text": "unix.cstring.BadSizeArg clang static analyzer check · Learn more", - "markdown": "unix.cstring.BadSizeArg clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerUnixCstringBadSizeArg", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMicrosoftMutableReference", - "shortDescription": { - "text": "microsoft-mutable-reference clang diagnostic" - }, - "fullDescription": { - "text": "-Wmicrosoft-mutable-reference clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-mutable-reference clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-mutable-reference)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftMutableReference", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticRewriteNotBool", - "shortDescription": { - "text": "rewrite-not-bool clang diagnostic" - }, - "fullDescription": { - "text": "-Wrewrite-not-bool clang diagnostic · Learn more", - "markdown": "-Wrewrite-not-bool clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wrewrite-not-bool)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticRewriteNotBool", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppParameterMayBeConst", - "shortDescription": { - "text": "Parameter can be made const" - }, - "fullDescription": { - "text": "Parameter can be made const Learn more...", - "markdown": "Parameter can be made const [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rconst-immutable)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppParameterMayBeConst", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Common Practices and Code Improvements", - "index": 16, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "BadParensLineBreaks", - "shortDescription": { - "text": "Incorrect line breaks (around parenthesis)" - }, - "fullDescription": { - "text": "Around parenthesis Learn more...", - "markdown": "Around parenthesis [Learn more...](https://www.jetbrains.com/help/rider/BadParensLineBreaks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "BadParensLineBreaks", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Formatting", - "index": 24, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPaddedBitfield", - "shortDescription": { - "text": "padded-bitfield clang diagnostic" - }, - "fullDescription": { - "text": "-Wpadded-bitfield clang diagnostic · Learn more", - "markdown": "-Wpadded-bitfield clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpadded-bitfield)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPaddedBitfield", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityFunctionCognitiveComplexity", - "shortDescription": { - "text": "readability-function-cognitive-complexity clang-tidy check" - }, - "fullDescription": { - "text": "readability-function-cognitive-complexity clang-tidy check · Learn more", - "markdown": "readability-function-cognitive-complexity clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/function-cognitive-complexity.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityFunctionCognitiveComplexity", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppIncompleteSwitchStatement", - "shortDescription": { - "text": "Possibly erroneous incomplete switch-statement" - }, - "fullDescription": { - "text": "The switch statement doesn't cover the whole range of the enumeration used", - "markdown": "The switch statement doesn't cover the whole range of the enumeration used" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppIncompleteSwitchStatement", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyPortabilityRestrictSystemIncludes", - "shortDescription": { - "text": "portability-restrict-system-includes clang-tidy check" - }, - "fullDescription": { - "text": "portability-restrict-system-includes clang-tidy check · Learn more", - "markdown": "portability-restrict-system-includes clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/portability/restrict-system-includes.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyPortabilityRestrictSystemIncludes", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AssignmentInConditionalExpression", - "shortDescription": { - "text": "Assignment in conditional expression" - }, - "fullDescription": { - "text": "Assignment in conditional expression; did you mean to use '==' instead of '='? Learn more...", - "markdown": "Assignment in conditional expression; did you mean to use '==' instead of '='? [Learn more...](https://www.jetbrains.com/help/rider/AssignmentInConditionalExpression.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "AssignmentInConditionalExpression", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "WebConfig.TypeNotResolved", - "shortDescription": { - "text": "Cannot resolve symbol" - }, - "fullDescription": { - "text": "Cannot resolve symbol", - "markdown": "Cannot resolve symbol" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "WebConfig.TypeNotResolved", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Web.Config/Potential Code Quality Issues", - "index": 82, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerNullabilityNullableReturnedFromNonnull", - "shortDescription": { - "text": "nullability.NullableReturnedFromNonnull clang static analyzer check" - }, - "fullDescription": { - "text": "nullability.NullableReturnedFromNonnull clang static analyzer check · Learn more", - "markdown": "nullability.NullableReturnedFromNonnull clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerNullabilityNullableReturnedFromNonnull", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1036", - "shortDescription": { - "text": "RoslynAnalyzers [deprecated] Remove unnecessary blank line" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1036", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1037", - "shortDescription": { - "text": "RoslynAnalyzers Remove trailing white-space" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1037", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1038", - "shortDescription": { - "text": "RoslynAnalyzers [deprecated] Remove empty statement" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1038", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1039", - "shortDescription": { - "text": "RoslynAnalyzers Remove argument list from attribute" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1039", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1032", - "shortDescription": { - "text": "RoslynAnalyzers Remove redundant parentheses" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1032", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1033", - "shortDescription": { - "text": "RoslynAnalyzers Remove redundant boolean literal" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1033", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1034", - "shortDescription": { - "text": "RoslynAnalyzers Remove redundant 'sealed' modifier" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1034", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1035", - "shortDescription": { - "text": "RoslynAnalyzers [deprecated] Remove redundant comma in initializer" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1035", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1200", - "shortDescription": { - "text": "RoslynAnalyzers Avoid using cref tags with a prefix" - }, - "fullDescription": { - "text": "Use of cref tags with prefixes should be avoided, since it prevents the compiler from verifying references and the IDE from updating references during refactorings. It is permissible to suppress this error at a single documentation site if the cref must use a prefix because the type being mentioned is not findable by the compiler. For example, if a cref is mentioning a special attribute in the full framework but you're in a file that compiles against the portable framework, or if you want to reference a type at higher layer of Roslyn, you should suppress the error. You should not suppress the error just because you want to take a shortcut and avoid using the full syntax.", - "markdown": "Use of cref tags with prefixes should be avoided, since it prevents the compiler from verifying references and the IDE from updating references during refactorings. It is permissible to suppress this error at a single documentation site if the cref must use a prefix because the type being mentioned is not findable by the compiler. For example, if a cref is mentioning a special attribute in the full framework but you're in a file that compiles against the portable framework, or if you want to reference a type at higher layer of Roslyn, you should suppress the error. You should not suppress the error just because you want to take a shortcut and avoid using the full syntax." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1200", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1072", - "shortDescription": { - "text": "RoslynAnalyzers [deprecated] Remove empty namespace declaration" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1072", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1073", - "shortDescription": { - "text": "RoslynAnalyzers Convert 'if' to 'return' statement" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1073", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1074", - "shortDescription": { - "text": "RoslynAnalyzers Remove redundant constructor" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1074", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1075", - "shortDescription": { - "text": "RoslynAnalyzers Avoid empty catch clause that catches System.Exception" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RCS1075", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticKeywordCompat", - "shortDescription": { - "text": "keyword-compat clang diagnostic" - }, - "fullDescription": { - "text": "-Wkeyword-compat clang diagnostic · Learn more", - "markdown": "-Wkeyword-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wkeyword-compat)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticKeywordCompat", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1070", - "shortDescription": { - "text": "RoslynAnalyzers Remove redundant default switch section" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1070", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticIntegerOverflow", - "shortDescription": { - "text": "integer-overflow clang diagnostic" - }, - "fullDescription": { - "text": "-Winteger-overflow clang diagnostic · Learn more", - "markdown": "-Winteger-overflow clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winteger-overflow)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticIntegerOverflow", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1071", - "shortDescription": { - "text": "RoslynAnalyzers Remove redundant base constructor call" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1071", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDocumentationDeprecatedSync", - "shortDescription": { - "text": "documentation-deprecated-sync clang diagnostic" - }, - "fullDescription": { - "text": "-Wdocumentation-deprecated-sync clang diagnostic · Learn more", - "markdown": "-Wdocumentation-deprecated-sync clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdocumentation-deprecated-sync)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDocumentationDeprecatedSync", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticExpansionToDefined", - "shortDescription": { - "text": "expansion-to-defined clang diagnostic" - }, - "fullDescription": { - "text": "-Wexpansion-to-defined clang diagnostic · Learn more", - "markdown": "-Wexpansion-to-defined clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wexpansion-to-defined)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticExpansionToDefined", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDllimportStaticFieldDef", - "shortDescription": { - "text": "dllimport-static-field-def clang diagnostic" - }, - "fullDescription": { - "text": "-Wdllimport-static-field-def clang diagnostic · Learn more", - "markdown": "-Wdllimport-static-field-def clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdllimport-static-field-def)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDllimportStaticFieldDef", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.ExpectedComponent", - "shortDescription": { - "text": "Expected a type derived from 'Component' or 'MonoBehaviour'" - }, - "fullDescription": { - "text": "A built-in type derived from 'Component' or a user-defined type derived from 'MonoBehaviour' is expected", - "markdown": "A built-in type derived from 'Component' or a user-defined type derived from 'MonoBehaviour' is expected" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.ExpectedComponent", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "FSharpRedundantNew", - "shortDescription": { - "text": "Redundant 'new' keyword" - }, - "fullDescription": { - "text": "'new' keyword is not required and can be safely removed.", - "markdown": "'new' keyword is not required and can be safely removed." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "FSharpRedundantNew", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "F#/Redundancies in Code", - "index": 73, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SwapViaDeconstruction", - "shortDescription": { - "text": "Use deconstruction to swap variables" - }, - "fullDescription": { - "text": "Replace multiple assignments with single deconstructing assignment to perform swapping", - "markdown": "Replace multiple assignments with single deconstructing assignment to perform swapping" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "SwapViaDeconstruction", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RemoveConstructorInvocation", - "shortDescription": { - "text": "Remove constructor invocation" - }, - "fullDescription": { - "text": "new List<$T$>($seq$).ToArray()", - "markdown": "new List\\<$T$\\>($seq$).ToArray()" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RemoveConstructorInvocation", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1069", - "shortDescription": { - "text": "RoslynAnalyzers Remove unnecessary case label" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1069", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.CompiledBindingMissingDataTypeErrorHighlighting", - "shortDescription": { - "text": "x:DataType not specified for CompiledBinding" - }, - "fullDescription": { - "text": "x:DataType not specified for CompiledBinding", - "markdown": "x:DataType not specified for CompiledBinding" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "Xaml.CompiledBindingMissingDataTypeErrorHighlighting", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Code Notification", - "index": 5, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "InlineOutVariableDeclaration", - "shortDescription": { - "text": "Inline 'out' variable declaration" - }, - "fullDescription": { - "text": "Replace ordinary variable declaration with inline variable declaration under 'out' argument Learn more...", - "markdown": "Replace ordinary variable declaration with inline variable declaration under 'out' argument [Learn more...](https://www.jetbrains.com/help/rider/InlineOutVariableDeclaration.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "InlineOutVariableDeclaration", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1065", - "shortDescription": { - "text": "RoslynAnalyzers [deprecated] Avoid usage of while statement to create an infinite loop" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1065", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1066", - "shortDescription": { - "text": "RoslynAnalyzers [deprecated] Remove empty 'finally' clause" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1066", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1068", - "shortDescription": { - "text": "RoslynAnalyzers Simplify logical negation" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1068", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCertErr34C", - "shortDescription": { - "text": "cert-err34-c clang-tidy check" - }, - "fullDescription": { - "text": "cert-err34-c clang-tidy check · Learn more", - "markdown": "cert-err34-c clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/err34-c.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCertErr34C", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1061", - "shortDescription": { - "text": "RoslynAnalyzers Merge 'if' with nested 'if'" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1061", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBReplaceWithSingleCallToFirstOrDefault", - "shortDescription": { - "text": "Replace with single call to FirstOrDefault(..)" - }, - "fullDescription": { - "text": "$seq$.Where(Function ($x$) $expr$).FirstOrDefault()", - "markdown": "$seq$.Where(Function ($x$) $expr$).FirstOrDefault()" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBReplaceWithSingleCallToFirstOrDefault", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1063", - "shortDescription": { - "text": "RoslynAnalyzers [deprecated] Avoid usage of do statement to create an infinite loop" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1063", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1064", - "shortDescription": { - "text": "RoslynAnalyzers [deprecated] Avoid usage of for statement to create an infinite loop" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1064", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1060", - "shortDescription": { - "text": "RoslynAnalyzers Declare each type in separate file" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1060", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VirtualMemberCallInConstructor", - "shortDescription": { - "text": "Virtual member call in constructor" - }, - "fullDescription": { - "text": "When a virtual method is called, the actual type that executes the method is not selected until run time. When a constructor calls a virtual method, it is possible that the constructor for the instance that invokes the method has not executed. See http://msdn2.microsoft.com/en-us/library/ms182331.aspx. Learn more...", - "markdown": "When a virtual method is called, the actual type that executes the method is not selected until run time. When a constructor calls a virtual method, it is possible that the constructor for the instance that invokes the method has not executed. See <http://msdn2.microsoft.com/en-us/library/ms182331.aspx>. [Learn more...](https://www.jetbrains.com/help/rider/VirtualMemberCallInConstructor.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "VirtualMemberCallInConstructor", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp98Cpp11Compat", - "shortDescription": { - "text": "c++98-c++11-compat clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++98-c++11-compat clang diagnostic · Learn more", - "markdown": "-Wc++98-c++11-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-98-c-11-compat)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp98Cpp11Compat", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnreachableCodeBreak", - "shortDescription": { - "text": "unreachable-code-break clang diagnostic" - }, - "fullDescription": { - "text": "-Wunreachable-code-break clang diagnostic · Learn more", - "markdown": "-Wunreachable-code-break clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunreachable-code-break)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnreachableCodeBreak", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "FSharpDotLambdaCanBeUsed", - "shortDescription": { - "text": "Shorthand lambda can be used" - }, - "fullDescription": { - "text": "Shorthand lambda can be used", - "markdown": "Shorthand lambda can be used" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "FSharpDotLambdaCanBeUsed", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "F#/Redundancies in Code", - "index": 73, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AddressOfMarshalByRefObject", - "shortDescription": { - "text": "Captured field reference of a marshal-by-reference class may cause a runtime exception" - }, - "fullDescription": { - "text": "Captured field reference of a marshal-by-reference class may cause a runtime exception", - "markdown": "Captured field reference of a marshal-by-reference class may cause a runtime exception" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "AddressOfMarshalByRefObject", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AnnotationRedundancyAtValueType", - "shortDescription": { - "text": "Nullability attribute usage with declaration of void or value type" - }, - "fullDescription": { - "text": "Nullability attribute usage with declaration of void or value type does not affect code analysis Learn more...", - "markdown": "Nullability attribute usage with declaration of void or value type does not affect code analysis [Learn more...](https://www.jetbrains.com/help/rider/AnnotationRedundancyAtValueType.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "AnnotationRedundancyAtValueType", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ClearAttributeIsObsolete", - "shortDescription": { - "text": "Obsolete tags and attributes (attribute 'clear' is obsolete)" - }, - "fullDescription": { - "text": "<$tag$ ([)clear=\"$val$\"(]) $a1$>", - "markdown": "\\<$tag$ (\\[)clear=\"$val$\"(\\]) $a1$\\>" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "ClearAttributeIsObsolete", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HTML/Common Practices and Code Improvements", - "index": 74, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantExplicitPositionalPropertyDeclaration", - "shortDescription": { - "text": "Redundant explicit positional property declaration" - }, - "fullDescription": { - "text": "Redundant explicit positional property declaration in record type with primary constructor", - "markdown": "Redundant explicit positional property declaration in record type with primary constructor" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantExplicitPositionalPropertyDeclaration", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1058", - "shortDescription": { - "text": "RoslynAnalyzers Use compound assignment" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1058", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1059", - "shortDescription": { - "text": "RoslynAnalyzers Avoid locking on publicly accessible instance" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RCS1059", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "OperationContractWithoutServiceContract", - "shortDescription": { - "text": "Method is marked as OperationContract but containing type is not marked as ServiceContract" - }, - "fullDescription": { - "text": "Marking method as OperationContract without ServiceContract attribute on the containing type could cause runtime exception", - "markdown": "Marking method as OperationContract without ServiceContract attribute on the containing type could cause runtime exception" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "OperationContractWithoutServiceContract", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1055", - "shortDescription": { - "text": "RoslynAnalyzers Unnecessary semicolon at the end of declaration" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1055", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1056", - "shortDescription": { - "text": "RoslynAnalyzers Avoid usage of using alias directive" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1056", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "BadSquareBracketsSpaces", - "shortDescription": { - "text": "Incorrect spacing (around square brackets within a statement)" - }, - "fullDescription": { - "text": "Around square brackets within a statement Learn more...", - "markdown": "Around square brackets within a statement [Learn more...](https://www.jetbrains.com/help/rider/BadSquareBracketsSpaces.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "BadSquareBracketsSpaces", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Formatting", - "index": 24, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnusedMethodReturnValue.Global", - "shortDescription": { - "text": "Method return value is never used (non-private accessibility)" - }, - "fullDescription": { - "text": "Method return value is never used Learn more...", - "markdown": "Method return value is never used [Learn more...](https://www.jetbrains.com/help/rider/UnusedMethodReturnValue.Global.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "UnusedMethodReturnValue.Global", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticFormatTruncationNonKprintf", - "shortDescription": { - "text": "format-truncation-non-kprintf clang diagnostic" - }, - "fullDescription": { - "text": "-Wformat-truncation-non-kprintf clang diagnostic · Learn more", - "markdown": "-Wformat-truncation-non-kprintf clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wformat-truncation-non-kprintf)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticFormatTruncationNonKprintf", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticInvalidConstexpr", - "shortDescription": { - "text": "invalid-constexpr clang diagnostic" - }, - "fullDescription": { - "text": "-Winvalid-constexpr clang diagnostic · Learn more", - "markdown": "-Winvalid-constexpr clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winvalid-constexpr)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticInvalidConstexpr", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ClearAttributeIsObsolete.All", - "shortDescription": { - "text": "Obsolete tags and attributes (attribute 'clear' is obsolete)" - }, - "fullDescription": { - "text": "<$tag$ ([)clear=all(]) $a1$>", - "markdown": "\\<$tag$ (\\[)clear=all(\\]) $a1$\\>" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "ClearAttributeIsObsolete.All", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HTML/Common Practices and Code Improvements", - "index": 74, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyObjcMissingHash", - "shortDescription": { - "text": "objc-missing-hash clang-tidy check" - }, - "fullDescription": { - "text": "objc-missing-hash clang-tidy check · Learn more", - "markdown": "objc-missing-hash clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/objc/missing-hash.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyObjcMissingHash", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnreachableSwitchArmDueToIntegerAnalysis", - "shortDescription": { - "text": "Heuristically unreachable switch arm according to integer analysis" - }, - "fullDescription": { - "text": "Heuristically unreachable switch arm according to integer analysis Learn more...", - "markdown": "Heuristically unreachable switch arm according to integer analysis [Learn more...](https://www.jetbrains.com/help/rider/UnreachableSwitchArmDueToIntegerAnalysis.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "UnreachableSwitchArmDueToIntegerAnalysis", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMissingDeclarations", - "shortDescription": { - "text": "missing-declarations clang diagnostic" - }, - "fullDescription": { - "text": "-Wmissing-declarations clang diagnostic · Learn more", - "markdown": "-Wmissing-declarations clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmissing-declarations)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMissingDeclarations", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EnforceDoWhileStatementBraces", - "shortDescription": { - "text": "Use preferred braces style (enforce braces in 'do-while' statement)" - }, - "fullDescription": { - "text": "Use braces to separate 'do-while' statement body Learn more...", - "markdown": "Use braces to separate 'do-while' statement body [Learn more...](https://www.jetbrains.com/help/rider/EnforceDoWhileStatementBraces.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "EnforceDoWhileStatementBraces", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Syntax Style", - "index": 21, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppWrongSlashesInIncludeDirective", - "shortDescription": { - "text": "Use preferred include directive style (slash symbol used in #include directive does not match code style settings)" - }, - "fullDescription": { - "text": "Slash symbol used in #include directive does not match code style settings", - "markdown": "Slash symbol used in #include directive does not match code style settings" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppWrongSlashesInIncludeDirective", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Syntax Style", - "index": 91, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PropertyCanBeMadeInitOnly.Global", - "shortDescription": { - "text": "Property can be made init-only (non-private accessibility)" - }, - "fullDescription": { - "text": "Property setter can be replaced with 'init' accessor to enforce property immutability Learn more...", - "markdown": "Property setter can be replaced with 'init' accessor to enforce property immutability [Learn more...](https://www.jetbrains.com/help/rider/PropertyCanBeMadeInitOnly.Global.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "PropertyCanBeMadeInitOnly.Global", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseWithExpressionToCopyTuple", - "shortDescription": { - "text": "Use 'with' expression to copy tuple" - }, - "fullDescription": { - "text": "Use 'with' expression to create a modified copy of a tuple", - "markdown": "Use 'with' expression to create a modified copy of a tuple" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UseWithExpressionToCopyTuple", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityRedundantPreprocessor", - "shortDescription": { - "text": "readability-redundant-preprocessor clang-tidy check" - }, - "fullDescription": { - "text": "readability-redundant-preprocessor clang-tidy check · Learn more", - "markdown": "readability-redundant-preprocessor clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/redundant-preprocessor.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityRedundantPreprocessor", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SuggestVarOrType_SimpleTypes", - "shortDescription": { - "text": "Use preferred 'var' style (when type is simple)" - }, - "fullDescription": { - "text": "Convert if simple type (not an array and does not have generic parameters) Learn more...", - "markdown": "Convert if simple type (not an array and does not have generic parameters) [Learn more...](https://www.jetbrains.com/help/rider/SuggestVarOrType_SimpleTypes.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "SuggestVarOrType_SimpleTypes", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Syntax Style", - "index": 21, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8305", - "shortDescription": { - "text": "Type is for evaluation purposes only and is subject to change or removal in future updates." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8305", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "InParameterWithMustDisposeResourceAttribute", - "shortDescription": { - "text": "Meaningless [MustDisposeResource] annotation for an input parameter" - }, - "fullDescription": { - "text": "Meaningless [MustDisposeResource] annotation for an input parameter", - "markdown": "Meaningless \\[MustDisposeResource\\] annotation for an input parameter" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "InParameterWithMustDisposeResourceAttribute", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantQualifier", - "shortDescription": { - "text": "Redundant qualifier" - }, - "fullDescription": { - "text": "Qualifier is redundant", - "markdown": "Qualifier is redundant" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantQualifier", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Redundancies in Code", - "index": 96, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA3061", - "shortDescription": { - "text": "RoslynAnalyzers Do Not Add Schema By URL" - }, - "fullDescription": { - "text": "This overload of XmlSchemaCollection.Add method internally enables DTD processing on the XML reader instance used, and uses UrlResolver for resolving external XML entities. The outcome is information disclosure. Content from file system or network shares for the machine processing the XML can be exposed to attacker. In addition, an attacker can use this as a DoS vector.", - "markdown": "This overload of XmlSchemaCollection.Add method internally enables DTD processing on the XML reader instance used, and uses UrlResolver for resolving external XML entities. The outcome is information disclosure. Content from file system or network shares for the machine processing the XML can be exposed to attacker. In addition, an attacker can use this as a DoS vector." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA3061", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.RedundantGridSpan", - "shortDescription": { - "text": "Single-cell grid column/row span is redundant" - }, - "fullDescription": { - "text": "Single-cell grid column/row span is redundant", - "markdown": "Single-cell grid column/row span is redundant" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Xaml.RedundantGridSpan", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Redundancies in Code", - "index": 77, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppEnforceOverridingFunctionStyle", - "shortDescription": { - "text": "Use preferred overriding function style (enforce overriding function style)" - }, - "fullDescription": { - "text": "Enforce the 'virtual' and 'override' specifiers on overriding functions", - "markdown": "Enforce the 'virtual' and 'override' specifiers on overriding functions" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppEnforceOverridingFunctionStyle", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Syntax Style", - "index": 91, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerDeadcodeDeadStores", - "shortDescription": { - "text": "deadcode.DeadStores clang static analyzer check" - }, - "fullDescription": { - "text": "deadcode.DeadStores clang static analyzer check · Learn more", - "markdown": "deadcode.DeadStores clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerDeadcodeDeadStores", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCtadMaybeUnsupported", - "shortDescription": { - "text": "ctad-maybe-unsupported clang diagnostic" - }, - "fullDescription": { - "text": "-Wctad-maybe-unsupported clang diagnostic · Learn more", - "markdown": "-Wctad-maybe-unsupported clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wctad-maybe-unsupported)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCtadMaybeUnsupported", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticInlineAsm", - "shortDescription": { - "text": "inline-asm clang diagnostic" - }, - "fullDescription": { - "text": "-Winline-asm clang diagnostic · Learn more", - "markdown": "-Winline-asm clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winline-asm)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticInlineAsm", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AnnotateNotNullParameter", - "shortDescription": { - "text": "Declaration nullability inferred (parameter is inferred to be not null)" - }, - "fullDescription": { - "text": "Parameter is inferred always not to be null: consider annotating it with [NotNull] or [ItemNotNull] attribute", - "markdown": "Parameter is inferred always not to be null: consider annotating it with \\[NotNull\\] or \\[ItemNotNull\\] attribute" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "AnnotateNotNullParameter", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ArrangeThisQualifier", - "shortDescription": { - "text": "Add/remove 'this.' qualifier" - }, - "fullDescription": { - "text": "'this.' qualifier can be safely added/removed without changing code semantics Learn more...", - "markdown": "'this.' qualifier can be safely added/removed without changing code semantics [Learn more...](https://www.jetbrains.com/help/rider/ArrangeThisQualifier.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ArrangeThisQualifier", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Syntax Style", - "index": 21, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticArcRetainCycles", - "shortDescription": { - "text": "arc-retain-cycles clang diagnostic" - }, - "fullDescription": { - "text": "-Warc-retain-cycles clang diagnostic · Learn more", - "markdown": "-Warc-retain-cycles clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#warc-retain-cycles)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticArcRetainCycles", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyHicppNewDeleteOperators", - "shortDescription": { - "text": "hicpp-new-delete-operators clang-tidy check" - }, - "fullDescription": { - "text": "hicpp-new-delete-operators clang-tidy check · Learn more", - "markdown": "hicpp-new-delete-operators clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/new-delete-operators.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyHicppNewDeleteOperators", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerSecurityPutenvStackArray", - "shortDescription": { - "text": "security.PutenvStackArray clang static analyzer check" - }, - "fullDescription": { - "text": "security.PutenvStackArray clang static analyzer check · Learn more", - "markdown": "security.PutenvStackArray clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerSecurityPutenvStackArray", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyModernizeUseUsing", - "shortDescription": { - "text": "modernize-use-using clang-tidy check" - }, - "fullDescription": { - "text": "modernize-use-using clang-tidy check · Learn more", - "markdown": "modernize-use-using clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-using.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyModernizeUseUsing", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneTooSmallLoopVariable", - "shortDescription": { - "text": "bugprone-too-small-loop-variable clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-too-small-loop-variable clang-tidy check · Learn more", - "markdown": "bugprone-too-small-loop-variable clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/too-small-loop-variable.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneTooSmallLoopVariable", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyMiscNonPrivateMemberVariablesInClasses", - "shortDescription": { - "text": "misc-non-private-member-variables-in-classes clang-tidy check" - }, - "fullDescription": { - "text": "misc-non-private-member-variables-in-classes clang-tidy check · Learn more", - "markdown": "misc-non-private-member-variables-in-classes clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/non-private-member-variables-in-classes.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyMiscNonPrivateMemberVariablesInClasses", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticXorUsedAsPow", - "shortDescription": { - "text": "xor-used-as-pow clang diagnostic" - }, - "fullDescription": { - "text": "-Wxor-used-as-pow clang diagnostic · Learn more", - "markdown": "-Wxor-used-as-pow clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wxor-used-as-pow)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticXorUsedAsPow", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityIdentifierLength", - "shortDescription": { - "text": "readability-identifier-length clang-tidy check" - }, - "fullDescription": { - "text": "readability-identifier-length clang-tidy check · Learn more", - "markdown": "readability-identifier-length clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/identifier-length.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityIdentifierLength", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMicrosoftRedeclareStatic", - "shortDescription": { - "text": "microsoft-redeclare-static clang diagnostic" - }, - "fullDescription": { - "text": "-Wmicrosoft-redeclare-static clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-redeclare-static clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-redeclare-static)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftRedeclareStatic", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantExplicitArraySize", - "shortDescription": { - "text": "Redundant explicit size specification in array creation" - }, - "fullDescription": { - "text": "When array initializer has the same number of elements as specified in size expression, explicit size specification is redundant Learn more...", - "markdown": "When array initializer has the same number of elements as specified in size expression, explicit size specification is redundant [Learn more...](https://www.jetbrains.com/help/rider/RedundantExplicitArraySize.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantExplicitArraySize", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityAvoidReturnWithVoidValue", - "shortDescription": { - "text": "readability-avoid-return-with-void-value clang-tidy check" - }, - "fullDescription": { - "text": "readability-avoid-return-with-void-value clang-tidy check · Learn more", - "markdown": "readability-avoid-return-with-void-value clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/avoid-return-with-void-value.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityAvoidReturnWithVoidValue", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticNonPowerOfTwoAlignment", - "shortDescription": { - "text": "non-power-of-two-alignment clang diagnostic" - }, - "fullDescription": { - "text": "-Wnon-power-of-two-alignment clang diagnostic · Learn more", - "markdown": "-Wnon-power-of-two-alignment clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnon-power-of-two-alignment)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticNonPowerOfTwoAlignment", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CanReplaceCastWithShorterTypeArgument", - "shortDescription": { - "text": "Cast expression can be replaced with simplified type arguments" - }, - "fullDescription": { - "text": "Replace cast expression with simplified type arguments to enhance compile-time safety and code conciseness Learn more...", - "markdown": "Replace cast expression with simplified type arguments to enhance compile-time safety and code conciseness [Learn more...](https://www.jetbrains.com/help/rider/CanReplaceCastWithShorterTypeArgument.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CanReplaceCastWithShorterTypeArgument", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "FunctionComplexityOverflow", - "shortDescription": { - "text": "Function body is too complex to analyze" - }, - "fullDescription": { - "text": "Function body is too complex to analyze, consider decomposing it or reducing number of variables", - "markdown": "Function body is too complex to analyze, consider decomposing it or reducing number of variables" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "FunctionComplexityOverflow", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDoublePromotion", - "shortDescription": { - "text": "double-promotion clang diagnostic" - }, - "fullDescription": { - "text": "-Wdouble-promotion clang diagnostic · Learn more", - "markdown": "-Wdouble-promotion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdouble-promotion)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDoublePromotion", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA3075", - "shortDescription": { - "text": "RoslynAnalyzers Insecure DTD processing in XML" - }, - "fullDescription": { - "text": "Using XmlTextReader.Load(), creating an insecure XmlReaderSettings instance when invoking XmlReader.Create(), setting the InnerXml property of the XmlDocument and enabling DTD processing using XmlUrlResolver insecurely can lead to information disclosure. Replace it with a call to the Load() method overload that takes an XmlReader instance, use XmlReader.Create() to accept XmlReaderSettings arguments or consider explicitly setting secure values. The DataViewSettingCollectionString property of DataViewManager should always be assigned from a trusted source, the DtdProcessing property should be set to false, and the XmlResolver property should be changed to XmlSecureResolver or null.", - "markdown": "Using XmlTextReader.Load(), creating an insecure XmlReaderSettings instance when invoking XmlReader.Create(), setting the InnerXml property of the XmlDocument and enabling DTD processing using XmlUrlResolver insecurely can lead to information disclosure. Replace it with a call to the Load() method overload that takes an XmlReader instance, use XmlReader.Create() to accept XmlReaderSettings arguments or consider explicitly setting secure values. The DataViewSettingCollectionString property of DataViewManager should always be assigned from a trusted source, the DtdProcessing property should be set to false, and the XmlResolver property should be changed to XmlSecureResolver or null." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA3075", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA3076", - "shortDescription": { - "text": "RoslynAnalyzers Insecure XSLT script processing" - }, - "fullDescription": { - "text": "Providing an insecure XsltSettings instance and an insecure XmlResolver instance to XslCompiledTransform.Load method is potentially unsafe as it allows processing script within XSL, which on an untrusted XSL input may lead to malicious code execution. Either replace the insecure XsltSettings argument with XsltSettings.Default or an instance that has disabled document function and script execution, or replace the XmlResolver argument with null or an XmlSecureResolver instance. This message may be suppressed if the input is known to be from a trusted source and external resource resolution from locations that are not known in advance must be supported.", - "markdown": "Providing an insecure XsltSettings instance and an insecure XmlResolver instance to XslCompiledTransform.Load method is potentially unsafe as it allows processing script within XSL, which on an untrusted XSL input may lead to malicious code execution. Either replace the insecure XsltSettings argument with XsltSettings.Default or an instance that has disabled document function and script execution, or replace the XmlResolver argument with null or an XmlSecureResolver instance. This message may be suppressed if the input is known to be from a trusted source and external resource resolution from locations that are not known in advance must be supported." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA3076", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA3077", - "shortDescription": { - "text": "RoslynAnalyzers Insecure Processing in API Design, XmlDocument and XmlTextReader" - }, - "fullDescription": { - "text": "Enabling DTD processing on all instances derived from XmlTextReader or XmlDocument and using XmlUrlResolver for resolving external XML entities may lead to information disclosure. Ensure to set the XmlResolver property to null, create an instance of XmlSecureResolver when processing untrusted input, or use XmlReader.Create method with a secure XmlReaderSettings argument. Unless you need to enable it, ensure the DtdProcessing property is set to false.", - "markdown": "Enabling DTD processing on all instances derived from XmlTextReader or XmlDocument and using XmlUrlResolver for resolving external XML entities may lead to information disclosure. Ensure to set the XmlResolver property to null, create an instance of XmlSecureResolver when processing untrusted input, or use XmlReader.Create method with a secure XmlReaderSettings argument. Unless you need to enable it, ensure the DtdProcessing property is set to false." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA3077", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticReorderCtor", - "shortDescription": { - "text": "reorder-ctor clang diagnostic" - }, - "fullDescription": { - "text": "-Wreorder-ctor clang diagnostic · Learn more", - "markdown": "-Wreorder-ctor clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wreorder-ctor)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticReorderCtor", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PolymorphicFieldLikeEventInvocation", - "shortDescription": { - "text": "Invocation of polymorphic field-like event" - }, - "fullDescription": { - "text": "Invocation of 'virtual' or 'override' field-like event leads to unpredictable result because the invocation list is not virtual Learn more...", - "markdown": "Invocation of 'virtual' or 'override' field-like event leads to unpredictable result because the invocation list is not virtual [Learn more...](https://www.jetbrains.com/help/rider/PolymorphicFieldLikeEventInvocation.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "PolymorphicFieldLikeEventInvocation", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppBadEmptyBracesLineBreaks", - "shortDescription": { - "text": "Incorrect line breaks (around empty braces)" - }, - "fullDescription": { - "text": "Around empty braces", - "markdown": "Around empty braces" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppBadEmptyBracesLineBreaks", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Formatting", - "index": 28, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerOptinTaintTaintedAlloc", - "shortDescription": { - "text": "optin.taint.TaintedAlloc clang static analyzer check" - }, - "fullDescription": { - "text": "optin.taint.TaintedAlloc clang static analyzer check · Learn more", - "markdown": "optin.taint.TaintedAlloc clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerOptinTaintTaintedAlloc", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantCast", - "shortDescription": { - "text": "Redundant cast" - }, - "fullDescription": { - "text": "Type cast can be safely removed Learn more...", - "markdown": "Type cast can be safely removed [Learn more...](https://www.jetbrains.com/help/rider/RedundantCast.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "RedundantCast", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerApiModelingLlvmCastValue", - "shortDescription": { - "text": "apiModeling.llvm.CastValue clang static analyzer check" - }, - "fullDescription": { - "text": "apiModeling.llvm.CastValue clang static analyzer check · Learn more", - "markdown": "apiModeling.llvm.CastValue clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerApiModelingLlvmCastValue", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "StringLiteralAsInterpolationArgument", - "shortDescription": { - "text": "String literal can be inlined" - }, - "fullDescription": { - "text": "String literal can be inlined into interpolation", - "markdown": "String literal can be inlined into interpolation" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "StringLiteralAsInterpolationArgument", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerFuchsiaHandleChecker", - "shortDescription": { - "text": "fuchsia.HandleChecker clang static analyzer check" - }, - "fullDescription": { - "text": "fuchsia.HandleChecker clang static analyzer check · Learn more", - "markdown": "fuchsia.HandleChecker clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerFuchsiaHandleChecker", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticShadowField", - "shortDescription": { - "text": "shadow-field clang diagnostic" - }, - "fullDescription": { - "text": "-Wshadow-field clang diagnostic · Learn more", - "markdown": "-Wshadow-field clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wshadow-field)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticShadowField", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantWithExpression", - "shortDescription": { - "text": "Empty 'with' expression is redundant" - }, - "fullDescription": { - "text": "Empty 'with' expression applied to newly created object instance results in unnecessary clone creation", - "markdown": "Empty 'with' expression applied to newly created object instance results in unnecessary clone creation" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RedundantWithExpression", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticExtraQualification", - "shortDescription": { - "text": "extra-qualification clang diagnostic" - }, - "fullDescription": { - "text": "-Wextra-qualification clang diagnostic · Learn more", - "markdown": "-Wextra-qualification clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wextra-qualification)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticExtraQualification", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConvertToVbAutoPropertyWhenPossible", - "shortDescription": { - "text": "Convert property to auto-property when possible" - }, - "fullDescription": { - "text": "Converts property declaration to VB.NET auto-property syntax.", - "markdown": "Converts property declaration to VB.NET auto-property syntax." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ConvertToVbAutoPropertyWhenPossible", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyHicppNoexceptMove", - "shortDescription": { - "text": "hicpp-noexcept-move clang-tidy check" - }, - "fullDescription": { - "text": "hicpp-noexcept-move clang-tidy check · Learn more", - "markdown": "hicpp-noexcept-move clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/noexcept-move.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyHicppNoexceptMove", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticAutoStorageClass", - "shortDescription": { - "text": "auto-storage-class clang diagnostic" - }, - "fullDescription": { - "text": "-Wauto-storage-class clang diagnostic · Learn more", - "markdown": "-Wauto-storage-class clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wauto-storage-class)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticAutoStorageClass", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "WebConfig.UnusedElementDueToConfigSourceAttribute", - "shortDescription": { - "text": "Redundant element or attribute because of 'configSource' attribute" - }, - "fullDescription": { - "text": "Element or attribute is not applied because of 'configSource' attribute and can be safely removed", - "markdown": "Element or attribute is not applied because of 'configSource' attribute and can be safely removed" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "WebConfig.UnusedElementDueToConfigSourceAttribute", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Web.Config/Redundancies in Code", - "index": 98, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppConceptNeverUsed", - "shortDescription": { - "text": "Concept is never used" - }, - "fullDescription": { - "text": "Concept is never used", - "markdown": "Concept is never used" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppConceptNeverUsed", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "BadExpressionBracesLineBreaks", - "shortDescription": { - "text": "Incorrect line breaks (around expression braces)" - }, - "fullDescription": { - "text": "Around expression braces Learn more...", - "markdown": "Around expression braces [Learn more...](https://www.jetbrains.com/help/rider/BadExpressionBracesLineBreaks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "BadExpressionBracesLineBreaks", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Formatting", - "index": 24, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticIncompleteModule", - "shortDescription": { - "text": "incomplete-module clang diagnostic" - }, - "fullDescription": { - "text": "-Wincomplete-module clang diagnostic · Learn more", - "markdown": "-Wincomplete-module clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wincomplete-module)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticIncompleteModule", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppMissingKeywordThrow", - "shortDescription": { - "text": "May be missing keyword 'throw'" - }, - "fullDescription": { - "text": "Object of exception type is created, but is not thrown", - "markdown": "Object of exception type is created, but is not thrown" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppMissingKeywordThrow", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppNonInlineFunctionDefinitionInHeaderFile", - "shortDescription": { - "text": "Non-inline function definition in a header file" - }, - "fullDescription": { - "text": "A function definition in a header file that will lead to a multiple definition linkage error Learn more...", - "markdown": "A function definition in a header file that will lead to a multiple definition linkage error [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rs-inline)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppNonInlineFunctionDefinitionInHeaderFile", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnusedMemberHierarchy.Local", - "shortDescription": { - "text": "Type member is only used in overrides (private accessibility)" - }, - "fullDescription": { - "text": "Type member is never used from outside of implementation hierarchy, it is only accessed from overrides through base call", - "markdown": "Type member is never used from outside of implementation hierarchy, it is only accessed from overrides through base call" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "UnusedMemberHierarchy.Local", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticGnuStaticFloatInit", - "shortDescription": { - "text": "gnu-static-float-init clang diagnostic" - }, - "fullDescription": { - "text": "-Wgnu-static-float-init clang diagnostic · Learn more", - "markdown": "-Wgnu-static-float-init clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-static-float-init)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticGnuStaticFloatInit", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.NoNullPatternMatching", - "shortDescription": { - "text": "Possible unintended bypass of lifetime check of underlying Unity engine object (pattern matching null checks on a type deriving from 'UnityEngine.Object' bypasses the lifetime check on the underlying Unity engine object)" - }, - "fullDescription": { - "text": "Pattern matching null checks operators do not call custom equality operators defined on 'UnityEngine.Object'. These operators check if the underlying Unity engine object has been destroyed. Prefer an explicit null comparison or implicit bool comparison if the lifetime check is intended, or explicitly use 'object.ReferenceEquals()' for a standard (and quicker) CLR null check. Learn more...", - "markdown": "Pattern matching null checks operators do not call custom equality operators defined on 'UnityEngine.Object'. These operators check if the underlying Unity engine object has been destroyed. Prefer an explicit null comparison or implicit bool comparison if the lifetime check is intended, or explicitly use 'object.ReferenceEquals()' for a standard (and quicker) CLR null check. [Learn more...](https://github.com/JetBrains/resharper-unity/wiki/Possible-unintended-bypass-of-lifetime-check-of-underlying-Unity-engine-object)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "Unity.NoNullPatternMatching", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticAssume", - "shortDescription": { - "text": "assume clang diagnostic" - }, - "fullDescription": { - "text": "-Wassume clang diagnostic · Learn more", - "markdown": "-Wassume clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wassume)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticAssume", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp98CompatUnnamedTypeTemplateArgs", - "shortDescription": { - "text": "c++98-compat-unnamed-type-template-args clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++98-compat-unnamed-type-template-args clang diagnostic · Learn more", - "markdown": "-Wc++98-compat-unnamed-type-template-args clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-98-compat-unnamed-type-template-args)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp98CompatUnnamedTypeTemplateArgs", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "DefaultStructEqualityIsUsed.Global", - "shortDescription": { - "text": "Struct with default equality members is used for comparison (non-private accessibility)" - }, - "fullDescription": { - "text": "Default implementations of the 'Equals' and 'GetHashCode' methods of a struct are based on reflection and perform poorly. To prevent boxing and improve performance, overriding the equality members is recommended. This inspection only triggers if the struct or its containing type (such as record) is actually used for equality comparisons in the solution. Learn more...", - "markdown": "Default implementations of the 'Equals' and 'GetHashCode' methods of a struct are based on reflection and perform poorly. To prevent boxing and improve performance, overriding the equality members is recommended. This inspection only triggers if the struct or its containing type (such as record) is actually used for equality comparisons in the solution. [Learn more...](https://www.jetbrains.com/help/rider/DefaultStructEqualityIsUsed.Global.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "DefaultStructEqualityIsUsed.Global", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS1717", - "shortDescription": { - "text": "Assignment made to same variable" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/a1kzfw0z.aspx)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS1717", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS1711", - "shortDescription": { - "text": "XML comment has a 'typeparam' tag for 'TypeParameter', but there is no type parameter by that name" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/misc/cs1711)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS1711", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS1712", - "shortDescription": { - "text": "Type parameter has no matching typeparam tag in the XML comment" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/t8zca749.aspx)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS1712", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithSimpleAssignment.False", - "shortDescription": { - "text": "Replace with simple assignment" - }, - "fullDescription": { - "text": "$bool1$ &= false", - "markdown": "$bool1$ \\&= false" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithSimpleAssignment.False", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS1710", - "shortDescription": { - "text": "Duplicate typeparam tag in XML comment" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/k5ya7w1x.aspx)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "CSharpWarnings__CS1710", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyAndroidComparisonInTempFailureRetry", - "shortDescription": { - "text": "android-comparison-in-temp-failure-retry clang-tidy check" - }, - "fullDescription": { - "text": "android-comparison-in-temp-failure-retry clang-tidy check · Learn more", - "markdown": "android-comparison-in-temp-failure-retry clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/android/comparison-in-temp-failure-retry.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyAndroidComparisonInTempFailureRetry", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp20CompatPedantic", - "shortDescription": { - "text": "c++20-compat-pedantic clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++20-compat-pedantic clang diagnostic · Learn more", - "markdown": "-Wc++20-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-20-compat-pedantic)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp20CompatPedantic", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ClassWithVirtualMembersNeverInherited.Local", - "shortDescription": { - "text": "Class with virtual (overridable) members never inherited (private accessibility)" - }, - "fullDescription": { - "text": "Non-abstract class has virtual (overridable) members but has no inheritors Learn more...", - "markdown": "Non-abstract class has virtual (overridable) members but has no inheritors [Learn more...](https://www.jetbrains.com/help/rider/ClassWithVirtualMembersNeverInherited.Local.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ClassWithVirtualMembersNeverInherited.Local", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCertOop57Cpp", - "shortDescription": { - "text": "cert-oop57-cpp clang-tidy check" - }, - "fullDescription": { - "text": "cert-oop57-cpp clang-tidy check · Learn more", - "markdown": "cert-oop57-cpp clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/oop57-cpp.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyCertOop57Cpp", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit.TestCaseResultPropertyIsObsolete", - "shortDescription": { - "text": "NUnit. Test case Result property is obsolete." - }, - "fullDescription": { - "text": "NUnit. Test case Result property is obsolete since NUnit 2.6. Learn more...", - "markdown": "NUnit. Test case Result property is obsolete since NUnit 2.6. [Learn more...](https://www.jetbrains.com/help/rider/NUnit.TestCaseResultPropertyIsObsolete.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NUnit.TestCaseResultPropertyIsObsolete", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/NUnit", - "index": 26, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppUE4ProbableMemoryIssuesWithUObjectsInContainer", - "shortDescription": { - "text": "Objects stored in non-uproperty member can be destroyed during garbage collection, resulting in stale pointers" - }, - "fullDescription": { - "text": "Objects stored in non-uproperty member can be destroyed during garbage collection, resulting in stale pointers", - "markdown": "Objects stored in non-uproperty member can be destroyed during garbage collection, resulting in stale pointers" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppUE4ProbableMemoryIssuesWithUObjectsInContainer", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Unreal Engine", - "index": 6, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppPrintfRiskyFormat", - "shortDescription": { - "text": "Possibly invalid printf format specifier" - }, - "fullDescription": { - "text": "Format string contains a potential error", - "markdown": "Format string contains a potential error" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppPrintfRiskyFormat", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UsePositionalDeconstructionPattern", - "shortDescription": { - "text": "Use positional deconstruction pattern" - }, - "fullDescription": { - "text": "Replace property pattern member(s) of recursive pattern with positional deconstruction patterns", - "markdown": "Replace property pattern member(s) of recursive pattern with positional deconstruction patterns" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UsePositionalDeconstructionPattern", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.SharedStaticUnmanagedType", - "shortDescription": { - "text": "Shared static type parameter requires the unmanaged constraint" - }, - "fullDescription": { - "text": "Shared static type parameter requires the unmanaged constraint", - "markdown": "Shared static type parameter requires the unmanaged constraint" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.SharedStaticUnmanagedType", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity Burst Compiler Warnings", - "index": 57, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPadded", - "shortDescription": { - "text": "padded clang diagnostic" - }, - "fullDescription": { - "text": "-Wpadded clang diagnostic · Learn more", - "markdown": "-Wpadded clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpadded)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPadded", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantLogicalConditionalExpressionOperand", - "shortDescription": { - "text": "Redundant operand in logical conditional expression" - }, - "fullDescription": { - "text": "Redundant operand in logical conditional expression, for example \r\n expr || false\r\n expr && true\r\n Learn more...", - "markdown": "Redundant operand in logical conditional expression, for example\n\n```\n\r\n expr || false\r\n expr && true\r\n```\n\n[Learn more...](https://www.jetbrains.com/help/rider/RedundantLogicalConditionalExpressionOperand.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantLogicalConditionalExpressionOperand", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticLanguageExtensionToken", - "shortDescription": { - "text": "language-extension-token clang diagnostic" - }, - "fullDescription": { - "text": "-Wlanguage-extension-token clang diagnostic · Learn more", - "markdown": "-Wlanguage-extension-token clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wlanguage-extension-token)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticLanguageExtensionToken", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NonAtomicCompoundOperator", - "shortDescription": { - "text": "Suspicious 'volatile' field usage: compound operation is not atomic. 'Interlocked' class can be used instead." - }, - "fullDescription": { - "text": "Suspicious 'volatile' field usage: compound operation is not atomic. 'Interlocked' class can be used instead.", - "markdown": "Suspicious 'volatile' field usage: compound operation is not atomic. 'Interlocked' class can be used instead." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NonAtomicCompoundOperator", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyHighlighting", - "shortDescription": { - "text": "Unknown clang-tidy checks" - }, - "fullDescription": { - "text": "Unknown clang-tidy checks.", - "markdown": "Unknown clang-tidy checks." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyHighlighting", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnusedButSetVariable", - "shortDescription": { - "text": "unused-but-set-variable clang diagnostic" - }, - "fullDescription": { - "text": "-Wunused-but-set-variable clang diagnostic · Learn more", - "markdown": "-Wunused-but-set-variable clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunused-but-set-variable)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnusedButSetVariable", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1015FadeOut", - "shortDescription": { - "text": "RoslynAnalyzers Use nameof operator" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1015FadeOut", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticTautologicalObjcBoolCompare", - "shortDescription": { - "text": "tautological-objc-bool-compare clang diagnostic" - }, - "fullDescription": { - "text": "-Wtautological-objc-bool-compare clang diagnostic · Learn more", - "markdown": "-Wtautological-objc-bool-compare clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wtautological-objc-bool-compare)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticTautologicalObjcBoolCompare", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "OverriddenWithSameValue", - "shortDescription": { - "text": "Resource is overridden with identical value" - }, - "fullDescription": { - "text": "Base resource item and the current item have the same value Learn more...", - "markdown": "Base resource item and the current item have the same value [Learn more...](https://www.jetbrains.com/help/rider/OverriddenWithSameValue.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "OverriddenWithSameValue", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "ResX/Redundancies in Code", - "index": 99, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Asxx.PathError", - "shortDescription": { - "text": "Path error" - }, - "fullDescription": { - "text": "Path error", - "markdown": "Path error" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Asxx.PathError", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HttpHandler or WebService/Potential Code Quality Issues", - "index": 101, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMisspelledAssumption", - "shortDescription": { - "text": "misspelled-assumption clang diagnostic" - }, - "fullDescription": { - "text": "-Wmisspelled-assumption clang diagnostic · Learn more", - "markdown": "-Wmisspelled-assumption clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmisspelled-assumption)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMisspelledAssumption", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ArrangeNamespaceBody", - "shortDescription": { - "text": "Use preferred namespace body style" - }, - "fullDescription": { - "text": "Use file-scoped or block-scoped namespace body Learn more...", - "markdown": "Use file-scoped or block-scoped namespace body [Learn more...](https://www.jetbrains.com/help/rider/ArrangeNamespaceBody.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "ArrangeNamespaceBody", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Syntax Style", - "index": 21, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyModernizeUseTrailingReturnType", - "shortDescription": { - "text": "modernize-use-trailing-return-type clang-tidy check" - }, - "fullDescription": { - "text": "modernize-use-trailing-return-type clang-tidy check · Learn more", - "markdown": "modernize-use-trailing-return-type clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-trailing-return-type.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyModernizeUseTrailingReturnType", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMicrosoftStaticAssert", - "shortDescription": { - "text": "microsoft-static-assert clang diagnostic" - }, - "fullDescription": { - "text": "-Wmicrosoft-static-assert clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-static-assert clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-static-assert)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftStaticAssert", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMissingTemplateArgListAfterTemplateKw", - "shortDescription": { - "text": "missing-template-arg-list-after-template-kw clang diagnostic" - }, - "fullDescription": { - "text": "-Wmissing-template-arg-list-after-template-kw clang diagnostic · Learn more", - "markdown": "-Wmissing-template-arg-list-after-template-kw clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmissing-template-arg-list-after-template-kw)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMissingTemplateArgListAfterTemplateKw", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PropertyCanBeMadeInitOnly.Local", - "shortDescription": { - "text": "Property can be made init-only (private accessibility)" - }, - "fullDescription": { - "text": "Property setter can be replaced with 'init' accessor to enforce property immutability Learn more...", - "markdown": "Property setter can be replaced with 'init' accessor to enforce property immutability [Learn more...](https://www.jetbrains.com/help/rider/PropertyCanBeMadeInitOnly.Local.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "PropertyCanBeMadeInitOnly.Local", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCastQual", - "shortDescription": { - "text": "cast-qual clang diagnostic" - }, - "fullDescription": { - "text": "-Wcast-qual clang diagnostic · Learn more", - "markdown": "-Wcast-qual clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcast-qual)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCastQual", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp11Compat", - "shortDescription": { - "text": "c++11-compat clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++11-compat clang diagnostic · Learn more", - "markdown": "-Wc++11-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-11-compat)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp11Compat", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMicrosoftEnumValue", - "shortDescription": { - "text": "microsoft-enum-value clang diagnostic" - }, - "fullDescription": { - "text": "-Wmicrosoft-enum-value clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-enum-value clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-enum-value)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftEnumValue", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS2007", - "shortDescription": { - "text": "RoslynAnalyzers Invalid entry in analyzer release file" - }, - "fullDescription": { - "text": "Invalid entry in analyzer release file.", - "markdown": "Invalid entry in analyzer release file." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS2007", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneUnusedRaii", - "shortDescription": { - "text": "bugprone-unused-raii clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-unused-raii clang-tidy check · Learn more", - "markdown": "bugprone-unused-raii clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/unused-raii.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneUnusedRaii", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneMisplacedOperatorInStrlenInAlloc", - "shortDescription": { - "text": "bugprone-misplaced-operator-in-strlen-in-alloc clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-misplaced-operator-in-strlen-in-alloc clang-tidy check · Learn more", - "markdown": "bugprone-misplaced-operator-in-strlen-in-alloc clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/misplaced-operator-in-strlen-in-alloc.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneMisplacedOperatorInStrlenInAlloc", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS2008", - "shortDescription": { - "text": "RoslynAnalyzers Enable analyzer release tracking" - }, - "fullDescription": { - "text": "Enabling release tracking for analyzer packages helps in tracking and documenting the analyzer diagnostics that ship and/or change with each analyzer release. See details at https://github.com/dotnet/roslyn-analyzers/blob/main/src/Microsoft.CodeAnalysis.Analyzers/ReleaseTrackingAnalyzers.Help.md.", - "markdown": "Enabling release tracking for analyzer packages helps in tracking and documenting the analyzer diagnostics that ship and/or change with each analyzer release. See details at https://github.com/dotnet/roslyn-analyzers/blob/main/src/Microsoft.CodeAnalysis.Analyzers/ReleaseTrackingAnalyzers.Help.md." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS2008", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS2005", - "shortDescription": { - "text": "RoslynAnalyzers Remove duplicate entries for diagnostic ID in the same analyzer release" - }, - "fullDescription": { - "text": "Remove duplicate entries for diagnostic ID in the same analyzer release.", - "markdown": "Remove duplicate entries for diagnostic ID in the same analyzer release." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS2005", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS2006", - "shortDescription": { - "text": "RoslynAnalyzers Remove duplicate entries for diagnostic ID between analyzer releases" - }, - "fullDescription": { - "text": "Remove duplicate entries for diagnostic ID between analyzer releases.", - "markdown": "Remove duplicate entries for diagnostic ID between analyzer releases." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS2006", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS2003", - "shortDescription": { - "text": "RoslynAnalyzers Shipped diagnostic IDs that are no longer reported should have an entry in the 'Removed Rules' table in unshipped file" - }, - "fullDescription": { - "text": "Shipped diagnostic IDs that are no longer reported should have an entry in the 'Removed Rules' table in unshipped file.", - "markdown": "Shipped diagnostic IDs that are no longer reported should have an entry in the 'Removed Rules' table in unshipped file." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS2003", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticShorten64To32", - "shortDescription": { - "text": "shorten-64-to-32 clang diagnostic" - }, - "fullDescription": { - "text": "-Wshorten-64-to-32 clang diagnostic · Learn more", - "markdown": "-Wshorten-64-to-32 clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wshorten-64-to-32)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticShorten64To32", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS2004", - "shortDescription": { - "text": "RoslynAnalyzers Diagnostic IDs marked as removed in analyzer release file should not be reported by analyzers" - }, - "fullDescription": { - "text": "Diagnostic IDs marked as removed in analyzer release file should not be reported by analyzers.", - "markdown": "Diagnostic IDs marked as removed in analyzer release file should not be reported by analyzers." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS2004", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Html.EventNotResolved", - "shortDescription": { - "text": "Unknown event" - }, - "fullDescription": { - "text": "Unknown event in HTML and related technologies", - "markdown": "Unknown event in HTML and related technologies" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Html.EventNotResolved", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HTML/Potential Code Quality Issues", - "index": 54, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyAndroidCloexecEpollCreate", - "shortDescription": { - "text": "android-cloexec-epoll-create clang-tidy check" - }, - "fullDescription": { - "text": "android-cloexec-epoll-create clang-tidy check · Learn more", - "markdown": "android-cloexec-epoll-create clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/android/cloexec-epoll-create.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyAndroidCloexecEpollCreate", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityAvoidUnconditionalPreprocessorIf", - "shortDescription": { - "text": "readability-avoid-unconditional-preprocessor-if clang-tidy check" - }, - "fullDescription": { - "text": "readability-avoid-unconditional-preprocessor-if clang-tidy check · Learn more", - "markdown": "readability-avoid-unconditional-preprocessor-if clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/avoid-unconditional-preprocessor-if.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityAvoidUnconditionalPreprocessorIf", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS2001", - "shortDescription": { - "text": "RoslynAnalyzers Ensure up-to-date entry for analyzer diagnostic IDs are added to analyzer release" - }, - "fullDescription": { - "text": "Ensure up-to-date entry for analyzer diagnostic IDs are added to analyzer release.", - "markdown": "Ensure up-to-date entry for analyzer diagnostic IDs are added to analyzer release." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS2001", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppUninitializedDependentBaseClass", - "shortDescription": { - "text": "Uninitialized dependent base class" - }, - "fullDescription": { - "text": "Possibly uninitialized dependent base class", - "markdown": "Possibly uninitialized dependent base class" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppUninitializedDependentBaseClass", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Compiler Warnings", - "index": 75, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticParenthesesEquality", - "shortDescription": { - "text": "parentheses-equality clang diagnostic" - }, - "fullDescription": { - "text": "-Wparentheses-equality clang diagnostic · Learn more", - "markdown": "-Wparentheses-equality clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wparentheses-equality)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticParenthesesEquality", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS2002", - "shortDescription": { - "text": "RoslynAnalyzers Do not add removed analyzer diagnostic IDs to unshipped analyzer release" - }, - "fullDescription": { - "text": "Entries for analyzer diagnostic IDs that are no longer reported and never shipped can be removed from unshipped analyzer release.", - "markdown": "Entries for analyzer diagnostic IDs that are no longer reported and never shipped can be removed from unshipped analyzer release." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS2002", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppUseAutoForNumeric", - "shortDescription": { - "text": "Use preferred 'auto' style (numeric type can be replaced with auto)" - }, - "fullDescription": { - "text": "A numeric type can be replaced with 'auto'", - "markdown": "A numeric type can be replaced with 'auto'" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppUseAutoForNumeric", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Syntax Style", - "index": 91, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBReplaceWithSingleAssignment.1", - "shortDescription": { - "text": "Replace with single assignment" - }, - "fullDescription": { - "text": "Dim $x$ = False If($bool1$) Then $x$ = True", - "markdown": "Dim $x$ = False If($bool1$) Then $x$ = True" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBReplaceWithSingleAssignment.1", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBReplaceWithSingleAssignment.2", - "shortDescription": { - "text": "Replace with single assignment" - }, - "fullDescription": { - "text": "Dim $x$ = True If($bool1$) Then $x$ = False", - "markdown": "Dim $x$ = True If($bool1$) Then $x$ = False" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBReplaceWithSingleAssignment.2", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppTypeAliasNeverUsed", - "shortDescription": { - "text": "Type alias is never used" - }, - "fullDescription": { - "text": "A type alias is never used", - "markdown": "A type alias is never used" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppTypeAliasNeverUsed", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantReadonlyModifier", - "shortDescription": { - "text": "Redundant 'readonly' modifier" - }, - "fullDescription": { - "text": "Readonly 'redundant' member/accessor modifier in struct declaration", - "markdown": "Readonly 'redundant' member/accessor modifier in struct declaration" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RedundantReadonlyModifier", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticSelfAssignField", - "shortDescription": { - "text": "self-assign-field clang diagnostic" - }, - "fullDescription": { - "text": "-Wself-assign-field clang diagnostic · Learn more", - "markdown": "-Wself-assign-field clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wself-assign-field)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticSelfAssignField", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppPassValueParameterByConstReference", - "shortDescription": { - "text": "Pass value parameters by const reference" - }, - "fullDescription": { - "text": "Parameter of a type that is expensive to copy is passed by value, but it can be passed by const reference instead Learn more...", - "markdown": "Parameter of a type that is expensive to copy is passed by value, but it can be passed by const reference instead [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rf-in)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppPassValueParameterByConstReference", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Common Practices and Code Improvements", - "index": 16, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticConditionalTypeMismatch", - "shortDescription": { - "text": "conditional-type-mismatch clang diagnostic" - }, - "fullDescription": { - "text": "-Wconditional-type-mismatch clang diagnostic · Learn more", - "markdown": "-Wconditional-type-mismatch clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wconditional-type-mismatch)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticConditionalTypeMismatch", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantArrayLowerBoundSpecification", - "shortDescription": { - "text": "Redundant array lower bound specification" - }, - "fullDescription": { - "text": "Array lower bound specification is redundant", - "markdown": "Array lower bound specification is redundant" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantArrayLowerBoundSpecification", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Redundancies in Code", - "index": 96, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBoostUseToString", - "shortDescription": { - "text": "boost-use-to-string clang-tidy check" - }, - "fullDescription": { - "text": "boost-use-to-string clang-tidy check · Learn more", - "markdown": "boost-use-to-string clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/boost/use-to-string.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyBoostUseToString", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JoinDeclarationAndInitializer", - "shortDescription": { - "text": "Join local variable declaration and assignment" - }, - "fullDescription": { - "text": "Join local variable declaration and assignment Learn more...", - "markdown": "Join local variable declaration and assignment [Learn more...](https://www.jetbrains.com/help/rider/JoinDeclarationAndInitializer.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "JoinDeclarationAndInitializer", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RouteTemplates.SyntaxError", - "shortDescription": { - "text": "Syntax error" - }, - "fullDescription": { - "text": "Syntax error", - "markdown": "Syntax error" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RouteTemplates.SyntaxError", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "ASP.NET route templates/Code Notification", - "index": 48, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SwitchStatementMissingSomeEnumCasesNoDefault", - "shortDescription": { - "text": "Some values of the enum are not processed inside 'switch' statement" - }, - "fullDescription": { - "text": "Some values of the enum are not processed inside 'switch' statement Learn more...", - "markdown": "Some values of the enum are not processed inside 'switch' statement [Learn more...](https://www.jetbrains.com/help/rider/SwitchStatementMissingSomeEnumCasesNoDefault.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "SwitchStatementMissingSomeEnumCasesNoDefault", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneThrowKeywordMissing", - "shortDescription": { - "text": "bugprone-throw-keyword-missing clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-throw-keyword-missing clang-tidy check · Learn more", - "markdown": "bugprone-throw-keyword-missing clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/throw-keyword-missing.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneThrowKeywordMissing", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConstructorWithMustDisposeResourceAttributeBaseIsNotAnnotated", - "shortDescription": { - "text": "[MustDisposeResource] annotation is not inherited from the base constructor and should be placed explicitly" - }, - "fullDescription": { - "text": "[MustDisposeResource] annotation is not inherited from the base constructor Learn more...", - "markdown": "\\[MustDisposeResource\\] annotation is not inherited from the base constructor [Learn more...](https://www.jetbrains.com/help/rider/ConstructorWithMustDisposeResourceAttributeBaseIsNotAnnotated.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "ConstructorWithMustDisposeResourceAttributeBaseIsNotAnnotated", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantPatternParentheses", - "shortDescription": { - "text": "Remove redundant pattern-matching parentheses" - }, - "fullDescription": { - "text": "Parentheses surrounding a pattern are redundant if they do not change precedence of `or`-/`and`-patterns", - "markdown": "Parentheses surrounding a pattern are redundant if they do not change precedence of \\`or\\`-/\\`and\\`-patterns" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RedundantPatternParentheses", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConvertToPrimaryConstructor", - "shortDescription": { - "text": "Convert constructor into primary constructor" - }, - "fullDescription": { - "text": "Replace ordinary constructor with primary constructor Learn more...", - "markdown": "Replace ordinary constructor with primary constructor [Learn more...](https://www.jetbrains.com/help/rider/ConvertToPrimaryConstructor.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ConvertToPrimaryConstructor", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppRedundantLinebreak", - "shortDescription": { - "text": "Incorrect line breaks (line break is redundant elsewhere)" - }, - "fullDescription": { - "text": "Line break is redundant elsewhere", - "markdown": "Line break is redundant elsewhere" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppRedundantLinebreak", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Formatting", - "index": 28, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyZirconTemporaryObjects", - "shortDescription": { - "text": "zircon-temporary-objects clang-tidy check" - }, - "fullDescription": { - "text": "zircon-temporary-objects clang-tidy check · Learn more", - "markdown": "zircon-temporary-objects clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/zircon/temporary-objects.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyZirconTemporaryObjects", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticGlobalConstructors", - "shortDescription": { - "text": "global-constructors clang diagnostic" - }, - "fullDescription": { - "text": "-Wglobal-constructors clang diagnostic · Learn more", - "markdown": "-Wglobal-constructors clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wglobal-constructors)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticGlobalConstructors", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppRedundantTypenameKeyword", - "shortDescription": { - "text": "Redundant 'typename' keyword" - }, - "fullDescription": { - "text": "Redundant 'typename' keyword", - "markdown": "Redundant 'typename' keyword" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppRedundantTypenameKeyword", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Redundancies in Code", - "index": 34, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppDoxygenSyntaxError", - "shortDescription": { - "text": "Syntax error in doxygen comment" - }, - "fullDescription": { - "text": "Syntax error in a doxygen comment", - "markdown": "Syntax error in a doxygen comment" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppDoxygenSyntaxError", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UselessComparisonToIntegralConstant", - "shortDescription": { - "text": "Comparison to integral constant is useless" - }, - "fullDescription": { - "text": "Comparison to integral constant is useless; the constant is outside the range of the target type", - "markdown": "Comparison to integral constant is useless; the constant is outside the range of the target type" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "UselessComparisonToIntegralConstant", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppRedundantElseKeyword", - "shortDescription": { - "text": "Redundant 'else' keyword" - }, - "fullDescription": { - "text": "Redundant 'else' keyword", - "markdown": "Redundant 'else' keyword" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppRedundantElseKeyword", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Redundancies in Code", - "index": 34, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPackedNonPod", - "shortDescription": { - "text": "packed-non-pod clang diagnostic" - }, - "fullDescription": { - "text": "-Wpacked-non-pod clang diagnostic · Learn more", - "markdown": "-Wpacked-non-pod clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpacked-non-pod)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPackedNonPod", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCppcoreguidelinesSpecialMemberFunctions", - "shortDescription": { - "text": "cppcoreguidelines-special-member-functions clang-tidy check" - }, - "fullDescription": { - "text": "cppcoreguidelines-special-member-functions clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-special-member-functions clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/special-member-functions.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCppcoreguidelinesSpecialMemberFunctions", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EmptyConstructor", - "shortDescription": { - "text": "Empty constructor" - }, - "fullDescription": { - "text": "Empty public constructor declaration with no parameters is redundant. The compiler generates the same by default. Learn more...", - "markdown": "Empty public constructor declaration with no parameters is redundant. The compiler generates the same by default. [Learn more...](https://www.jetbrains.com/help/rider/EmptyConstructor.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "EmptyConstructor", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "StringIndexOfIsCultureSpecific.2", - "shortDescription": { - "text": "String.IndexOf is culture-specific (string.IndexOf(string, int) is culture-specific)" - }, - "fullDescription": { - "text": "$s$.IndexOf($sarg$, $iarg1$) Learn more...", - "markdown": "$s$.IndexOf($sarg$, $iarg1$) [Learn more...](https://www.jetbrains.com/help/rider/StringIndexOfIsCultureSpecific.2.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "StringIndexOfIsCultureSpecific.2", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneUnsafeFunctions", - "shortDescription": { - "text": "bugprone-unsafe-functions clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-unsafe-functions clang-tidy check · Learn more", - "markdown": "bugprone-unsafe-functions clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/unsafe-functions.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneUnsafeFunctions", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCppcoreguidelinesSlicing", - "shortDescription": { - "text": "cppcoreguidelines-slicing clang-tidy check" - }, - "fullDescription": { - "text": "cppcoreguidelines-slicing clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-slicing clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/slicing.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCppcoreguidelinesSlicing", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "StringIndexOfIsCultureSpecific.3", - "shortDescription": { - "text": "String.IndexOf is culture-specific (string.IndexOf(string, int) is culture-specific)" - }, - "fullDescription": { - "text": "$s$.IndexOf($sarg$, $iarg1$, $iarg2$) Learn more...", - "markdown": "$s$.IndexOf($sarg$, $iarg1$, $iarg2$) [Learn more...](https://www.jetbrains.com/help/rider/StringIndexOfIsCultureSpecific.3.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "StringIndexOfIsCultureSpecific.3", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMixPackoffset", - "shortDescription": { - "text": "mix-packoffset clang diagnostic" - }, - "fullDescription": { - "text": "-Wmix-packoffset clang diagnostic · Learn more", - "markdown": "-Wmix-packoffset clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmix-packoffset)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMixPackoffset", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "StringIndexOfIsCultureSpecific.1", - "shortDescription": { - "text": "String.IndexOf is culture-specific (string.IndexOf(string) is culture-specific)" - }, - "fullDescription": { - "text": "$s$.IndexOf($sarg$) Learn more...", - "markdown": "$s$.IndexOf($sarg$) [Learn more...](https://www.jetbrains.com/help/rider/StringIndexOfIsCultureSpecific.1.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "StringIndexOfIsCultureSpecific.1", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyMiscMisleadingBidirectional", - "shortDescription": { - "text": "misc-misleading-bidirectional clang-tidy check" - }, - "fullDescription": { - "text": "misc-misleading-bidirectional clang-tidy check · Learn more", - "markdown": "misc-misleading-bidirectional clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/misleading-bidirectional.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyMiscMisleadingBidirectional", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityConvertMemberFunctionsToStatic", - "shortDescription": { - "text": "readability-convert-member-functions-to-static clang-tidy check" - }, - "fullDescription": { - "text": "readability-convert-member-functions-to-static clang-tidy check · Learn more", - "markdown": "readability-convert-member-functions-to-static clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/convert-member-functions-to-static.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityConvertMemberFunctionsToStatic", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "StaticMemberInGenericType", - "shortDescription": { - "text": "Static field or auto-property in generic type" - }, - "fullDescription": { - "text": "Static field or auto-property in generic type may result in state duplication per each generic type instantiation Learn more...", - "markdown": "Static field or auto-property in generic type may result in state duplication per each generic type instantiation [Learn more...](https://www.jetbrains.com/help/rider/StaticMemberInGenericType.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "StaticMemberInGenericType", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUndefinedArmZa", - "shortDescription": { - "text": "undefined-arm-za clang diagnostic" - }, - "fullDescription": { - "text": "-Wundefined-arm-za clang diagnostic · Learn more", - "markdown": "-Wundefined-arm-za clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wundefined-arm-za)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUndefinedArmZa", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticReservedMacroIdentifier", - "shortDescription": { - "text": "reserved-macro-identifier clang diagnostic" - }, - "fullDescription": { - "text": "-Wreserved-macro-identifier clang diagnostic · Learn more", - "markdown": "-Wreserved-macro-identifier clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wreserved-macro-identifier)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticReservedMacroIdentifier", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyHicppVararg", - "shortDescription": { - "text": "hicpp-vararg clang-tidy check" - }, - "fullDescription": { - "text": "hicpp-vararg clang-tidy check · Learn more", - "markdown": "hicpp-vararg clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/vararg.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyHicppVararg", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyMiscDefinitionsInHeaders", - "shortDescription": { - "text": "misc-definitions-in-headers clang-tidy check" - }, - "fullDescription": { - "text": "misc-definitions-in-headers clang-tidy check · Learn more", - "markdown": "misc-definitions-in-headers clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/definitions-in-headers.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyMiscDefinitionsInHeaders", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantUsingDirective.Global", - "shortDescription": { - "text": "Redundant global using directive" - }, - "fullDescription": { - "text": "Global using directive is not required by the code and can be safely removed Learn more...", - "markdown": "Global using directive is not required by the code and can be safely removed [Learn more...](https://www.jetbrains.com/help/rider/RedundantUsingDirective.Global.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantUsingDirective.Global", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseIndexedProperty", - "shortDescription": { - "text": "Use indexed property" - }, - "fullDescription": { - "text": "Use indexed property in COM import types instead of the accessor usage", - "markdown": "Use indexed property in COM import types instead of the accessor usage" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UseIndexedProperty", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyMiscNewDeleteOverloads", - "shortDescription": { - "text": "misc-new-delete-overloads clang-tidy check" - }, - "fullDescription": { - "text": "misc-new-delete-overloads clang-tidy check · Learn more", - "markdown": "misc-new-delete-overloads clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/new-delete-overloads.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyMiscNewDeleteOverloads", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1049FadeOut", - "shortDescription": { - "text": "RoslynAnalyzers Simplify boolean comparison" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1049FadeOut", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDeprecatedEnumFloatConversion", - "shortDescription": { - "text": "deprecated-enum-float-conversion clang diagnostic" - }, - "fullDescription": { - "text": "-Wdeprecated-enum-float-conversion clang diagnostic · Learn more", - "markdown": "-Wdeprecated-enum-float-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-enum-float-conversion)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedEnumFloatConversion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppRedundantComplexityInComparison", - "shortDescription": { - "text": "Expression can be simplified" - }, - "fullDescription": { - "text": "Expression can be simplified", - "markdown": "Expression can be simplified" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppRedundantComplexityInComparison", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticRangeLoopBindReference", - "shortDescription": { - "text": "range-loop-bind-reference clang diagnostic" - }, - "fullDescription": { - "text": "-Wrange-loop-bind-reference clang diagnostic · Learn more", - "markdown": "-Wrange-loop-bind-reference clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wrange-loop-bind-reference)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticRangeLoopBindReference", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.LoadSceneWrongIndex", - "shortDescription": { - "text": "The index is missing in the build settings" - }, - "fullDescription": { - "text": "There is no scene with the same index in the Unity build settings.", - "markdown": "There is no scene with the same index in the Unity build settings." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.LoadSceneWrongIndex", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneSuspiciousReallocUsage", - "shortDescription": { - "text": "bugprone-suspicious-realloc-usage clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-suspicious-realloc-usage clang-tidy check · Learn more", - "markdown": "bugprone-suspicious-realloc-usage clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/suspicious-realloc-usage.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneSuspiciousReallocUsage", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "StringCompareToIsCultureSpecific", - "shortDescription": { - "text": "String.CompareTo is culture-specific" - }, - "fullDescription": { - "text": "$s1$.CompareTo($s2$) Learn more...", - "markdown": "$s1$.CompareTo($s2$) [Learn more...](https://www.jetbrains.com/help/rider/StringCompareToIsCultureSpecific.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "StringCompareToIsCultureSpecific", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EventNeverInvoked", - "shortDescription": { - "text": "Event never invoked" - }, - "fullDescription": { - "text": "Event never invoked. Note that in C# this warning is the compiler warning CS0067 and is not configured here.", - "markdown": "Event never invoked. Note that in C# this warning is the compiler warning CS0067 and is not configured here." - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "EventNeverInvoked", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerOsxCocoaNSAutoreleasePool", - "shortDescription": { - "text": "osx.cocoa.NSAutoreleasePool clang static analyzer check" - }, - "fullDescription": { - "text": "osx.cocoa.NSAutoreleasePool clang static analyzer check · Learn more", - "markdown": "osx.cocoa.NSAutoreleasePool clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerOsxCocoaNSAutoreleasePool", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticOverridingMethodMismatch", - "shortDescription": { - "text": "overriding-method-mismatch clang diagnostic" - }, - "fullDescription": { - "text": "-Woverriding-method-mismatch clang diagnostic · Learn more", - "markdown": "-Woverriding-method-mismatch clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#woverriding-method-mismatch)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticOverridingMethodMismatch", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ArrangeObjectCreationWhenTypeNotEvident", - "shortDescription": { - "text": "Use preferred style of 'new' expression when created type is not evident" - }, - "fullDescription": { - "text": "Add or remove explicit type specification in 'new' expression when type is not evident from the usage Learn more...", - "markdown": "Add or remove explicit type specification in 'new' expression when type is not evident from the usage [Learn more...](https://www.jetbrains.com/help/rider/ArrangeObjectCreationWhenTypeNotEvident.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "ArrangeObjectCreationWhenTypeNotEvident", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Syntax Style", - "index": 21, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EmptyForStatement", - "shortDescription": { - "text": "Empty 'for' loop is redundant" - }, - "fullDescription": { - "text": "Empty 'for' loop is redundant Learn more...", - "markdown": "Empty 'for' loop is redundant [Learn more...](https://www.jetbrains.com/help/rider/EmptyForStatement.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "EmptyForStatement", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Asp.NotResolved", - "shortDescription": { - "text": "Unknown symbol" - }, - "fullDescription": { - "text": "Unknown symbol in ASP.NET and related technologies", - "markdown": "Unknown symbol in ASP.NET and related technologies" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "Asp.NotResolved", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Aspx/Potential Code Quality Issues", - "index": 64, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnsupportedFriend", - "shortDescription": { - "text": "unsupported-friend clang diagnostic" - }, - "fullDescription": { - "text": "-Wunsupported-friend clang diagnostic · Learn more", - "markdown": "-Wunsupported-friend clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunsupported-friend)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnsupportedFriend", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneSpuriouslyWakeUpFunctions", - "shortDescription": { - "text": "bugprone-spuriously-wake-up-functions clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-spuriously-wake-up-functions clang-tidy check · Learn more", - "markdown": "bugprone-spuriously-wake-up-functions clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/spuriously-wake-up-functions.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneSpuriouslyWakeUpFunctions", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyAndroidCloexecAccept4", - "shortDescription": { - "text": "android-cloexec-accept4 clang-tidy check" - }, - "fullDescription": { - "text": "android-cloexec-accept4 clang-tidy check · Learn more", - "markdown": "android-cloexec-accept4 clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/android/cloexec-accept4.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyAndroidCloexecAccept4", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerOsxCocoaDealloc", - "shortDescription": { - "text": "osx.cocoa.Dealloc clang static analyzer check" - }, - "fullDescription": { - "text": "osx.cocoa.Dealloc clang static analyzer check · Learn more", - "markdown": "osx.cocoa.Dealloc clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerOsxCocoaDealloc", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IntDivisionByZero", - "shortDescription": { - "text": "Division by zero in at least one execution path" - }, - "fullDescription": { - "text": "Division by zero in at least one execution path", - "markdown": "Division by zero in at least one execution path" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "IntDivisionByZero", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticEnumTooLarge", - "shortDescription": { - "text": "enum-too-large clang diagnostic" - }, - "fullDescription": { - "text": "-Wenum-too-large clang diagnostic · Learn more", - "markdown": "-Wenum-too-large clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wenum-too-large)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticEnumTooLarge", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticProfileInstrUnprofiled", - "shortDescription": { - "text": "profile-instr-unprofiled clang diagnostic" - }, - "fullDescription": { - "text": "-Wprofile-instr-unprofiled clang diagnostic · Learn more", - "markdown": "-Wprofile-instr-unprofiled clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wprofile-instr-unprofiled)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticProfileInstrUnprofiled", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerCoreUninitializedBranch", - "shortDescription": { - "text": "core.uninitialized.Branch clang static analyzer check" - }, - "fullDescription": { - "text": "core.uninitialized.Branch clang static analyzer check · Learn more", - "markdown": "core.uninitialized.Branch clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerCoreUninitializedBranch", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerOsxCocoaVariadicMethodTypes", - "shortDescription": { - "text": "osx.cocoa.VariadicMethodTypes clang static analyzer check" - }, - "fullDescription": { - "text": "osx.cocoa.VariadicMethodTypes clang static analyzer check · Learn more", - "markdown": "osx.cocoa.VariadicMethodTypes clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerOsxCocoaVariadicMethodTypes", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1005FadeOut", - "shortDescription": { - "text": "RoslynAnalyzers Simplify nested using statement" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1005FadeOut", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyLlvmlibcCalleeNamespace", - "shortDescription": { - "text": "llvmlibc-callee-namespace clang-tidy check" - }, - "fullDescription": { - "text": "llvmlibc-callee-namespace clang-tidy check · Learn more", - "markdown": "llvmlibc-callee-namespace clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/llvmlibc/callee-namespace.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyLlvmlibcCalleeNamespace", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyAbseilDurationComparison", - "shortDescription": { - "text": "abseil-duration-comparison clang-tidy check" - }, - "fullDescription": { - "text": "abseil-duration-comparison clang-tidy check · Learn more", - "markdown": "abseil-duration-comparison clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/duration-comparison.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyAbseilDurationComparison", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticAutoVarId", - "shortDescription": { - "text": "auto-var-id clang diagnostic" - }, - "fullDescription": { - "text": "-Wauto-var-id clang diagnostic · Learn more", - "markdown": "-Wauto-var-id clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wauto-var-id)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticAutoVarId", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseCollectionExpression", - "shortDescription": { - "text": "Use collection expression syntax" - }, - "fullDescription": { - "text": "Suggest to replace collection object construction and items additions with C# 12 collection expression syntax Learn more...", - "markdown": "Suggest to replace collection object construction and items additions with C# 12 collection expression syntax [Learn more...](https://www.jetbrains.com/help/rider/UseCollectionExpression.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UseCollectionExpression", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppUnmatchedPragmaRegionDirective", - "shortDescription": { - "text": "Missing a matching '#pragma endregion' directive" - }, - "fullDescription": { - "text": "A '#pragma region' directive is missing a matching '#pragma endregion' directive", - "markdown": "A '#pragma region' directive is missing a matching '#pragma endregion' directive" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppUnmatchedPragmaRegionDirective", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithSingleOrDefault.4", - "shortDescription": { - "text": "Replace with SingleOrDefault($args$)" - }, - "fullDescription": { - "text": "$expr$ && $seq$.Any($args$) ? $seq$.Single($args$) : default($T$)", - "markdown": "$expr$ \\&\\& $seq$.Any($args$) ? $seq$.Single($args$) : default($T$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithSingleOrDefault.4", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithSingleOrDefault.2", - "shortDescription": { - "text": "Replace with SingleOrDefault($args$)" - }, - "fullDescription": { - "text": "$expr$ && $seq$.Any($args$) ? $seq$.Single($args$) : null", - "markdown": "$expr$ \\&\\& $seq$.Any($args$) ? $seq$.Single($args$) : null" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithSingleOrDefault.2", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithSingleOrDefault.3", - "shortDescription": { - "text": "Replace with SingleOrDefault($args$)" - }, - "fullDescription": { - "text": "$seq$.Any($args$) ? $seq$.Single($args$) : default($T$)", - "markdown": "$seq$.Any($args$) ? $seq$.Single($args$) : default($T$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithSingleOrDefault.3", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticModuleFileExtension", - "shortDescription": { - "text": "module-file-extension clang diagnostic" - }, - "fullDescription": { - "text": "-Wmodule-file-extension clang diagnostic · Learn more", - "markdown": "-Wmodule-file-extension clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmodule-file-extension)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticModuleFileExtension", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.BurstLoadingManagedType", - "shortDescription": { - "text": "Loading managed type is not supported" - }, - "fullDescription": { - "text": "Loading managed type is not supported", - "markdown": "Loading managed type is not supported" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.BurstLoadingManagedType", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity Burst Compiler Warnings", - "index": 57, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyHicppFunctionSize", - "shortDescription": { - "text": "hicpp-function-size clang-tidy check" - }, - "fullDescription": { - "text": "hicpp-function-size clang-tidy check · Learn more", - "markdown": "hicpp-function-size clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/function-size.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyHicppFunctionSize", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReturnTypeCanBeEnumerable.Local", - "shortDescription": { - "text": "Return type can be IEnumerable<T> (private accessibility)" - }, - "fullDescription": { - "text": "All usages of a method (or read-only property/indexer) use returned value as IEnumerable, but it is declared with more specific type (e.g. List) Learn more...", - "markdown": "All usages of a method (or read-only property/indexer) use returned value as IEnumerable, but it is declared with more specific type (e.g. List) [Learn more...](https://www.jetbrains.com/help/rider/ReturnTypeCanBeEnumerable.Local.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReturnTypeCanBeEnumerable.Local", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnusedMemberFunction", - "shortDescription": { - "text": "unused-member-function clang diagnostic" - }, - "fullDescription": { - "text": "-Wunused-member-function clang diagnostic · Learn more", - "markdown": "-Wunused-member-function clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunused-member-function)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnusedMemberFunction", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticExtraTokens", - "shortDescription": { - "text": "extra-tokens clang diagnostic" - }, - "fullDescription": { - "text": "-Wextra-tokens clang diagnostic · Learn more", - "markdown": "-Wextra-tokens clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wextra-tokens)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticExtraTokens", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithSingleOrDefault.1", - "shortDescription": { - "text": "Replace with SingleOrDefault($args$)" - }, - "fullDescription": { - "text": "$seq$.Any($args$) ? $seq$.Single($args$) : null", - "markdown": "$seq$.Any($args$) ? $seq$.Single($args$) : null" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithSingleOrDefault.1", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "StaticProblemInText", - "shortDescription": { - "text": "Cannot access static symbol in text argument" - }, - "fullDescription": { - "text": "Cannot access static symbol in text argument", - "markdown": "Cannot access static symbol in text argument" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "StaticProblemInText", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS2000", - "shortDescription": { - "text": "RoslynAnalyzers Add analyzer diagnostic IDs to analyzer release" - }, - "fullDescription": { - "text": "All supported analyzer diagnostic IDs should be part of an analyzer release.", - "markdown": "All supported analyzer diagnostic IDs should be part of an analyzer release." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS2000", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RouteTemplates.ActionRoutePrefixCanBeExtractedToControllerRoute", - "shortDescription": { - "text": "Action's route prefix can be extracted to controller's route" - }, - "fullDescription": { - "text": "When all controller's actions' route templates have same prefixes, it's possible to extract their common prefix to controller's route template", - "markdown": "When all controller's actions' route templates have same prefixes, it's possible to extract their common prefix to controller's route template" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RouteTemplates.ActionRoutePrefixCanBeExtractedToControllerRoute", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "ASP.NET route templates/Code Notification", - "index": 48, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticAixCompat", - "shortDescription": { - "text": "aix-compat clang diagnostic" - }, - "fullDescription": { - "text": "-Waix-compat clang diagnostic · Learn more", - "markdown": "-Waix-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#waix-compat)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticAixCompat", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "InterpolatedStringExpressionIsNotIFormattable", - "shortDescription": { - "text": "Formatting is specified, but interpolated string expression is not IFormattable" - }, - "fullDescription": { - "text": "Formatting is specified, but interpolated string expression is not IFormattable", - "markdown": "Formatting is specified, but interpolated string expression is not IFormattable" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "InterpolatedStringExpressionIsNotIFormattable", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "InvertIf", - "shortDescription": { - "text": "Invert 'if' statement to reduce nesting" - }, - "fullDescription": { - "text": "Invert 'if' statement to reduce nesting Learn more...", - "markdown": "Invert 'if' statement to reduce nesting [Learn more...](https://www.jetbrains.com/help/rider/InvertIf.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "InvertIf", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnusedField.Compiler", - "shortDescription": { - "text": "Field is never used" - }, - "fullDescription": { - "text": "Field is never used (compiler warning) Learn more...", - "markdown": "Field is never used (compiler warning) [Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/misc/cs0169)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "UnusedField.Compiler", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMicrosoftStringLiteralFromPredefined", - "shortDescription": { - "text": "microsoft-string-literal-from-predefined clang diagnostic" - }, - "fullDescription": { - "text": "-Wmicrosoft-string-literal-from-predefined clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-string-literal-from-predefined clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-string-literal-from-predefined)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftStringLiteralFromPredefined", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyFuchsiaOverloadedOperator", - "shortDescription": { - "text": "fuchsia-overloaded-operator clang-tidy check" - }, - "fullDescription": { - "text": "fuchsia-overloaded-operator clang-tidy check · Learn more", - "markdown": "fuchsia-overloaded-operator clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/fuchsia/overloaded-operator.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyFuchsiaOverloadedOperator", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCastOfSelType", - "shortDescription": { - "text": "cast-of-sel-type clang diagnostic" - }, - "fullDescription": { - "text": "-Wcast-of-sel-type clang diagnostic · Learn more", - "markdown": "-Wcast-of-sel-type clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcast-of-sel-type)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCastOfSelType", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IntVariableOverflowInUncheckedContext", - "shortDescription": { - "text": "Possible overflow in unchecked context" - }, - "fullDescription": { - "text": "Possible overflow in unchecked context", - "markdown": "Possible overflow in unchecked context" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "IntVariableOverflowInUncheckedContext", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ObjectCreationAsStatement", - "shortDescription": { - "text": "Possible unassigned object created by 'new' expression" - }, - "fullDescription": { - "text": "Object created by 'new' expression is possibly not assigned anywhere", - "markdown": "Object created by 'new' expression is possibly not assigned anywhere" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "ObjectCreationAsStatement", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantNullnessAttributeWithNullableReferenceTypes", - "shortDescription": { - "text": "[NotNull] or [CanBeNull] attribute is applied to a type that already has the same annotation from nullable reference types" - }, - "fullDescription": { - "text": "[NotNull] or [CanBeNull] attribute has no effect because the target type already has the same annotation from nullable reference types", - "markdown": "\\[NotNull\\] or \\[CanBeNull\\] attribute has no effect because the target type already has the same annotation from nullable reference types" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantNullnessAttributeWithNullableReferenceTypes", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerCoreUninitializedNewArraySize", - "shortDescription": { - "text": "core.uninitialized.NewArraySize clang static analyzer check" - }, - "fullDescription": { - "text": "core.uninitialized.NewArraySize clang static analyzer check · Learn more", - "markdown": "core.uninitialized.NewArraySize clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerCoreUninitializedNewArraySize", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "StreamReadReturnValueIgnored", - "shortDescription": { - "text": "Actual number of bytes read by 'Stream.Read()' is ignored" - }, - "fullDescription": { - "text": "Use 'Stream.ReadExactly()' instead of 'Read()' to ensure that the number of bytes read from the stream is equal to the expected value", - "markdown": "Use 'Stream.ReadExactly()' instead of 'Read()' to ensure that the number of bytes read from the stream is equal to the expected value" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "StreamReadReturnValueIgnored", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1130", - "shortDescription": { - "text": "RoslynAnalyzers Bitwise operation on enum without Flags attribute" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1130", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppRedundantExportKeyword", - "shortDescription": { - "text": "Keyword 'export' is redundant, because there is enclosing export declaration" - }, - "fullDescription": { - "text": "Keyword 'export' is redundant, because there is enclosing export declaration", - "markdown": "Keyword 'export' is redundant, because there is enclosing export declaration" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppRedundantExportKeyword", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Redundancies in Code", - "index": 34, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.PathError", - "shortDescription": { - "text": "Path error" - }, - "fullDescription": { - "text": "Path error", - "markdown": "Path error" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Xaml.PathError", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Potential Code Quality Issues", - "index": 45, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticC2xCompat", - "shortDescription": { - "text": "c2x-compat clang diagnostic" - }, - "fullDescription": { - "text": "-Wc2x-compat clang diagnostic · Learn more", - "markdown": "-Wc2x-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc2x-compat)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticC2xCompat", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyPerformanceFasterStringFind", - "shortDescription": { - "text": "performance-faster-string-find clang-tidy check" - }, - "fullDescription": { - "text": "performance-faster-string-find clang-tidy check · Learn more", - "markdown": "performance-faster-string-find clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance/faster-string-find.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyPerformanceFasterStringFind", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConditionIsAlwaysTrueOrFalse", - "shortDescription": { - "text": "Expression is always 'true' or always 'false'" - }, - "fullDescription": { - "text": "Value of a boolean expression is always the same at this point Learn more...", - "markdown": "Value of a boolean expression is always the same at this point [Learn more...](https://www.jetbrains.com/help/rider/ConditionIsAlwaysTrueOrFalse.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "ConditionIsAlwaysTrueOrFalse", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticStringPlusInt", - "shortDescription": { - "text": "string-plus-int clang diagnostic" - }, - "fullDescription": { - "text": "-Wstring-plus-int clang diagnostic · Learn more", - "markdown": "-Wstring-plus-int clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wstring-plus-int)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticStringPlusInt", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConstructorInitializerLoop", - "shortDescription": { - "text": "Possible cyclic constructor call" - }, - "fullDescription": { - "text": "Possible cyclic constructor call Learn more...", - "markdown": "Possible cyclic constructor call [Learn more...](https://www.jetbrains.com/help/rider/ConstructorInitializerLoop.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "ConstructorInitializerLoop", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBReplaceWithFirstOrDefault", - "shortDescription": { - "text": "Replace with FirstOrDefault($args$)" - }, - "fullDescription": { - "text": "If ($seq$.Any($args$), $seq$.First($args$), Nothing)", - "markdown": "If ($seq$.Any($args$), $seq$.First($args$), Nothing)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBReplaceWithFirstOrDefault", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1128", - "shortDescription": { - "text": "RoslynAnalyzers Use coalesce expression" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1128", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1129", - "shortDescription": { - "text": "RoslynAnalyzers Remove redundant field initialization" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1129", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppUseAssociativeContains", - "shortDescription": { - "text": "'contains' member function can be used" - }, - "fullDescription": { - "text": "'contains' member function can be used", - "markdown": "'contains' member function can be used" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppUseAssociativeContains", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Common Practices and Code Improvements", - "index": 16, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1124", - "shortDescription": { - "text": "RoslynAnalyzers Inline local variable" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1124", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMultichar", - "shortDescription": { - "text": "multichar clang diagnostic" - }, - "fullDescription": { - "text": "-Wmultichar clang diagnostic · Learn more", - "markdown": "-Wmultichar clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmultichar)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMultichar", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1126", - "shortDescription": { - "text": "RoslynAnalyzers Add braces to if-else" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1126", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyHicppMemberInit", - "shortDescription": { - "text": "hicpp-member-init clang-tidy check" - }, - "fullDescription": { - "text": "hicpp-member-init clang-tidy check · Learn more", - "markdown": "hicpp-member-init clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/member-init.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyHicppMemberInit", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1123", - "shortDescription": { - "text": "RoslynAnalyzers Add parentheses when necessary" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "RCS1123", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBSimplifyLinqExpression.9", - "shortDescription": { - "text": "Simplify expression" - }, - "fullDescription": { - "text": "!$seq$.All(Function ($x$) $expr$ Is $expr2$)", - "markdown": "!$seq$.All(Function ($x$) $expr$ Is $expr2$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBSimplifyLinqExpression.9", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityRedundantAccessSpecifiers", - "shortDescription": { - "text": "readability-redundant-access-specifiers clang-tidy check" - }, - "fullDescription": { - "text": "readability-redundant-access-specifiers clang-tidy check · Learn more", - "markdown": "readability-redundant-access-specifiers clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/redundant-access-specifiers.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityRedundantAccessSpecifiers", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticInvalidOffsetof", - "shortDescription": { - "text": "invalid-offsetof clang diagnostic" - }, - "fullDescription": { - "text": "-Winvalid-offsetof clang diagnostic · Learn more", - "markdown": "-Winvalid-offsetof clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winvalid-offsetof)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticInvalidOffsetof", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPrivateExtern", - "shortDescription": { - "text": "private-extern clang diagnostic" - }, - "fullDescription": { - "text": "-Wprivate-extern clang diagnostic · Learn more", - "markdown": "-Wprivate-extern clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wprivate-extern)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPrivateExtern", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBSimplifyLinqExpression.1", - "shortDescription": { - "text": "Simplify expression" - }, - "fullDescription": { - "text": "!$seq$.Any(Function ($x$) Not $expr$)", - "markdown": "!$seq$.Any(Function ($x$) Not $expr$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBSimplifyLinqExpression.1", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBSimplifyLinqExpression.2", - "shortDescription": { - "text": "Simplify expression" - }, - "fullDescription": { - "text": "!$seq$.All(Function ($x$) Not $expr$)", - "markdown": "!$seq$.All(Function ($x$) Not $expr$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBSimplifyLinqExpression.2", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBSimplifyLinqExpression.3", - "shortDescription": { - "text": "Simplify expression" - }, - "fullDescription": { - "text": "!$seq$.Any(Function ($x$) $expr$ IsNot $expr2$)", - "markdown": "!$seq$.Any(Function ($x$) $expr$ IsNot $expr2$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBSimplifyLinqExpression.3", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBSimplifyLinqExpression.4", - "shortDescription": { - "text": "Simplify expression" - }, - "fullDescription": { - "text": "!$seq$.Any(Function ($x$) $expr$ <> $expr2$)", - "markdown": "!$seq$.Any(Function ($x$) $expr$ \\<\\> $expr2$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBSimplifyLinqExpression.4", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RazorErrors", - "shortDescription": { - "text": "Razor Errors" - }, - "fullDescription": { - "text": "Razor Errors", - "markdown": "Razor Errors" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "RazorErrors", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Razor/Non configurable", - "index": 107, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBSimplifyLinqExpression.5", - "shortDescription": { - "text": "Simplify expression" - }, - "fullDescription": { - "text": "!$seq$.All(Function ($x$) $expr$ IsNot $expr2$)", - "markdown": "!$seq$.All(Function ($x$) $expr$ IsNot $expr2$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBSimplifyLinqExpression.5", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBSimplifyLinqExpression.6", - "shortDescription": { - "text": "Simplify expression" - }, - "fullDescription": { - "text": "!$seq$.All(Function ($x$) $expr$ <> $expr2$)", - "markdown": "!$seq$.All(Function ($x$) $expr$ \\<\\> $expr2$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBSimplifyLinqExpression.6", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticStaticLocalInInline", - "shortDescription": { - "text": "static-local-in-inline clang diagnostic" - }, - "fullDescription": { - "text": "-Wstatic-local-in-inline clang diagnostic · Learn more", - "markdown": "-Wstatic-local-in-inline clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wstatic-local-in-inline)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticStaticLocalInInline", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBSimplifyLinqExpression.7", - "shortDescription": { - "text": "Simplify expression" - }, - "fullDescription": { - "text": "!$seq$.Any(Function ($x$) $expr$ Is $expr2$)", - "markdown": "!$seq$.Any(Function ($x$) $expr$ Is $expr2$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBSimplifyLinqExpression.7", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBSimplifyLinqExpression.8", - "shortDescription": { - "text": "Simplify expression" - }, - "fullDescription": { - "text": "!$seq$.Any(Function ($x$) $expr$ = $expr2$)", - "markdown": "!$seq$.Any(Function ($x$) $expr$ = $expr2$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBSimplifyLinqExpression.8", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AccessRightsInText", - "shortDescription": { - "text": "Cannot access symbol in text argument" - }, - "fullDescription": { - "text": "Cannot access symbol in text argument", - "markdown": "Cannot access symbol in text argument" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "AccessRightsInText", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticArcNonPodMemaccess", - "shortDescription": { - "text": "arc-non-pod-memaccess clang diagnostic" - }, - "fullDescription": { - "text": "-Warc-non-pod-memaccess clang diagnostic · Learn more", - "markdown": "-Warc-non-pod-memaccess clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#warc-non-pod-memaccess)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticArcNonPodMemaccess", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerSecuritySetgidSetuidOrder", - "shortDescription": { - "text": "security.SetgidSetuidOrder clang static analyzer check" - }, - "fullDescription": { - "text": "security.SetgidSetuidOrder clang static analyzer check · Learn more", - "markdown": "security.SetgidSetuidOrder clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerSecuritySetgidSetuidOrder", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1118", - "shortDescription": { - "text": "RoslynAnalyzers Mark local variable as const" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "RCS1118", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1113", - "shortDescription": { - "text": "RoslynAnalyzers Use 'string.IsNullOrEmpty' method" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1113", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1114", - "shortDescription": { - "text": "RoslynAnalyzers Remove redundant delegate creation" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1114", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "WebConfig.RedundantAddNamespaceTag", - "shortDescription": { - "text": "Redundant add namespace element" - }, - "fullDescription": { - "text": "Add namespace element is redundant because it duplicates another element of is cleared later and can be safely removed", - "markdown": "Add namespace element is redundant because it duplicates another element of is cleared later and can be safely removed" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "WebConfig.RedundantAddNamespaceTag", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Web.Config/Redundancies in Code", - "index": 98, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp11InlineNamespace", - "shortDescription": { - "text": "c++11-inline-namespace clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++11-inline-namespace clang diagnostic · Learn more", - "markdown": "-Wc++11-inline-namespace clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-11-inline-namespace)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp11InlineNamespace", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1110", - "shortDescription": { - "text": "RoslynAnalyzers Declare type inside namespace" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1110", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1111", - "shortDescription": { - "text": "RoslynAnalyzers Add braces to switch section with multiple statements" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1111", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1112", - "shortDescription": { - "text": "RoslynAnalyzers Combine 'Enumerable.Where' method chain" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1112", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1151", - "shortDescription": { - "text": "RoslynAnalyzers Remove redundant cast" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1151", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EntityFramework.ClientSideDbFunctionCall", - "shortDescription": { - "text": "Database function must not be called in non-database context" - }, - "fullDescription": { - "text": "Reports database-only methods that can produce runtime exceptions when called outside the 'LINQ to Entities' context Learn more...", - "markdown": "Reports database-only methods that can produce runtime exceptions when called outside the 'LINQ to Entities' context [Learn more...](https://www.jetbrains.com/help/rider/EntityFramework.ClientSideDbFunctionCall.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "EntityFramework.ClientSideDbFunctionCall", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Entity Framework", - "index": 37, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyModernizeMakeUnique", - "shortDescription": { - "text": "modernize-make-unique clang-tidy check" - }, - "fullDescription": { - "text": "modernize-make-unique clang-tidy check · Learn more", - "markdown": "modernize-make-unique clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/make-unique.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyModernizeMakeUnique", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppNonExplicitConvertingConstructor", - "shortDescription": { - "text": "Non-explicit converting constructor" - }, - "fullDescription": { - "text": "Non-explicit converting constructor Learn more...", - "markdown": "Non-explicit converting constructor [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rc-explicit)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppNonExplicitConvertingConstructor", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Common Practices and Code Improvements", - "index": 16, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyGoogleBuildUsingNamespace", - "shortDescription": { - "text": "google-build-using-namespace clang-tidy check" - }, - "fullDescription": { - "text": "google-build-using-namespace clang-tidy check · Learn more", - "markdown": "google-build-using-namespace clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/google/build-using-namespace.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyGoogleBuildUsingNamespace", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseDiscardAssignment", - "shortDescription": { - "text": "Use discard assignment" - }, - "fullDescription": { - "text": "Replace intentionally ignored variable declaration 'var _ = ...' with discard assignment '_ = ...'. Learn more...", - "markdown": "Replace intentionally ignored variable declaration 'var _ = ...' with discard assignment '_ = ...'. [Learn more...](https://www.jetbrains.com/help/rider/UseDiscardAssignment.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "UseDiscardAssignment", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyGoogleRuntimeInt", - "shortDescription": { - "text": "google-runtime-int clang-tidy check" - }, - "fullDescription": { - "text": "google-runtime-int clang-tidy check · Learn more", - "markdown": "google-runtime-int clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/google/runtime-int.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyGoogleRuntimeInt", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1146", - "shortDescription": { - "text": "RoslynAnalyzers Use conditional access" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1146", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1142", - "shortDescription": { - "text": "RoslynAnalyzers Add 'typeparam' element to documentation comment" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1142", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1143", - "shortDescription": { - "text": "RoslynAnalyzers Simplify coalesce expression" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1143", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ContractAnnotationNotParsed", - "shortDescription": { - "text": "Problem in contract annotation definition" - }, - "fullDescription": { - "text": "Input string in ContractAnnotation attribute could not be parsed Learn more...", - "markdown": "Input string in ContractAnnotation attribute could not be parsed [Learn more...](https://www.jetbrains.com/help/rider/ContractAnnotationNotParsed.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "ContractAnnotationNotParsed", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Constraints Violations", - "index": 80, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1145", - "shortDescription": { - "text": "RoslynAnalyzers Remove redundant 'as' operator" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1145", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1140", - "shortDescription": { - "text": "RoslynAnalyzers Add exception to documentation comment" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1140", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppRedundantDereferencingAndTakingAddress", - "shortDescription": { - "text": "Redundant dereferencing and taking address" - }, - "fullDescription": { - "text": "Redundant dereferencing and taking address", - "markdown": "Redundant dereferencing and taking address" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppRedundantDereferencingAndTakingAddress", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Redundancies in Code", - "index": 34, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticTautologicalBitwiseCompare", - "shortDescription": { - "text": "tautological-bitwise-compare clang diagnostic" - }, - "fullDescription": { - "text": "-Wtautological-bitwise-compare clang diagnostic · Learn more", - "markdown": "-Wtautological-bitwise-compare clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wtautological-bitwise-compare)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticTautologicalBitwiseCompare", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1141", - "shortDescription": { - "text": "RoslynAnalyzers Add 'param' element to documentation comment" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1141", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBReplaceWithLastOrDefault", - "shortDescription": { - "text": "Replace with LastOrDefault($args$)" - }, - "fullDescription": { - "text": "If ($seq$.Any($args$), $seq$.Last($args$), Nothing)", - "markdown": "If ($seq$.Any($args$), $seq$.Last($args$), Nothing)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBReplaceWithLastOrDefault", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "WithExpressionInsteadOfInitializer", - "shortDescription": { - "text": "'with' expression is used instead of object initializer" - }, - "fullDescription": { - "text": "'with' expression applied to a newly created object instance results in unnecessary clone creation", - "markdown": "'with' expression applied to a newly created object instance results in unnecessary clone creation" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "WithExpressionInsteadOfInitializer", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticExperimentalHeaderUnits", - "shortDescription": { - "text": "experimental-header-units clang diagnostic" - }, - "fullDescription": { - "text": "-Wexperimental-header-units clang diagnostic · Learn more", - "markdown": "-Wexperimental-header-units clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wexperimental-header-units)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticExperimentalHeaderUnits", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticNullPointerSubtraction", - "shortDescription": { - "text": "null-pointer-subtraction clang diagnostic" - }, - "fullDescription": { - "text": "-Wnull-pointer-subtraction clang diagnostic · Learn more", - "markdown": "-Wnull-pointer-subtraction clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnull-pointer-subtraction)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticNullPointerSubtraction", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceObjectPatternWithVarPattern", - "shortDescription": { - "text": "Replace object pattern not performing any additional checks with 'var' pattern" - }, - "fullDescription": { - "text": "Replace '{ } x' object pattern not performing any additional checks with 'var x' pattern", - "markdown": "Replace '{ } x' object pattern not performing any additional checks with 'var x' pattern" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceObjectPatternWithVarPattern", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantExplicitArrayCreation", - "shortDescription": { - "text": "Redundant explicit type in array creation" - }, - "fullDescription": { - "text": "When array type can be inferred from the initializer, you can use an implicitly-typed array Learn more...", - "markdown": "When array type can be inferred from the initializer, you can use an implicitly-typed array [Learn more...](https://www.jetbrains.com/help/rider/RedundantExplicitArrayCreation.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "RedundantExplicitArrayCreation", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SimplifyIIf", - "shortDescription": { - "text": "Simplify 'IIf'" - }, - "fullDescription": { - "text": "'IIf' contains 'True' or 'False' in result branch, for example \r\n IIf(condition, True, elseBranch)\r\n IIf(condition, thenBranch : True)", - "markdown": "'IIf' contains 'True' or 'False' in result branch, for example\n\n```\n\r\n IIf(condition, True, elseBranch)\r\n IIf(condition, thenBranch : True)\r\n \n```" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "SimplifyIIf", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1139", - "shortDescription": { - "text": "RoslynAnalyzers Add summary element to documentation comment" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RCS1139", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1135", - "shortDescription": { - "text": "RoslynAnalyzers Declare enum member with zero value (when enum has FlagsAttribute)" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1135", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1136", - "shortDescription": { - "text": "RoslynAnalyzers Merge switch sections with equivalent content" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1136", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1138", - "shortDescription": { - "text": "RoslynAnalyzers Add summary to documentation comment" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RCS1138", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PartialTypeWithSinglePart", - "shortDescription": { - "text": "Redundant 'partial' modifier on type declaration" - }, - "fullDescription": { - "text": "Class is declared as 'partial', but has only one part Learn more...", - "markdown": "Class is declared as 'partial', but has only one part [Learn more...](https://www.jetbrains.com/help/rider/PartialTypeWithSinglePart.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "PartialTypeWithSinglePart", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1132", - "shortDescription": { - "text": "RoslynAnalyzers Remove redundant overriding member" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1132", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1133", - "shortDescription": { - "text": "RoslynAnalyzers Remove redundant Dispose/Close call" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1133", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PossibleInvalidOperationExceptionCollectionWasModified", - "shortDescription": { - "text": "Possible 'System.InvalidOperationException: Collection was modified'" - }, - "fullDescription": { - "text": "Modifying the collection could result in a 'System.InvalidOperationException: Collection was modified' in the next foreach iteration", - "markdown": "Modifying the collection could result in a 'System.InvalidOperationException: Collection was modified' in the next foreach iteration" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "PossibleInvalidOperationExceptionCollectionWasModified", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1134", - "shortDescription": { - "text": "RoslynAnalyzers Remove redundant statement" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1134", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnknownPragmas", - "shortDescription": { - "text": "unknown-pragmas clang diagnostic" - }, - "fullDescription": { - "text": "-Wunknown-pragmas clang diagnostic · Learn more", - "markdown": "-Wunknown-pragmas clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunknown-pragmas)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnknownPragmas", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MemberCanBeInternal", - "shortDescription": { - "text": "Member or type can be made internal (friend)" - }, - "fullDescription": { - "text": "Member or type can be made internal (friend)", - "markdown": "Member or type can be made internal (friend)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "MemberCanBeInternal", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDisabledMacroExpansion", - "shortDescription": { - "text": "disabled-macro-expansion clang diagnostic" - }, - "fullDescription": { - "text": "-Wdisabled-macro-expansion clang diagnostic · Learn more", - "markdown": "-Wdisabled-macro-expansion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdisabled-macro-expansion)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDisabledMacroExpansion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneSharedPtrArrayMismatch", - "shortDescription": { - "text": "bugprone-shared-ptr-array-mismatch clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-shared-ptr-array-mismatch clang-tidy check · Learn more", - "markdown": "bugprone-shared-ptr-array-mismatch clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/shared-ptr-array-mismatch.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneSharedPtrArrayMismatch", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyHicppNamedParameter", - "shortDescription": { - "text": "hicpp-named-parameter clang-tidy check" - }, - "fullDescription": { - "text": "hicpp-named-parameter clang-tidy check · Learn more", - "markdown": "hicpp-named-parameter clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/named-parameter.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyHicppNamedParameter", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseFormatSpecifierInFormatString", - "shortDescription": { - "text": "Use format specifier in format strings" - }, - "fullDescription": { - "text": "'.ToString()' call can be replaced with format specifier Learn more...", - "markdown": "'.ToString()' call can be replaced with format specifier [Learn more...](https://www.jetbrains.com/help/rider/UseFormatSpecifierInFormatString.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UseFormatSpecifierInFormatString", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MissingSpace", - "shortDescription": { - "text": "Incorrect spacing (space is missing elsewhere)" - }, - "fullDescription": { - "text": "Space is missing elsewhere Learn more...", - "markdown": "Space is missing elsewhere [Learn more...](https://www.jetbrains.com/help/rider/MissingSpace.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "MissingSpace", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Formatting", - "index": 24, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ForeachCanBeConvertedToQueryUsingAnotherGetEnumerator", - "shortDescription": { - "text": "Foreach loop can be converted into LINQ-expression but another 'GetEnumerator' method will be used" - }, - "fullDescription": { - "text": "A 'foreach' ('For Each' for VB.NET) can be converted into a LINQ-expression but another 'GetEnumerator' method will be used", - "markdown": "A 'foreach' ('For Each' for VB.NET) can be converted into a LINQ-expression but another 'GetEnumerator' method will be used" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ForeachCanBeConvertedToQueryUsingAnotherGetEnumerator", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerOsxCocoaMissingSuperCall", - "shortDescription": { - "text": "osx.cocoa.MissingSuperCall clang static analyzer check" - }, - "fullDescription": { - "text": "osx.cocoa.MissingSuperCall clang static analyzer check · Learn more", - "markdown": "osx.cocoa.MissingSuperCall clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerOsxCocoaMissingSuperCall", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HeuristicUnreachableCode", - "shortDescription": { - "text": "Heuristically unreachable code" - }, - "fullDescription": { - "text": "Heuristically unreachable code detected Learn more...", - "markdown": "Heuristically unreachable code detected [Learn more...](https://www.jetbrains.com/help/rider/HeuristicUnreachableCode.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "HeuristicUnreachableCode", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantSuppressNullableWarningExpression", - "shortDescription": { - "text": "Redundant nullable warning suppression expression" - }, - "fullDescription": { - "text": "Nullable warning suppression expression does not suppress any warnings and is applied to an already non-nullable operand Learn more...", - "markdown": "Nullable warning suppression expression does not suppress any warnings and is applied to an already non-nullable operand [Learn more...](https://www.jetbrains.com/help/rider/RedundantSuppressNullableWarningExpression.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantSuppressNullableWarningExpression", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneParentVirtualCall", - "shortDescription": { - "text": "bugprone-parent-virtual-call clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-parent-virtual-call clang-tidy check · Learn more", - "markdown": "bugprone-parent-virtual-call clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/parent-virtual-call.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneParentVirtualCall", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ArrangeAccessorOwnerBody", - "shortDescription": { - "text": "Use preferred body style (convert into property, indexer, or event with preferred body style)" - }, - "fullDescription": { - "text": "Use expression or block body Learn more...", - "markdown": "Use expression or block body [Learn more...](https://www.jetbrains.com/help/rider/ArrangeAccessorOwnerBody.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "ArrangeAccessorOwnerBody", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Syntax Style", - "index": 21, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NotAccessedPositionalProperty.Global", - "shortDescription": { - "text": "Non-accessed positional property (non-private accessibility)" - }, - "fullDescription": { - "text": "Positional property is never accessed for reading Learn more...", - "markdown": "Positional property is never accessed for reading [Learn more...](https://www.jetbrains.com/help/rider/NotAccessedPositionalProperty.Global.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NotAccessedPositionalProperty.Global", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticIncompatiblePropertyType", - "shortDescription": { - "text": "incompatible-property-type clang diagnostic" - }, - "fullDescription": { - "text": "-Wincompatible-property-type clang diagnostic · Learn more", - "markdown": "-Wincompatible-property-type clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wincompatible-property-type)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticIncompatiblePropertyType", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Mvc.ViewNotResolved", - "shortDescription": { - "text": "MVC (unknown view)" - }, - "fullDescription": { - "text": "Unknown ASP.NET MVC View Learn more...", - "markdown": "Unknown ASP.NET MVC View [Learn more...](https://www.jetbrains.com/help/rider/Mvc.ViewNotResolved.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Mvc.ViewNotResolved", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Aspx/Potential Code Quality Issues", - "index": 64, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppBadAngleBracketsSpaces", - "shortDescription": { - "text": "Incorrect spacing (around angle brackets)" - }, - "fullDescription": { - "text": "Around angle brackets", - "markdown": "Around angle brackets" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppBadAngleBracketsSpaces", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Formatting", - "index": 28, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyGoogleReadabilityAvoidUnderscoreInGoogletestName", - "shortDescription": { - "text": "google-readability-avoid-underscore-in-googletest-name clang-tidy check" - }, - "fullDescription": { - "text": "google-readability-avoid-underscore-in-googletest-name clang-tidy check · Learn more", - "markdown": "google-readability-avoid-underscore-in-googletest-name clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/google/readability-avoid-underscore-in-googletest-name.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyGoogleReadabilityAvoidUnderscoreInGoogletestName", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerCplusplusPureVirtualCall", - "shortDescription": { - "text": "cplusplus.PureVirtualCall clang static analyzer check" - }, - "fullDescription": { - "text": "cplusplus.PureVirtualCall clang static analyzer check · Learn more", - "markdown": "cplusplus.PureVirtualCall clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerCplusplusPureVirtualCall", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppBoostFormatMixedArgs", - "shortDescription": { - "text": "Positional and non-positional arguments in the same boost::format call" - }, - "fullDescription": { - "text": "An argument of boost::format should contain either positional (%N%, %|N$...|) or serial (%|...|, %s) arguments, not both", - "markdown": "An argument of boost::format should contain either positional (%N%, %\\|N$...\\|) or serial (%\\|...\\|, %s) arguments, not both" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "CppBoostFormatMixedArgs", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1106", - "shortDescription": { - "text": "RoslynAnalyzers [deprecated] Remove empty destructor" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1106", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1107", - "shortDescription": { - "text": "RoslynAnalyzers Remove redundant 'ToCharArray' call" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1107", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppEnforceFunctionDeclarationStyle", - "shortDescription": { - "text": "Use preferred declaration style (enforce function declaration style)" - }, - "fullDescription": { - "text": "Enforce usage of the trailing return type or the regular return type syntax", - "markdown": "Enforce usage of the trailing return type or the regular return type syntax" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppEnforceFunctionDeclarationStyle", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Syntax Style", - "index": 91, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1108", - "shortDescription": { - "text": "RoslynAnalyzers Add 'static' modifier to all partial class declarations" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1108", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticNullConversion", - "shortDescription": { - "text": "null-conversion clang diagnostic" - }, - "fullDescription": { - "text": "-Wnull-conversion clang diagnostic · Learn more", - "markdown": "-Wnull-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnull-conversion)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticNullConversion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1102", - "shortDescription": { - "text": "RoslynAnalyzers Make class static" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RCS1102", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1103", - "shortDescription": { - "text": "RoslynAnalyzers Convert 'if' to assignment" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1103", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1104", - "shortDescription": { - "text": "RoslynAnalyzers Simplify conditional expression" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1104", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1105", - "shortDescription": { - "text": "RoslynAnalyzers Unnecessary interpolation" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1105", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1100", - "shortDescription": { - "text": "RoslynAnalyzers [deprecated] Format documentation summary on a single line" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1100", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1101", - "shortDescription": { - "text": "RoslynAnalyzers [deprecated] Format documentation summary on multiple lines" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1101", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPedanticCoreFeatures", - "shortDescription": { - "text": "pedantic-core-features clang diagnostic" - }, - "fullDescription": { - "text": "-Wpedantic-core-features clang diagnostic · Learn more", - "markdown": "-Wpedantic-core-features clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpedantic-core-features)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPedanticCoreFeatures", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyPerformanceNoAutomaticMove", - "shortDescription": { - "text": "performance-no-automatic-move clang-tidy check" - }, - "fullDescription": { - "text": "performance-no-automatic-move clang-tidy check · Learn more", - "markdown": "performance-no-automatic-move clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance/no-automatic-move.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyPerformanceNoAutomaticMove", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticVexingParse", - "shortDescription": { - "text": "vexing-parse clang diagnostic" - }, - "fullDescription": { - "text": "-Wvexing-parse clang diagnostic · Learn more", - "markdown": "-Wvexing-parse clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wvexing-parse)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticVexingParse", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBWarnings__BC42505", - "shortDescription": { - "text": "The CallerArgumentExpressionAttribute applied to parameter will have no effect. It is applied with an invalid parameter name." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "VBWarnings__BC42505", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Compiler Warnings", - "index": 110, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppMsExtReinterpretCastFromNullptr", - "shortDescription": { - "text": "Casting from nullptr to pointer type with reinterpret_cast is non-standard Microsoft C++ extension" - }, - "fullDescription": { - "text": "Casting from nullptr to pointer type with reinterpret_cast is non-standard Microsoft C++ extension", - "markdown": "Casting from nullptr to pointer type with reinterpret_cast is non-standard Microsoft C++ extension" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppMsExtReinterpretCastFromNullptr", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnreachableSwitchCaseDueToIntegerAnalysis", - "shortDescription": { - "text": "Heuristically unreachable case according to integer analysis" - }, - "fullDescription": { - "text": "Heuristically unreachable case label according to integer analysis Learn more...", - "markdown": "Heuristically unreachable case label according to integer analysis [Learn more...](https://www.jetbrains.com/help/rider/UnreachableSwitchCaseDueToIntegerAnalysis.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "UnreachableSwitchCaseDueToIntegerAnalysis", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCppcoreguidelinesInterfacesGlobalInit", - "shortDescription": { - "text": "cppcoreguidelines-interfaces-global-init clang-tidy check" - }, - "fullDescription": { - "text": "cppcoreguidelines-interfaces-global-init clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-interfaces-global-init clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/interfaces-global-init.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyCppcoreguidelinesInterfacesGlobalInit", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBWarnings__BC42504", - "shortDescription": { - "text": "The CallerArgumentExpressionAttribute applied to parameter will have no effect because it's self-referential" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "VBWarnings__BC42504", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Compiler Warnings", - "index": 110, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticBoundsSafetyCountedByEltTypeUnknownSize", - "shortDescription": { - "text": "bounds-safety-counted-by-elt-type-unknown-size clang diagnostic" - }, - "fullDescription": { - "text": "-Wbounds-safety-counted-by-elt-type-unknown-size clang diagnostic · Learn more", - "markdown": "-Wbounds-safety-counted-by-elt-type-unknown-size clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wbounds-safety-counted-by-elt-type-unknown-size)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticBoundsSafetyCountedByEltTypeUnknownSize", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1066FadeOut", - "shortDescription": { - "text": "RoslynAnalyzers [deprecated] Remove empty 'finally' clause" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1066FadeOut", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1212FadeOut", - "shortDescription": { - "text": "RoslynAnalyzers Remove redundant assignment" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1212FadeOut", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConvertToConstant.Local", - "shortDescription": { - "text": "Convert local variable or field into constant (private accessibility)" - }, - "fullDescription": { - "text": "Convert local variable or field into constant", - "markdown": "Convert local variable or field into constant" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "ConvertToConstant.Local", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticGnuOffsetofExtensions", - "shortDescription": { - "text": "gnu-offsetof-extensions clang diagnostic" - }, - "fullDescription": { - "text": "-Wgnu-offsetof-extensions clang diagnostic · Learn more", - "markdown": "-Wgnu-offsetof-extensions clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-offsetof-extensions)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticGnuOffsetofExtensions", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "OtherTagsInsideScript1", - "shortDescription": { - "text": "Script tag errors (other tags inside <script> - possibly unclosed <script>)" - }, - "fullDescription": { - "text": "<([)script(]) $a1$>$c1$", - "markdown": "\\<(\\[)script(\\]) $a1$\\>$c1$" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "OtherTagsInsideScript1", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HTML/Potential Code Quality Issues", - "index": 54, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticRangeLoopConstruct", - "shortDescription": { - "text": "range-loop-construct clang diagnostic" - }, - "fullDescription": { - "text": "-Wrange-loop-construct clang diagnostic · Learn more", - "markdown": "-Wrange-loop-construct clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wrange-loop-construct)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticRangeLoopConstruct", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "TypeParameterCanBeVariant", - "shortDescription": { - "text": "Type parameter could be declared as covariant or contravariant" - }, - "fullDescription": { - "text": "Type parameter could be declared as covariant or contravariant", - "markdown": "Type parameter could be declared as covariant or contravariant" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "TypeParameterCanBeVariant", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "OtherTagsInsideScript2", - "shortDescription": { - "text": "Script tag errors (other tags inside <script> - possibly unclosed <script>)" - }, - "fullDescription": { - "text": "<([)script(]) type=\"$v1$\" $a1$>$c1$", - "markdown": "\\<(\\[)script(\\]) type=\"$v1$\" $a1$\\>$c1$" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "OtherTagsInsideScript2", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HTML/Potential Code Quality Issues", - "index": 54, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2000", - "shortDescription": { - "text": "RoslynAnalyzers Dispose objects before losing scope" - }, - "fullDescription": { - "text": "If a disposable object is not explicitly disposed before all references to it are out of scope, the object will be disposed at some indeterminate time when the garbage collector runs the finalizer of the object. Because an exceptional event might occur that will prevent the finalizer of the object from running, the object should be explicitly disposed instead.", - "markdown": "If a disposable object is not explicitly disposed before all references to it are out of scope, the object will be disposed at some indeterminate time when the garbage collector runs the finalizer of the object. Because an exceptional event might occur that will prevent the finalizer of the object from running, the object should be explicitly disposed instead." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2000", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2002", - "shortDescription": { - "text": "RoslynAnalyzers Do not lock on objects with weak identity" - }, - "fullDescription": { - "text": "An object is said to have a weak identity when it can be directly accessed across application domain boundaries. A thread that tries to acquire a lock on an object that has a weak identity can be blocked by a second thread in a different application domain that has a lock on the same object.", - "markdown": "An object is said to have a weak identity when it can be directly accessed across application domain boundaries. A thread that tries to acquire a lock on an object that has a weak identity can be blocked by a second thread in a different application domain that has a lock on the same object." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2002", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneStringConstructor", - "shortDescription": { - "text": "bugprone-string-constructor clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-string-constructor clang-tidy check · Learn more", - "markdown": "bugprone-string-constructor clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/string-constructor.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneStringConstructor", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2007", - "shortDescription": { - "text": "RoslynAnalyzers Consider calling ConfigureAwait on the awaited task" - }, - "fullDescription": { - "text": "When an asynchronous method awaits a Task directly, continuation occurs in the same thread that created the task. Consider calling Task.ConfigureAwait(Boolean) to signal your intention for continuation. Call ConfigureAwait(false) on the task to schedule continuations to the thread pool, thereby avoiding a deadlock on the UI thread. Passing false is a good option for app-independent libraries. Calling ConfigureAwait(true) on the task has the same behavior as not explicitly calling ConfigureAwait. By explicitly calling this method, you're letting readers know you intentionally want to perform the continuation on the original synchronization context.", - "markdown": "When an asynchronous method awaits a Task directly, continuation occurs in the same thread that created the task. Consider calling Task.ConfigureAwait(Boolean) to signal your intention for continuation. Call ConfigureAwait(false) on the task to schedule continuations to the thread pool, thereby avoiding a deadlock on the UI thread. Passing false is a good option for app-independent libraries. Calling ConfigureAwait(true) on the task has the same behavior as not explicitly calling ConfigureAwait. By explicitly calling this method, you're letting readers know you intentionally want to perform the continuation on the original synchronization context." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2007", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2008", - "shortDescription": { - "text": "RoslynAnalyzers Do not create tasks without passing a TaskScheduler" - }, - "fullDescription": { - "text": "Do not create tasks unless you are using one of the overloads that takes a TaskScheduler. The default is to schedule on TaskScheduler.Current, which would lead to deadlocks. Either use TaskScheduler.Default to schedule on the thread pool, or explicitly pass TaskScheduler.Current to make your intentions clear.", - "markdown": "Do not create tasks unless you are using one of the overloads that takes a TaskScheduler. The default is to schedule on TaskScheduler.Current, which would lead to deadlocks. Either use TaskScheduler.Default to schedule on the thread pool, or explicitly pass TaskScheduler.Current to make your intentions clear." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2008", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2009", - "shortDescription": { - "text": "RoslynAnalyzers Do not call ToImmutableCollection on an ImmutableCollection value" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA2009", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDeprecatedObjcIsaUsage", - "shortDescription": { - "text": "deprecated-objc-isa-usage clang diagnostic" - }, - "fullDescription": { - "text": "-Wdeprecated-objc-isa-usage clang diagnostic · Learn more", - "markdown": "-Wdeprecated-objc-isa-usage clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-objc-isa-usage)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedObjcIsaUsage", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticArgumentOutsideRange", - "shortDescription": { - "text": "argument-outside-range clang diagnostic" - }, - "fullDescription": { - "text": "-Wargument-outside-range clang diagnostic · Learn more", - "markdown": "-Wargument-outside-range clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wargument-outside-range)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticArgumentOutsideRange", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConvertToVbAutoProperty", - "shortDescription": { - "text": "Convert property to auto-property" - }, - "fullDescription": { - "text": "Converts property declaration to VB.NET auto-property syntax.", - "markdown": "Converts property declaration to VB.NET auto-property syntax." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ConvertToVbAutoProperty", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCertEnv33C", - "shortDescription": { - "text": "cert-env33-c clang-tidy check" - }, - "fullDescription": { - "text": "cert-env33-c clang-tidy check · Learn more", - "markdown": "cert-env33-c clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/env33-c.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCertEnv33C", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyModernizeUseEqualsDefault", - "shortDescription": { - "text": "modernize-use-equals-default clang-tidy check" - }, - "fullDescription": { - "text": "modernize-use-equals-default clang-tidy check · Learn more", - "markdown": "modernize-use-equals-default clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-equals-default.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyModernizeUseEqualsDefault", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticSentinel", - "shortDescription": { - "text": "sentinel clang diagnostic" - }, - "fullDescription": { - "text": "-Wsentinel clang diagnostic · Learn more", - "markdown": "-Wsentinel clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wsentinel)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticSentinel", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityNamedParameter", - "shortDescription": { - "text": "readability-named-parameter clang-tidy check" - }, - "fullDescription": { - "text": "readability-named-parameter clang-tidy check · Learn more", - "markdown": "readability-named-parameter clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/named-parameter.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityNamedParameter", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCertErr58Cpp", - "shortDescription": { - "text": "cert-err58-cpp clang-tidy check" - }, - "fullDescription": { - "text": "cert-err58-cpp clang-tidy check · Learn more", - "markdown": "cert-err58-cpp clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/err58-cpp.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCertErr58Cpp", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticSelfAssign", - "shortDescription": { - "text": "self-assign clang diagnostic" - }, - "fullDescription": { - "text": "-Wself-assign clang diagnostic · Learn more", - "markdown": "-Wself-assign clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wself-assign)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticSelfAssign", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MathAbsMethodIsRedundant", - "shortDescription": { - "text": "Math.Abs() argument is always non-negative" - }, - "fullDescription": { - "text": "Math.Abs() method invocation can be removed", - "markdown": "Math.Abs() method invocation can be removed" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "MathAbsMethodIsRedundant", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticGnuStatementExpression", - "shortDescription": { - "text": "gnu-statement-expression clang diagnostic" - }, - "fullDescription": { - "text": "-Wgnu-statement-expression clang diagnostic · Learn more", - "markdown": "-Wgnu-statement-expression clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-statement-expression)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticGnuStatementExpression", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ClassWithVirtualMembersNeverInherited.Global", - "shortDescription": { - "text": "Class with virtual (overridable) members never inherited (non-private accessibility)" - }, - "fullDescription": { - "text": "Non-abstract class has virtual (overridable) members but has no inheritors Learn more...", - "markdown": "Non-abstract class has virtual (overridable) members but has no inheritors [Learn more...](https://www.jetbrains.com/help/rider/ClassWithVirtualMembersNeverInherited.Global.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ClassWithVirtualMembersNeverInherited.Global", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2011", - "shortDescription": { - "text": "RoslynAnalyzers Avoid infinite recursion" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA2011", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2012", - "shortDescription": { - "text": "RoslynAnalyzers Use ValueTasks correctly" - }, - "fullDescription": { - "text": "ValueTasks returned from member invocations are intended to be directly awaited. Attempts to consume a ValueTask multiple times or to directly access one's result before it's known to be completed may result in an exception or corruption. Ignoring such a ValueTask is likely an indication of a functional bug and may degrade performance.", - "markdown": "ValueTasks returned from member invocations are intended to be directly awaited. Attempts to consume a ValueTask multiple times or to directly access one's result before it's known to be completed may result in an exception or corruption. Ignoring such a ValueTask is likely an indication of a functional bug and may degrade performance." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA2012", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppUninitializedNonStaticDataMember", - "shortDescription": { - "text": "Non-static data member is uninitialized" - }, - "fullDescription": { - "text": "Non-static data member is uninitialized", - "markdown": "Non-static data member is uninitialized" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppUninitializedNonStaticDataMember", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2013", - "shortDescription": { - "text": "RoslynAnalyzers Do not use ReferenceEquals with value types" - }, - "fullDescription": { - "text": "Value type typed arguments are uniquely boxed for each call to this method, therefore the result can be unexpected.", - "markdown": "Value type typed arguments are uniquely boxed for each call to this method, therefore the result can be unexpected." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2013", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticSuperClassMethodMismatch", - "shortDescription": { - "text": "super-class-method-mismatch clang diagnostic" - }, - "fullDescription": { - "text": "-Wsuper-class-method-mismatch clang diagnostic · Learn more", - "markdown": "-Wsuper-class-method-mismatch clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wsuper-class-method-mismatch)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticSuperClassMethodMismatch", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2014", - "shortDescription": { - "text": "RoslynAnalyzers Do not use stackalloc in loops" - }, - "fullDescription": { - "text": "Stack space allocated by a stackalloc is only released at the end of the current method's invocation. Using it in a loop can result in unbounded stack growth and eventual stack overflow conditions.", - "markdown": "Stack space allocated by a stackalloc is only released at the end of the current method's invocation. Using it in a loop can result in unbounded stack growth and eventual stack overflow conditions." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2014", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2015", - "shortDescription": { - "text": "RoslynAnalyzers Do not define finalizers for types derived from MemoryManager<T>" - }, - "fullDescription": { - "text": "Adding a finalizer to a type derived from MemoryManager may permit memory to be freed while it is still in use by a Span.", - "markdown": "Adding a finalizer to a type derived from MemoryManager may permit memory to be freed while it is still in use by a Span." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2015", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyMiscHeaderIncludeCycle", - "shortDescription": { - "text": "misc-header-include-cycle clang-tidy check" - }, - "fullDescription": { - "text": "misc-header-include-cycle clang-tidy check · Learn more", - "markdown": "misc-header-include-cycle clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/header-include-cycle.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyMiscHeaderIncludeCycle", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerOsxCocoaClassRelease", - "shortDescription": { - "text": "osx.cocoa.ClassRelease clang static analyzer check" - }, - "fullDescription": { - "text": "osx.cocoa.ClassRelease clang static analyzer check · Learn more", - "markdown": "osx.cocoa.ClassRelease clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerOsxCocoaClassRelease", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2016", - "shortDescription": { - "text": "RoslynAnalyzers Forward the 'CancellationToken' parameter to methods" - }, - "fullDescription": { - "text": "Forward the 'CancellationToken' parameter to methods to ensure the operation cancellation notifications gets properly propagated, or pass in 'CancellationToken.None' explicitly to indicate intentionally not propagating the token.", - "markdown": "Forward the 'CancellationToken' parameter to methods to ensure the operation cancellation notifications gets properly propagated, or pass in 'CancellationToken.None' explicitly to indicate intentionally not propagating the token." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA2016", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2017", - "shortDescription": { - "text": "RoslynAnalyzers Parameter count mismatch" - }, - "fullDescription": { - "text": "Number of parameters supplied in the logging message template do not match the number of named placeholders.", - "markdown": "Number of parameters supplied in the logging message template do not match the number of named placeholders." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2017", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2018", - "shortDescription": { - "text": "RoslynAnalyzers 'Buffer.BlockCopy' expects the number of bytes to be copied for the 'count' argument" - }, - "fullDescription": { - "text": "'Buffer.BlockCopy' expects the number of bytes to be copied for the 'count' argument. Using 'Array.Length' may not match the number of bytes that needs to be copied.", - "markdown": "'Buffer.BlockCopy' expects the number of bytes to be copied for the 'count' argument. Using 'Array.Length' may not match the number of bytes that needs to be copied." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2018", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2019", - "shortDescription": { - "text": "RoslynAnalyzers Improper 'ThreadStatic' field initialization" - }, - "fullDescription": { - "text": "'ThreadStatic' fields should be initialized lazily on use, not with inline initialization nor explicitly in a static constructor, which would only initialize the field on the thread that runs the type's static constructor.", - "markdown": "'ThreadStatic' fields should be initialized lazily on use, not with inline initialization nor explicitly in a static constructor, which would only initialize the field on the thread that runs the type's static constructor." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA2019", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyAbseilDurationFactoryFloat", - "shortDescription": { - "text": "abseil-duration-factory-float clang-tidy check" - }, - "fullDescription": { - "text": "abseil-duration-factory-float clang-tidy check · Learn more", - "markdown": "abseil-duration-factory-float clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/duration-factory-float.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyAbseilDurationFactoryFloat", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyGoogleReadabilityCasting", - "shortDescription": { - "text": "google-readability-casting clang-tidy check" - }, - "fullDescription": { - "text": "google-readability-casting clang-tidy check · Learn more", - "markdown": "google-readability-casting clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/google/readability-casting.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyGoogleReadabilityCasting", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBReplaceWithOfType.Where", - "shortDescription": { - "text": "Replace with OfType<T>().Where() (replace with OfType(Of ..)().Where(..))" - }, - "fullDescription": { - "text": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).Where(Function ($y$) $y$ IsNot Nothing AndAlso $expr$)", - "markdown": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).Where(Function ($y$) $y$ IsNot Nothing AndAlso $expr$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBReplaceWithOfType.Where", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithSingleCallToFirstOrDefault", - "shortDescription": { - "text": "Replace with single call to FirstOrDefault(..)" - }, - "fullDescription": { - "text": "$seq$.Where($x$ => $expr$).FirstOrDefault()", - "markdown": "$seq$.Where($x$ =\\> $expr$).FirstOrDefault()" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithSingleCallToFirstOrDefault", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__WME006", - "shortDescription": { - "text": "Namespace should be default namespace of this project" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__WME006", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDanglingField", - "shortDescription": { - "text": "dangling-field clang diagnostic" - }, - "fullDescription": { - "text": "-Wdangling-field clang diagnostic · Learn more", - "markdown": "-Wdangling-field clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdangling-field)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDanglingField", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2020", - "shortDescription": { - "text": "RoslynAnalyzers Prevent behavioral change" - }, - "fullDescription": { - "text": "Some built-in operators added in .NET 7 behave differently when overflowing than did the corresponding user-defined operators in .NET 6 and earlier versions. Some operators that previously threw in an unchecked context now don't throw unless wrapped within a checked context. Also, some operators that did not previously throw in a checked context now throw unless wrapped in an unchecked context.", - "markdown": "Some built-in operators added in .NET 7 behave differently when overflowing than did the corresponding user-defined operators in .NET 6 and earlier versions. Some operators that previously threw in an unchecked context now don't throw unless wrapped within a checked context. Also, some operators that did not previously throw in a checked context now throw unless wrapped in an unchecked context." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA2020", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RequiredBaseTypesConflict", - "shortDescription": { - "text": "Required base type conflicting another type" - }, - "fullDescription": { - "text": "Type required by some attribute (marked with BaseTypeRequired) conflicting type from another attribute", - "markdown": "Type required by some attribute (marked with BaseTypeRequired) conflicting type from another attribute" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RequiredBaseTypesConflict", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Constraints Violations", - "index": 80, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2021", - "shortDescription": { - "text": "RoslynAnalyzers Do not call Enumerable.Cast<T> or Enumerable.OfType<T> with incompatible types" - }, - "fullDescription": { - "text": "Enumerable.Cast and Enumerable.OfType require compatible types to function expectedly. The generic cast (IL 'unbox.any') used by the sequence returned by Enumerable.Cast will throw InvalidCastException at runtime on elements of the types specified. The generic type check (C# 'is' operator/IL 'isinst') used by Enumerable.OfType will never succeed with elements of types specified, resulting in an empty sequence. Widening and user defined conversions are not supported with generic types.", - "markdown": "Enumerable.Cast and Enumerable.OfType require compatible types to function expectedly. The generic cast (IL 'unbox.any') used by the sequence returned by Enumerable.Cast will throw InvalidCastException at runtime on elements of the types specified. The generic type check (C# 'is' operator/IL 'isinst') used by Enumerable.OfType will never succeed with elements of types specified, resulting in an empty sequence. Widening and user defined conversions are not supported with generic types." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2021", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticAvailability", - "shortDescription": { - "text": "availability clang diagnostic" - }, - "fullDescription": { - "text": "-Wavailability clang diagnostic · Learn more", - "markdown": "-Wavailability clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wavailability)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticAvailability", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp2cExtensions", - "shortDescription": { - "text": "c++2c-extensions clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++2c-extensions clang diagnostic · Learn more", - "markdown": "-Wc++2c-extensions clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-2c-extensions)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp2cExtensions", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticConversion", - "shortDescription": { - "text": "conversion clang diagnostic" - }, - "fullDescription": { - "text": "-Wconversion clang diagnostic · Learn more", - "markdown": "-Wconversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wconversion)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticConversion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2022", - "shortDescription": { - "text": "RoslynAnalyzers Avoid inexact read with 'Stream.Read'" - }, - "fullDescription": { - "text": "A call to 'Stream.Read' may return fewer bytes than requested, resulting in unreliable code if the return value is not checked.", - "markdown": "A call to 'Stream.Read' may return fewer bytes than requested, resulting in unreliable code if the return value is not checked." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2022", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SuggestDiscardDeclarationVarStyle", - "shortDescription": { - "text": "Use preferred style for discard declaration" - }, - "fullDescription": { - "text": "Use preferred style for discard declaration Learn more...", - "markdown": "Use preferred style for discard declaration [Learn more...](https://www.jetbrains.com/help/rider/SuggestDiscardDeclarationVarStyle.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "SuggestDiscardDeclarationVarStyle", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Syntax Style", - "index": 21, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDocumentationPedantic", - "shortDescription": { - "text": "documentation-pedantic clang diagnostic" - }, - "fullDescription": { - "text": "-Wdocumentation-pedantic clang diagnostic · Learn more", - "markdown": "-Wdocumentation-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdocumentation-pedantic)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDocumentationPedantic", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnnecessaryWhitespace", - "shortDescription": { - "text": "Unnecessary whitespace at the end of line" - }, - "fullDescription": { - "text": "Remove unnecessary whitespace at the end of line Learn more...", - "markdown": "Remove unnecessary whitespace at the end of line [Learn more...](https://www.jetbrains.com/help/rider/UnnecessaryWhitespace.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UnnecessaryWhitespace", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Syntax Style", - "index": 21, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticIntConversion", - "shortDescription": { - "text": "int-conversion clang diagnostic" - }, - "fullDescription": { - "text": "-Wint-conversion clang diagnostic · Learn more", - "markdown": "-Wint-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wint-conversion)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticIntConversion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnusedParameter.Local", - "shortDescription": { - "text": "Unused parameter (private accessibility)" - }, - "fullDescription": { - "text": "Parameter is never used Learn more...", - "markdown": "Parameter is never used [Learn more...](https://www.jetbrains.com/help/rider/UnusedParameter.Local.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "UnusedParameter.Local", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReturnOfTaskProducedByUsingVariable", - "shortDescription": { - "text": "Return of a task produced by 'using'-captured object" - }, - "fullDescription": { - "text": "Do not return a task produced by a 'using'-captured object, because this task may not be able to complete after that object is disposed", - "markdown": "Do not return a task produced by a 'using'-captured object, because this task may not be able to complete after that object is disposed" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "ReturnOfTaskProducedByUsingVariable", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDanglingAssignment", - "shortDescription": { - "text": "dangling-assignment clang diagnostic" - }, - "fullDescription": { - "text": "-Wdangling-assignment clang diagnostic · Learn more", - "markdown": "-Wdangling-assignment clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdangling-assignment)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDanglingAssignment", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseWithExpressionToCopyRecord", - "shortDescription": { - "text": "Use 'with' expression to copy record" - }, - "fullDescription": { - "text": "Use 'with' expression to create a modified instance of a record", - "markdown": "Use 'with' expression to create a modified instance of a record" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UseWithExpressionToCopyRecord", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EnumUnderlyingTypeIsInt", - "shortDescription": { - "text": "Underlying type of enum is 'int'" - }, - "fullDescription": { - "text": "'int' is default underlying type of enum, so it is not necessary to specify it explicitly Learn more...", - "markdown": "'int' is default underlying type of enum, so it is not necessary to specify it explicitly [Learn more...](https://www.jetbrains.com/help/rider/EnumUnderlyingTypeIsInt.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "EnumUnderlyingTypeIsInt", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticGnuDesignator", - "shortDescription": { - "text": "gnu-designator clang diagnostic" - }, - "fullDescription": { - "text": "-Wgnu-designator clang diagnostic · Learn more", - "markdown": "-Wgnu-designator clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-designator)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticGnuDesignator", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticTautologicalOverlapCompare", - "shortDescription": { - "text": "tautological-overlap-compare clang diagnostic" - }, - "fullDescription": { - "text": "-Wtautological-overlap-compare clang diagnostic · Learn more", - "markdown": "-Wtautological-overlap-compare clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wtautological-overlap-compare)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticTautologicalOverlapCompare", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp26Extensions", - "shortDescription": { - "text": "c++26-extensions clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++26-extensions clang diagnostic · Learn more", - "markdown": "-Wc++26-extensions clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-26-extensions)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp26Extensions", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NetCoverageInspection", - "shortDescription": { - "text": "Check .NET source code coverage" - }, - "fullDescription": { - "text": "Reports methods, classes and files whose coverage is below a certain threshold.", - "markdown": "Reports methods, classes and files whose coverage is below a certain threshold." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NetCoverageInspection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Code Coverage", - "index": 53, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE1006", - "shortDescription": { - "text": "RoslynAnalyzers Naming Styles" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE1006", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE1005", - "shortDescription": { - "text": "RoslynAnalyzers Delegate invocation can be simplified." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE1005", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyAbseilDurationConversionCast", - "shortDescription": { - "text": "abseil-duration-conversion-cast clang-tidy check" - }, - "fullDescription": { - "text": "abseil-duration-conversion-cast clang-tidy check · Learn more", - "markdown": "abseil-duration-conversion-cast clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/duration-conversion-cast.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyAbseilDurationConversionCast", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCertOop54Cpp", - "shortDescription": { - "text": "cert-oop54-cpp clang-tidy check" - }, - "fullDescription": { - "text": "cert-oop54-cpp clang-tidy check · Learn more", - "markdown": "cert-oop54-cpp clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/oop54-cpp.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCertOop54Cpp", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RazorWarnings", - "shortDescription": { - "text": "Razor Warnings" - }, - "fullDescription": { - "text": "Razor Warnings", - "markdown": "Razor Warnings" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RazorWarnings", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Razor/Non configurable", - "index": 107, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityMakeMemberFunctionConst", - "shortDescription": { - "text": "readability-make-member-function-const clang-tidy check" - }, - "fullDescription": { - "text": "readability-make-member-function-const clang-tidy check · Learn more", - "markdown": "readability-make-member-function-const clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/make-member-function-const.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityMakeMemberFunctionConst", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticProtocolPropertySynthesisAmbiguity", - "shortDescription": { - "text": "protocol-property-synthesis-ambiguity clang diagnostic" - }, - "fullDescription": { - "text": "-Wprotocol-property-synthesis-ambiguity clang diagnostic · Learn more", - "markdown": "-Wprotocol-property-synthesis-ambiguity clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wprotocol-property-synthesis-ambiguity)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticProtocolPropertySynthesisAmbiguity", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnknownAttributes", - "shortDescription": { - "text": "unknown-attributes clang diagnostic" - }, - "fullDescription": { - "text": "-Wunknown-attributes clang diagnostic · Learn more", - "markdown": "-Wunknown-attributes clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunknown-attributes)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnknownAttributes", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "InvalidXmlDocComment", - "shortDescription": { - "text": "Invalid XML documentation comment" - }, - "fullDescription": { - "text": "Invalid XML documentation comment Learn more...", - "markdown": "Invalid XML documentation comment [Learn more...](https://www.jetbrains.com/help/rider/InvalidXmlDocComment.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "InvalidXmlDocComment", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8619", - "shortDescription": { - "text": "Nullability of reference types in source type doesn't match target type." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/nullable-warnings#mismatch-in-nullability-declaration)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8619", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8618", - "shortDescription": { - "text": "Non-nullable member is uninitialized." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/nullable-warnings#nonnullable-reference-not-initialized)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8618", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8617", - "shortDescription": { - "text": "Nullability of reference types in type of parameter doesn't match implemented member." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/nullable-warnings#mismatch-in-nullability-declaration)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8617", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8616", - "shortDescription": { - "text": "Nullability of reference types in return type doesn't match implemented member." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/nullable-warnings#mismatch-in-nullability-declaration)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8616", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8615", - "shortDescription": { - "text": "Nullability of reference types in type doesn't match implemented member." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/nullable-warnings#mismatch-in-nullability-declaration)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8615", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8614", - "shortDescription": { - "text": "Nullability of reference types in type of parameter doesn't match implicitly implemented member." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/nullable-warnings#mismatch-in-nullability-declaration)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8614", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8613", - "shortDescription": { - "text": "Nullability of reference types in return type doesn't match implicitly implemented member." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/nullable-warnings#mismatch-in-nullability-declaration)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8613", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8612", - "shortDescription": { - "text": "Nullability of reference types in type doesn't match implicitly implemented member." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/nullable-warnings#mismatch-in-nullability-declaration)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8612", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticFortifySource", - "shortDescription": { - "text": "fortify-source clang diagnostic" - }, - "fullDescription": { - "text": "-Wfortify-source clang diagnostic · Learn more", - "markdown": "-Wfortify-source clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wfortify-source)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticFortifySource", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8611", - "shortDescription": { - "text": "Nullability of reference types in type of parameter doesn't match partial member declaration." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/nullable-warnings#mismatch-in-nullability-declaration)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8611", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8610", - "shortDescription": { - "text": "Nullability of reference types in type of parameter doesn't match overridden member." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/nullable-warnings#mismatch-in-nullability-declaration)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8610", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "TailRecursiveCall", - "shortDescription": { - "text": "Tail recursive call can be replaced with loop" - }, - "fullDescription": { - "text": "Tail recursive calls can be replaced with loop for better performance and protection from possible stack overflows", - "markdown": "Tail recursive calls can be replaced with loop for better performance and protection from possible stack overflows" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "TailRecursiveCall", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBUseTypeOfIsOperator.1", - "shortDescription": { - "text": "Use 'TypeOf .. Is ..' operator" - }, - "fullDescription": { - "text": "GetType($T$).IsAssignableFrom($expr$.GetType())", - "markdown": "GetType($T$).IsAssignableFrom($expr$.GetType())" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBUseTypeOfIsOperator.1", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBUseTypeOfIsOperator.2", - "shortDescription": { - "text": "Use 'TypeOf .. Is ..' operator" - }, - "fullDescription": { - "text": "GetType($T$).IsInstanceOfType($expr$)", - "markdown": "GetType($T$).IsInstanceOfType($expr$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBUseTypeOfIsOperator.2", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticIncrementBool", - "shortDescription": { - "text": "increment-bool clang diagnostic" - }, - "fullDescription": { - "text": "-Wincrement-bool clang diagnostic · Learn more", - "markdown": "-Wincrement-bool clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wincrement-bool)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticIncrementBool", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8629", - "shortDescription": { - "text": "Nullable value type may be null." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/nullable-warnings#possible-null-assigned-to-a-nonnullable-reference)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8629", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8625", - "shortDescription": { - "text": "Cannot convert null literal to non-nullable reference type." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/nullable-warnings#possible-null-assigned-to-a-nonnullable-reference)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8625", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnrealHeaderToolWarning", - "shortDescription": { - "text": "UnrealHeaderTool warnings" - }, - "fullDescription": { - "text": "UnrealHeaderTool warnings", - "markdown": "UnrealHeaderTool warnings" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "UnrealHeaderToolWarning", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/UnrealHeaderTool", - "index": 113, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8624", - "shortDescription": { - "text": "Argument cannot be used as an output for parameter due to differences in the nullability of reference types." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/nullable-warnings#mismatch-in-nullability-declaration)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8624", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8622", - "shortDescription": { - "text": "Nullability of reference types in type of a parameter doesn't match the target delegate (possibly because of nullability attributes)." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/nullable-warnings#mismatch-in-nullability-declaration)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8622", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8621", - "shortDescription": { - "text": "Nullability of reference types in return type doesn't match the target delegate (possibly because of nullability attributes)." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/nullable-warnings#mismatch-in-nullability-declaration)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8621", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8620", - "shortDescription": { - "text": "Argument cannot be used for corresponding parameter due to differences in the nullability of reference types." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/nullable-warnings#mismatch-in-nullability-declaration)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8620", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnusedComparison", - "shortDescription": { - "text": "unused-comparison clang diagnostic" - }, - "fullDescription": { - "text": "-Wunused-comparison clang diagnostic · Learn more", - "markdown": "-Wunused-comparison clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunused-comparison)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnusedComparison", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppBadExpressionBracesIndent", - "shortDescription": { - "text": "Incorrect indent (around expression braces)" - }, - "fullDescription": { - "text": "Around expression braces", - "markdown": "Around expression braces" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppBadExpressionBracesIndent", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Formatting", - "index": 28, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "OptionalParameterRefOut", - "shortDescription": { - "text": "'ref' or 'out' parameter with [Optional] attribute" - }, - "fullDescription": { - "text": "C# does not support 'ref' or 'out' optional parameters", - "markdown": "C# does not support 'ref' or 'out' optional parameters" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "OptionalParameterRefOut", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.RedundantSerializeFieldAttribute", - "shortDescription": { - "text": "Redundant attribute usage (redundant 'SerializeField' attribute)" - }, - "fullDescription": { - "text": "Unity will ignore the 'SerializeField' attribute if a field is also marked with the 'NonSerialized' attribute Learn more...", - "markdown": "Unity will ignore the 'SerializeField' attribute if a field is also marked with the 'NonSerialized' attribute [Learn more...](https://github.com/JetBrains/resharper-unity/wiki/Redundant-SerializeField-attribute)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.RedundantSerializeFieldAttribute", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ShaderLabShaderReferenceNotResolved", - "shortDescription": { - "text": "Unresolved Shader name" - }, - "fullDescription": { - "text": "Reference.GetName()", - "markdown": "Reference.GetName()" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "ShaderLabShaderReferenceNotResolved", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseWithExpressionToCopyAnonymousObject", - "shortDescription": { - "text": "Use 'with' expression to copy anonymous object" - }, - "fullDescription": { - "text": "Use 'with' expression to create a modified copy of an anonymous object", - "markdown": "Use 'with' expression to create a modified copy of an anonymous object" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UseWithExpressionToCopyAnonymousObject", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticOpenaccDeprecatedClauseAlias", - "shortDescription": { - "text": "openacc-deprecated-clause-alias clang diagnostic" - }, - "fullDescription": { - "text": "-Wopenacc-deprecated-clause-alias clang diagnostic · Learn more", - "markdown": "-Wopenacc-deprecated-clause-alias clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wopenacc-deprecated-clause-alias)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticOpenaccDeprecatedClauseAlias", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBReplaceWithSingleCallToAny", - "shortDescription": { - "text": "Replace with single call to Any(..)" - }, - "fullDescription": { - "text": "$seq$.Where(Function ($x$) $expr$).Any()", - "markdown": "$seq$.Where(Function ($x$) $expr$).Any()" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBReplaceWithSingleCallToAny", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityRedundantControlFlow", - "shortDescription": { - "text": "readability-redundant-control-flow clang-tidy check" - }, - "fullDescription": { - "text": "readability-redundant-control-flow clang-tidy check · Learn more", - "markdown": "readability-redundant-control-flow clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/redundant-control-flow.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityRedundantControlFlow", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticReturnStdMove", - "shortDescription": { - "text": "return-std-move clang diagnostic" - }, - "fullDescription": { - "text": "-Wreturn-std-move clang diagnostic · Learn more", - "markdown": "-Wreturn-std-move clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wreturn-std-move)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticReturnStdMove", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticOpenmpExtensions", - "shortDescription": { - "text": "openmp-extensions clang diagnostic" - }, - "fullDescription": { - "text": "-Wopenmp-extensions clang diagnostic · Learn more", - "markdown": "-Wopenmp-extensions clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wopenmp-extensions)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticOpenmpExtensions", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit.NonPublicMethodWithTestAttribute", - "shortDescription": { - "text": "NUnit. Non-public test method." - }, - "fullDescription": { - "text": "NUnit test methods must have public visibility Learn more...", - "markdown": "NUnit test methods must have public visibility [Learn more...](https://www.jetbrains.com/help/rider/NUnit.NonPublicMethodWithTestAttribute.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NUnit.NonPublicMethodWithTestAttribute", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/NUnit", - "index": 26, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppForLoopCanBeReplacedWithWhile", - "shortDescription": { - "text": "For-loop can be replaced with while-loop" - }, - "fullDescription": { - "text": "For-loop without init-statement and update expression is equivalent to a while-loop", - "markdown": "For-loop without init-statement and update expression is equivalent to a while-loop" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppForLoopCanBeReplacedWithWhile", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Common Practices and Code Improvements", - "index": 16, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AnnotateNotNullTypeMember", - "shortDescription": { - "text": "Declaration nullability inferred (type member is inferred to be not null)" - }, - "fullDescription": { - "text": "Type member is inferred always not to be null: consider annotating it with [NotNull] or [ItemNotNull] attribute", - "markdown": "Type member is inferred always not to be null: consider annotating it with \\[NotNull\\] or \\[ItemNotNull\\] attribute" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "AnnotateNotNullTypeMember", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseVerbatimString", - "shortDescription": { - "text": "Literal length can be reduced by using verbatim string" - }, - "fullDescription": { - "text": "String literal length can be reduced by using verbatim string", - "markdown": "String literal length can be reduced by using verbatim string" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "UseVerbatimString", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUserDefinedWarnings", - "shortDescription": { - "text": "user-defined-warnings clang diagnostic" - }, - "fullDescription": { - "text": "-Wuser-defined-warnings clang diagnostic · Learn more", - "markdown": "-Wuser-defined-warnings clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wuser-defined-warnings)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUserDefinedWarnings", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBReplaceWithOfType.SingleOrDefault.2", - "shortDescription": { - "text": "Replace with OfType<T>().SingleOrDefault() (replace with OfType(Of ..)().SingleOrDefault(..))" - }, - "fullDescription": { - "text": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).SingleOrDefault(Function ($y$) $y$ IsNot Nothing AndAlso $expr$)", - "markdown": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).SingleOrDefault(Function ($y$) $y$ IsNot Nothing AndAlso $expr$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBReplaceWithOfType.SingleOrDefault.2", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBReplaceWithOfType.SingleOrDefault.1", - "shortDescription": { - "text": "Replace with OfType<T>().SingleOrDefault() (replace with OfType(Of ..)().SingleOrDefault())" - }, - "fullDescription": { - "text": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).SingleOrDefault(Function ($y$) $y$ IsNot Nothing)", - "markdown": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).SingleOrDefault(Function ($y$) $y$ IsNot Nothing)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBReplaceWithOfType.SingleOrDefault.1", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp17Extensions", - "shortDescription": { - "text": "c++17-extensions clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++17-extensions clang diagnostic · Learn more", - "markdown": "-Wc++17-extensions clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-17-extensions)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp17Extensions", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8609", - "shortDescription": { - "text": "Nullability of reference types in return type doesn't match overridden member." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/nullable-warnings#mismatch-in-nullability-declaration)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8609", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8608", - "shortDescription": { - "text": "Nullability of reference types in type doesn't match overridden member." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/nullable-warnings#mismatch-in-nullability-declaration)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8608", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8607", - "shortDescription": { - "text": "A possible null value may not be used for a type marked with [NotNull] or [DisallowNull]." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/nullable-warnings#code-doesnt-match-attribute-declaration)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8607", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyObjcAvoidNserrorInit", - "shortDescription": { - "text": "objc-avoid-nserror-init clang-tidy check" - }, - "fullDescription": { - "text": "objc-avoid-nserror-init clang-tidy check · Learn more", - "markdown": "objc-avoid-nserror-init clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/objc/avoid-nserror-init.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyObjcAvoidNserrorInit", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppUnusedIncludeDirective", - "shortDescription": { - "text": "Possibly unused #include directive" - }, - "fullDescription": { - "text": "Possibly unused #include directive", - "markdown": "Possibly unused #include directive" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppUnusedIncludeDirective", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8605", - "shortDescription": { - "text": "Unboxing a possibly null value." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/nullable-warnings#possible-null-assigned-to-a-nonnullable-reference)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8605", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerSecurityInsecureAPIMktemp", - "shortDescription": { - "text": "security.insecureAPI.mktemp clang static analyzer check" - }, - "fullDescription": { - "text": "security.insecureAPI.mktemp clang static analyzer check · Learn more", - "markdown": "security.insecureAPI.mktemp clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerSecurityInsecureAPIMktemp", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8604", - "shortDescription": { - "text": "Possible null reference argument for a parameter." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/nullable-warnings#possible-null-assigned-to-a-nonnullable-reference)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8604", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticReturnTypeCLinkage", - "shortDescription": { - "text": "return-type-c-linkage clang diagnostic" - }, - "fullDescription": { - "text": "-Wreturn-type-c-linkage clang diagnostic · Learn more", - "markdown": "-Wreturn-type-c-linkage clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wreturn-type-c-linkage)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticReturnTypeCLinkage", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8603", - "shortDescription": { - "text": "Possible null reference return." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/nullable-warnings#possible-null-assigned-to-a-nonnullable-reference)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8603", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8602", - "shortDescription": { - "text": "Dereference of a possibly null reference." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/nullable-warnings#possible-dereference-of-null)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8602", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8601", - "shortDescription": { - "text": "Possible null reference assignment." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/nullable-warnings#possible-null-assigned-to-a-nonnullable-reference)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8601", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8600", - "shortDescription": { - "text": "Converting null literal or possible null value to non-nullable type." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/nullable-warnings#possible-null-assigned-to-a-nonnullable-reference)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8600", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NotAccessedVariable.Compiler", - "shortDescription": { - "text": "Non-accessed local variable" - }, - "fullDescription": { - "text": "Local variable is assigned but its value is never used (compiler warning) Learn more...", - "markdown": "Local variable is assigned but its value is never used (compiler warning) [Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/misc/cs0219)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "NotAccessedVariable.Compiler", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp17Compat", - "shortDescription": { - "text": "c++17-compat clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++17-compat clang diagnostic · Learn more", - "markdown": "-Wc++17-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-17-compat)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp17Compat", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPreC2xCompatPedantic", - "shortDescription": { - "text": "pre-c2x-compat-pedantic clang diagnostic" - }, - "fullDescription": { - "text": "-Wpre-c2x-compat-pedantic clang diagnostic · Learn more", - "markdown": "-Wpre-c2x-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpre-c2x-compat-pedantic)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPreC2xCompatPedantic", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppBooleanIncrementExpression", - "shortDescription": { - "text": "Incrementing expression of type bool" - }, - "fullDescription": { - "text": "Incrementing expression of type bool is deprecated in C++11 and removed in C++17", - "markdown": "Incrementing expression of type bool is deprecated in C++11 and removed in C++17" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppBooleanIncrementExpression", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticWeakTemplateVtables", - "shortDescription": { - "text": "weak-template-vtables clang diagnostic" - }, - "fullDescription": { - "text": "-Wweak-template-vtables clang diagnostic · Learn more", - "markdown": "-Wweak-template-vtables clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wweak-template-vtables)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticWeakTemplateVtables", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCallToPureVirtualFromCtorDtor", - "shortDescription": { - "text": "call-to-pure-virtual-from-ctor-dtor clang diagnostic" - }, - "fullDescription": { - "text": "-Wcall-to-pure-virtual-from-ctor-dtor clang diagnostic · Learn more", - "markdown": "-Wcall-to-pure-virtual-from-ctor-dtor clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcall-to-pure-virtual-from-ctor-dtor)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCallToPureVirtualFromCtorDtor", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantEmptyFinallyBlock", - "shortDescription": { - "text": "Redundant empty finally block" - }, - "fullDescription": { - "text": "Empty 'finally' block is redundant", - "markdown": "Empty 'finally' block is redundant" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "RedundantEmptyFinallyBlock", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppUEMissingSuperCall", - "shortDescription": { - "text": "Missing call to a function from the Super class" - }, - "fullDescription": { - "text": "Missing call to a function from the Super class", - "markdown": "Missing call to a function from the Super class" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppUEMissingSuperCall", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Unreal Engine", - "index": 6, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8656", - "shortDescription": { - "text": "Call to a non-readonly member from a 'readonly' member results in an implicit copy of 'this'" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8656", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8655", - "shortDescription": { - "text": "The switch expression does not handle some null inputs (it is not exhaustive)." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/nullable-warnings#exhaustive-switch-expression)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8655", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "FunctionNeverReturns", - "shortDescription": { - "text": "Function never returns" - }, - "fullDescription": { - "text": "Function does not reach its end or a 'return' statement by any of possible execution paths Learn more...", - "markdown": "Function does not reach its end or a 'return' statement by any of possible execution paths [Learn more...](https://www.jetbrains.com/help/rider/FunctionNeverReturns.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "FunctionNeverReturns", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneAssignmentInIfCondition", - "shortDescription": { - "text": "bugprone-assignment-in-if-condition clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-assignment-in-if-condition clang-tidy check · Learn more", - "markdown": "bugprone-assignment-in-if-condition clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/assignment-in-if-condition.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyBugproneAssignmentInIfCondition", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppCStyleCast", - "shortDescription": { - "text": "C-style cast is used instead of a C++ cast" - }, - "fullDescription": { - "text": "C-style cast is used instead of a C++ cast Learn more...", - "markdown": "C-style cast is used instead of a C++ cast [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Res-casts-named)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppCStyleCast", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Common Practices and Code Improvements", - "index": 16, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp14AttributeExtensions", - "shortDescription": { - "text": "c++14-attribute-extensions clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++14-attribute-extensions clang diagnostic · Learn more", - "markdown": "-Wc++14-attribute-extensions clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-14-attribute-extensions)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp14AttributeExtensions", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseSymbolAlias", - "shortDescription": { - "text": "Use alias" - }, - "fullDescription": { - "text": "Use available alias", - "markdown": "Use available alias" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UseSymbolAlias", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCertErr09Cpp", - "shortDescription": { - "text": "cert-err09-cpp clang-tidy check" - }, - "fullDescription": { - "text": "cert-err09-cpp clang-tidy check · Learn more", - "markdown": "cert-err09-cpp clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/err09-cpp.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCertErr09Cpp", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppParameterNeverUsed", - "shortDescription": { - "text": "Parameter is never used" - }, - "fullDescription": { - "text": "Function parameter is never used Learn more...", - "markdown": "Function parameter is never used [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rf-unused)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppParameterNeverUsed", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8669", - "shortDescription": { - "text": "The annotation for nullable reference types should only be used in code within a '#nullable' annotations context. Auto-generated code requires an explicit '#nullable' directive in source." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8669", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8667", - "shortDescription": { - "text": "Partial method declarations have inconsistent nullability for type parameter." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/nullable-warnings#mismatch-in-nullability-declaration)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8667", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticShadowIvar", - "shortDescription": { - "text": "shadow-ivar clang diagnostic" - }, - "fullDescription": { - "text": "-Wshadow-ivar clang diagnostic · Learn more", - "markdown": "-Wshadow-ivar clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wshadow-ivar)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticShadowIvar", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticFormatPedantic", - "shortDescription": { - "text": "format-pedantic clang diagnostic" - }, - "fullDescription": { - "text": "-Wformat-pedantic clang diagnostic · Learn more", - "markdown": "-Wformat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wformat-pedantic)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticFormatPedantic", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneSuspiciousMissingComma", - "shortDescription": { - "text": "bugprone-suspicious-missing-comma clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-suspicious-missing-comma clang-tidy check · Learn more", - "markdown": "bugprone-suspicious-missing-comma clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/suspicious-missing-comma.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneSuspiciousMissingComma", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceSubstringWithRangeIndexer", - "shortDescription": { - "text": "Replace 'Substring' with range indexer" - }, - "fullDescription": { - "text": "Replace 'Substring' method call with range indexer access", - "markdown": "Replace 'Substring' method call with range indexer access" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceSubstringWithRangeIndexer", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyGoogleObjcAvoidThrowingException", - "shortDescription": { - "text": "google-objc-avoid-throwing-exception clang-tidy check" - }, - "fullDescription": { - "text": "google-objc-avoid-throwing-exception clang-tidy check · Learn more", - "markdown": "google-objc-avoid-throwing-exception clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/google/objc-avoid-throwing-exception.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyGoogleObjcAvoidThrowingException", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticAarch64SmeAttributes", - "shortDescription": { - "text": "aarch64-sme-attributes clang diagnostic" - }, - "fullDescription": { - "text": "-Waarch64-sme-attributes clang diagnostic · Learn more", - "markdown": "-Waarch64-sme-attributes clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#waarch64-sme-attributes)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticAarch64SmeAttributes", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticInconsistentMissingDestructorOverride", - "shortDescription": { - "text": "inconsistent-missing-destructor-override clang diagnostic" - }, - "fullDescription": { - "text": "-Winconsistent-missing-destructor-override clang diagnostic · Learn more", - "markdown": "-Winconsistent-missing-destructor-override clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winconsistent-missing-destructor-override)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticInconsistentMissingDestructorOverride", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPragmas", - "shortDescription": { - "text": "pragmas clang diagnostic" - }, - "fullDescription": { - "text": "-Wpragmas clang diagnostic · Learn more", - "markdown": "-Wpragmas clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpragmas)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPragmas", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8634", - "shortDescription": { - "text": "Nullability of type argument doesn't match 'class' constraint." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/nullable-warnings#mismatch-in-nullability-declaration)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8634", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8633", - "shortDescription": { - "text": "Nullability mismatch in constraints for type parameter." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/nullable-warnings#mismatch-in-nullability-declaration)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8633", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8632", - "shortDescription": { - "text": "The annotation for nullable reference types should only be used in code within a '#nullable' annotations context." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8632", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8631", - "shortDescription": { - "text": "Nullability of type argument doesn't match constraint type." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/nullable-warnings#mismatch-in-nullability-declaration)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8631", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyMiscRedundantExpression", - "shortDescription": { - "text": "misc-redundant-expression clang-tidy check" - }, - "fullDescription": { - "text": "misc-redundant-expression clang-tidy check · Learn more", - "markdown": "misc-redundant-expression clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/redundant-expression.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyMiscRedundantExpression", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticTypenameMissing", - "shortDescription": { - "text": "typename-missing clang diagnostic" - }, - "fullDescription": { - "text": "-Wtypename-missing clang diagnostic · Learn more", - "markdown": "-Wtypename-missing clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wtypename-missing)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticTypenameMissing", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppLocalVariableMightNotBeInitialized", - "shortDescription": { - "text": "Local variable might not be initialized" - }, - "fullDescription": { - "text": "A local variable might not be initialized", - "markdown": "A local variable might not be initialized" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppLocalVariableMightNotBeInitialized", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1515", - "shortDescription": { - "text": "RoslynAnalyzers Consider making public types internal" - }, - "fullDescription": { - "text": "Unlike a class library, an application's API isn't typically referenced publicly, so types can be marked internal.", - "markdown": "Unlike a class library, an application's API isn't typically referenced publicly, so types can be marked internal." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1515", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticThreadSafetyVerbose", - "shortDescription": { - "text": "thread-safety-verbose clang diagnostic" - }, - "fullDescription": { - "text": "-Wthread-safety-verbose clang diagnostic · Learn more", - "markdown": "-Wthread-safety-verbose clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wthread-safety-verbose)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticThreadSafetyVerbose", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1514", - "shortDescription": { - "text": "RoslynAnalyzers Avoid redundant length argument" - }, - "fullDescription": { - "text": "An explicit length calculation can be error-prone and can be avoided when slicing to end of the buffer.", - "markdown": "An explicit length calculation can be error-prone and can be avoided when slicing to end of the buffer." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1514", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PrivateFieldCanBeConvertedToLocalVariable", - "shortDescription": { - "text": "Private field can be converted into local variable" - }, - "fullDescription": { - "text": "Private field is always assigned before being used and can be converted into a local variable Learn more...", - "markdown": "Private field is always assigned before being used and can be converted into a local variable [Learn more...](https://www.jetbrains.com/help/rider/PrivateFieldCanBeConvertedToLocalVariable.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "PrivateFieldCanBeConvertedToLocalVariable", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1513", - "shortDescription": { - "text": "RoslynAnalyzers Use ObjectDisposedException throw helper" - }, - "fullDescription": { - "text": "Throw helpers are simpler and more efficient than an if block constructing a new exception instance.", - "markdown": "Throw helpers are simpler and more efficient than an if block constructing a new exception instance." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1513", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1512", - "shortDescription": { - "text": "RoslynAnalyzers Use ArgumentOutOfRangeException throw helper" - }, - "fullDescription": { - "text": "Throw helpers are simpler and more efficient than an if block constructing a new exception instance.", - "markdown": "Throw helpers are simpler and more efficient than an if block constructing a new exception instance." - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "CA1512", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1511", - "shortDescription": { - "text": "RoslynAnalyzers Use ArgumentException throw helper" - }, - "fullDescription": { - "text": "Throw helpers are simpler and more efficient than an if block constructing a new exception instance.", - "markdown": "Throw helpers are simpler and more efficient than an if block constructing a new exception instance." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1511", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1058FadeOut", - "shortDescription": { - "text": "RoslynAnalyzers Use compound assignment" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1058FadeOut", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1510", - "shortDescription": { - "text": "RoslynAnalyzers Use ArgumentNullException throw helper" - }, - "fullDescription": { - "text": "Throw helpers are simpler and more efficient than an if block constructing a new exception instance.", - "markdown": "Throw helpers are simpler and more efficient than an if block constructing a new exception instance." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1510", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnexpectedAttribute", - "shortDescription": { - "text": "The attribute is unknown and will be ignored" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "UnexpectedAttribute", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "T4/T4", - "index": 116, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppLocalVariableMayBeConst", - "shortDescription": { - "text": "Local variable can be made const" - }, - "fullDescription": { - "text": "Local variable can be made const Learn more...", - "markdown": "Local variable can be made const [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rconst-const)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppLocalVariableMayBeConst", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Common Practices and Code Improvements", - "index": 16, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnrealHeaderToolError", - "shortDescription": { - "text": "UnrealHeaderTool errors" - }, - "fullDescription": { - "text": "UnrealHeaderTool errors", - "markdown": "UnrealHeaderTool errors" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "UnrealHeaderToolError", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/UnrealHeaderTool", - "index": 113, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyHicppUseAuto", - "shortDescription": { - "text": "hicpp-use-auto clang-tidy check" - }, - "fullDescription": { - "text": "hicpp-use-auto clang-tidy check · Learn more", - "markdown": "hicpp-use-auto clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/use-auto.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyHicppUseAuto", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyAbseilNoInternalDependencies", - "shortDescription": { - "text": "abseil-no-internal-dependencies clang-tidy check" - }, - "fullDescription": { - "text": "abseil-no-internal-dependencies clang-tidy check · Learn more", - "markdown": "abseil-no-internal-dependencies clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/no-internal-dependencies.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyAbseilNoInternalDependencies", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneReservedIdentifier", - "shortDescription": { - "text": "bugprone-reserved-identifier clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-reserved-identifier clang-tidy check · Learn more", - "markdown": "bugprone-reserved-identifier clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/reserved-identifier.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneReservedIdentifier", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPreC2yCompatPedantic", - "shortDescription": { - "text": "pre-c2y-compat-pedantic clang diagnostic" - }, - "fullDescription": { - "text": "-Wpre-c2y-compat-pedantic clang diagnostic · Learn more", - "markdown": "-Wpre-c2y-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpre-c2y-compat-pedantic)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPreC2yCompatPedantic", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppInvalidLineContinuation", - "shortDescription": { - "text": "Backslash and newline are separated by space" - }, - "fullDescription": { - "text": "Backslash is not a line continuator because there is a space between it and the end of the line", - "markdown": "Backslash is not a line continuator because there is a space between it and the end of the line" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppInvalidLineContinuation", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUndeclaredSelector", - "shortDescription": { - "text": "undeclared-selector clang diagnostic" - }, - "fullDescription": { - "text": "-Wundeclared-selector clang diagnostic · Learn more", - "markdown": "-Wundeclared-selector clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wundeclared-selector)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUndeclaredSelector", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticStringCompare", - "shortDescription": { - "text": "string-compare clang diagnostic" - }, - "fullDescription": { - "text": "-Wstring-compare clang diagnostic · Learn more", - "markdown": "-Wstring-compare clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wstring-compare)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticStringCompare", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8645", - "shortDescription": { - "text": "Type is already listed in the interface list with different nullability of reference types." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/nullable-warnings#mismatch-in-nullability-declaration)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8645", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPointerBoolConversion", - "shortDescription": { - "text": "pointer-bool-conversion clang diagnostic" - }, - "fullDescription": { - "text": "-Wpointer-bool-conversion clang diagnostic · Learn more", - "markdown": "-Wpointer-bool-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpointer-bool-conversion)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPointerBoolConversion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8644", - "shortDescription": { - "text": "Nullability of reference types in interface implemented by the base type doesn't match." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/nullable-warnings#mismatch-in-nullability-declaration)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8644", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8643", - "shortDescription": { - "text": "Nullability of reference types in explicit interface specifier doesn't match interface implemented by the type." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/nullable-warnings#mismatch-in-nullability-declaration)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8643", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnusedLocalFunctionReturnValue", - "shortDescription": { - "text": "Local function return value is never used" - }, - "fullDescription": { - "text": "Local function return value is never used", - "markdown": "Local function return value is never used" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "UnusedLocalFunctionReturnValue", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1509", - "shortDescription": { - "text": "RoslynAnalyzers Invalid entry in code metrics rule specification file" - }, - "fullDescription": { - "text": "Invalid entry in code metrics rule specification file.", - "markdown": "Invalid entry in code metrics rule specification file." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1509", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1508", - "shortDescription": { - "text": "RoslynAnalyzers Avoid dead conditional code" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1508", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppMsExtBindingRValueToLvalueReference", - "shortDescription": { - "text": "Binding r-value to l-value reference is non-standard Microsoft C++ extension" - }, - "fullDescription": { - "text": "Binding r-value to l-value reference is non-standard Microsoft C++ extension", - "markdown": "Binding r-value to l-value reference is non-standard Microsoft C++ extension" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppMsExtBindingRValueToLvalueReference", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1507", - "shortDescription": { - "text": "RoslynAnalyzers Use nameof to express symbol names" - }, - "fullDescription": { - "text": "Using nameof helps keep your code valid when refactoring.", - "markdown": "Using nameof helps keep your code valid when refactoring." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1507", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1506", - "shortDescription": { - "text": "RoslynAnalyzers Avoid excessive class coupling" - }, - "fullDescription": { - "text": "This rule measures class coupling by counting the number of unique type references that a symbol contains. Symbols that have a high degree of class coupling can be difficult to maintain. It is a good practice to have types and methods that exhibit low coupling and high cohesion. To fix this violation, try to redesign the code to reduce the number of types to which it is coupled.", - "markdown": "This rule measures class coupling by counting the number of unique type references that a symbol contains. Symbols that have a high degree of class coupling can be difficult to maintain. It is a good practice to have types and methods that exhibit low coupling and high cohesion. To fix this violation, try to redesign the code to reduce the number of types to which it is coupled." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1506", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.RedundantModifiersAttribute", - "shortDescription": { - "text": "Redundant modifiers attribute" - }, - "fullDescription": { - "text": "Accessibility set by attribute coincides with the default one, thus the attribute can be safely removed", - "markdown": "Accessibility set by attribute coincides with the default one, thus the attribute can be safely removed" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Xaml.RedundantModifiersAttribute", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Redundancies in Code", - "index": 77, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1505", - "shortDescription": { - "text": "RoslynAnalyzers Avoid unmaintainable code" - }, - "fullDescription": { - "text": "The maintainability index is calculated by using the following metrics: lines of code, program volume, and cyclomatic complexity. Program volume is a measure of the difficulty of understanding of a symbol that is based on the number of operators and operands in the code. Cyclomatic complexity is a measure of the structural complexity of the type or method. A low maintainability index indicates that code is probably difficult to maintain and would be a good candidate to redesign.", - "markdown": "The maintainability index is calculated by using the following metrics: lines of code, program volume, and cyclomatic complexity. Program volume is a measure of the difficulty of understanding of a symbol that is based on the number of operators and operands in the code. Cyclomatic complexity is a measure of the structural complexity of the type or method. A low maintainability index indicates that code is probably difficult to maintain and would be a good candidate to redesign." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1505", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityContainerSizeEmpty", - "shortDescription": { - "text": "readability-container-size-empty clang-tidy check" - }, - "fullDescription": { - "text": "readability-container-size-empty clang-tidy check · Learn more", - "markdown": "readability-container-size-empty clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/container-size-empty.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityContainerSizeEmpty", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "InconsistentlySynchronizedField", - "shortDescription": { - "text": "Inconsistent synchronization on field" - }, - "fullDescription": { - "text": "The field is sometimes used inside synchronized block and sometimes used without synchronization Learn more...", - "markdown": "The field is sometimes used inside synchronized block and sometimes used without synchronization [Learn more...](https://www.jetbrains.com/help/rider/InconsistentlySynchronizedField.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "InconsistentlySynchronizedField", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1502", - "shortDescription": { - "text": "RoslynAnalyzers Avoid excessive complexity" - }, - "fullDescription": { - "text": "Cyclomatic complexity measures the number of linearly independent paths through the method, which is determined by the number and complexity of conditional branches. A low cyclomatic complexity generally indicates a method that is easy to understand, test, and maintain. The cyclomatic complexity is calculated from a control flow graph of the method and is given as follows: `cyclomatic complexity = the number of edges - the number of nodes + 1`, where a node represents a logic branch point and an edge represents a line between nodes.", - "markdown": "Cyclomatic complexity measures the number of linearly independent paths through the method, which is determined by the number and complexity of conditional branches. A low cyclomatic complexity generally indicates a method that is easy to understand, test, and maintain. The cyclomatic complexity is calculated from a control flow graph of the method and is given as follows: \\`cyclomatic complexity = the number of edges - the number of nodes + 1\\`, where a node represents a logic branch point and an edge represents a line between nodes." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1502", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1501", - "shortDescription": { - "text": "RoslynAnalyzers Avoid excessive inheritance" - }, - "fullDescription": { - "text": "Deeply nested type hierarchies can be difficult to follow, understand, and maintain. This rule limits analysis to hierarchies in the same module. To fix a violation of this rule, derive the type from a base type that is less deep in the inheritance hierarchy or eliminate some of the intermediate base types.", - "markdown": "Deeply nested type hierarchies can be difficult to follow, understand, and maintain. This rule limits analysis to hierarchies in the same module. To fix a violation of this rule, derive the type from a base type that is less deep in the inheritance hierarchy or eliminate some of the intermediate base types." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1501", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticArcRepeatedUseOfWeak", - "shortDescription": { - "text": "arc-repeated-use-of-weak clang diagnostic" - }, - "fullDescription": { - "text": "-Warc-repeated-use-of-weak clang diagnostic · Learn more", - "markdown": "-Warc-repeated-use-of-weak clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#warc-repeated-use-of-weak)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticArcRepeatedUseOfWeak", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "StructCanBeMadeReadOnly", - "shortDescription": { - "text": "Struct can be made readonly" - }, - "fullDescription": { - "text": "Struct has no mutable members and can be made readonly", - "markdown": "Struct has no mutable members and can be made readonly" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "StructCanBeMadeReadOnly", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseConfigureAwaitFalse", - "shortDescription": { - "text": "Missing '.ConfigureAwait(false)' in library code" - }, - "fullDescription": { - "text": "It is recommended to use 'ConfigureAwait(false)' in your library code to prevent context capture in task continuations. This inspection is controlled by the 'ConfigureAwait analysis mode' project level property, which is set to 'Disabled' by default. Set 'ConfigureAwait analysis mode' project level property to 'Library' to analyze 'await' expressions and statements for missing 'ConfigureAwait(false)' calls. Learn more...", - "markdown": "It is recommended to use 'ConfigureAwait(false)' in your library code to prevent context capture in task continuations. This inspection is controlled by the 'ConfigureAwait analysis mode' project level property, which is set to 'Disabled' by default. Set 'ConfigureAwait analysis mode' project level property to 'Library' to analyze 'await' expressions and statements for missing 'ConfigureAwait(false)' calls. [Learn more...](https://www.jetbrains.com/help/rider/UseConfigureAwaitFalse.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UseConfigureAwaitFalse", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnityErrors", - "shortDescription": { - "text": "Unity Errors" - }, - "fullDescription": { - "text": "Unity Errors", - "markdown": "Unity Errors" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "UnityErrors", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Non configurable", - "index": 52, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyGoogleBuildExplicitMakePair", - "shortDescription": { - "text": "google-build-explicit-make-pair clang-tidy check" - }, - "fullDescription": { - "text": "google-build-explicit-make-pair clang-tidy check · Learn more", - "markdown": "google-build-explicit-make-pair clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/google/build-explicit-make-pair.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyGoogleBuildExplicitMakePair", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SuggestBaseTypeForParameter", - "shortDescription": { - "text": "Parameter can be declared with the base type" - }, - "fullDescription": { - "text": "Parameter can be declared with the base type. Note that when the base type is IEnumerable, another inspection 'Parameter type can be IEnumerable' will be applied.", - "markdown": "Parameter can be declared with the base type. Note that when the base type is IEnumerable, another inspection 'Parameter type can be IEnumerable' will be applied." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "SuggestBaseTypeForParameter", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerOsxCocoaRetainCount", - "shortDescription": { - "text": "osx.cocoa.RetainCount clang static analyzer check" - }, - "fullDescription": { - "text": "osx.cocoa.RetainCount clang static analyzer check · Learn more", - "markdown": "osx.cocoa.RetainCount clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerOsxCocoaRetainCount", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppIncorrectBlankLinesNearBraces", - "shortDescription": { - "text": "Incorrect blank lines (incorrect number of blank lines near braces)" - }, - "fullDescription": { - "text": "Incorrect number of blank lines near braces", - "markdown": "Incorrect number of blank lines near braces" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppIncorrectBlankLinesNearBraces", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Formatting", - "index": 28, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticArrayParameter", - "shortDescription": { - "text": "array-parameter clang diagnostic" - }, - "fullDescription": { - "text": "-Warray-parameter clang diagnostic · Learn more", - "markdown": "-Warray-parameter clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#warray-parameter)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticArrayParameter", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticNullPointerArithmetic", - "shortDescription": { - "text": "null-pointer-arithmetic clang diagnostic" - }, - "fullDescription": { - "text": "-Wnull-pointer-arithmetic clang diagnostic · Learn more", - "markdown": "-Wnull-pointer-arithmetic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnull-pointer-arithmetic)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticNullPointerArithmetic", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RouteTemplates.RouteParameterConstraintNotResolved", - "shortDescription": { - "text": "Route parameter constraint not resolved" - }, - "fullDescription": { - "text": "Route parameter constraint not resolved", - "markdown": "Route parameter constraint not resolved" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RouteTemplates.RouteParameterConstraintNotResolved", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "ASP.NET route templates/Code Notification", - "index": 48, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneAssertSideEffect", - "shortDescription": { - "text": "bugprone-assert-side-effect clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-assert-side-effect clang-tidy check · Learn more", - "markdown": "bugprone-assert-side-effect clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/assert-side-effect.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneAssertSideEffect", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppImplicitDefaultConstructorNotAvailable", - "shortDescription": { - "text": "Implicit default constructor is not available" - }, - "fullDescription": { - "text": "Implicit default constructor is not available because a base class or a class member does not have an accessible default constructor", - "markdown": "Implicit default constructor is not available because a base class or a class member does not have an accessible default constructor" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppImplicitDefaultConstructorNotAvailable", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnusedMemberHierarchy.Global", - "shortDescription": { - "text": "Type member is only used in overrides (non-private accessibility)" - }, - "fullDescription": { - "text": "Type member is never used from outside of implementation hierarchy, it is only accessed from overrides through base call", - "markdown": "Type member is never used from outside of implementation hierarchy, it is only accessed from overrides through base call" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UnusedMemberHierarchy.Global", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithOfType.FirstOrDefault.1", - "shortDescription": { - "text": "Replace with OfType<T>().FirstOrDefault()" - }, - "fullDescription": { - "text": "$seq$.Select($x$ => $x$ as $T$).FirstOrDefault($y$ => $y$ != null)", - "markdown": "$seq$.Select($x$ =\\> $x$ as $T$).FirstOrDefault($y$ =\\> $y$ != null)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithOfType.FirstOrDefault.1", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithOfType.FirstOrDefault.2", - "shortDescription": { - "text": "Replace with OfType<T>().FirstOrDefault() (replace with OfType<T>().FirstOrDefault(..))" - }, - "fullDescription": { - "text": "$seq$.Select($x$ => $x$ as $T$).FirstOrDefault($y$ => $y$ != null && $expr$)", - "markdown": "$seq$.Select($x$ =\\> $x$ as $T$).FirstOrDefault($y$ =\\> $y$ != null \\&\\& $expr$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithOfType.FirstOrDefault.2", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneCastingThroughVoid", - "shortDescription": { - "text": "bugprone-casting-through-void clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-casting-through-void clang-tidy check · Learn more", - "markdown": "bugprone-casting-through-void clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/casting-through-void.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneCastingThroughVoid", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyHicppDeprecatedHeaders", - "shortDescription": { - "text": "hicpp-deprecated-headers clang-tidy check" - }, - "fullDescription": { - "text": "hicpp-deprecated-headers clang-tidy check · Learn more", - "markdown": "hicpp-deprecated-headers clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/deprecated-headers.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyHicppDeprecatedHeaders", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS0252,CS0253", - "shortDescription": { - "text": "Possible unintended reference comparison" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://www.jetbrains.com/help/rider/CSharpWarnings_CS0252_CS0253.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS0252,CS0253", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerSecurityInsecureAPIUncheckedReturn", - "shortDescription": { - "text": "security.insecureAPI.UncheckedReturn clang static analyzer check" - }, - "fullDescription": { - "text": "security.insecureAPI.UncheckedReturn clang static analyzer check · Learn more", - "markdown": "security.insecureAPI.UncheckedReturn clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerSecurityInsecureAPIUncheckedReturn", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticTentativeDefinitionIncompleteType", - "shortDescription": { - "text": "tentative-definition-incomplete-type clang diagnostic" - }, - "fullDescription": { - "text": "-Wtentative-definition-incomplete-type clang diagnostic · Learn more", - "markdown": "-Wtentative-definition-incomplete-type clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wtentative-definition-incomplete-type)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticTentativeDefinitionIncompleteType", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticIncompatiblePointerTypesDiscardsQualifiers", - "shortDescription": { - "text": "incompatible-pointer-types-discards-qualifiers clang diagnostic" - }, - "fullDescription": { - "text": "-Wincompatible-pointer-types-discards-qualifiers clang diagnostic · Learn more", - "markdown": "-Wincompatible-pointer-types-discards-qualifiers clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wincompatible-pointer-types-discards-qualifiers)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticIncompatiblePointerTypesDiscardsQualifiers", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppMustBePublicVirtualToImplementInterface", - "shortDescription": { - "text": "Method must be public and virtual to implement a C++/CLI interface member" - }, - "fullDescription": { - "text": "Method must be public and virtual to implement a C++/CLI interface member", - "markdown": "Method must be public and virtual to implement a C++/CLI interface member" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppMustBePublicVirtualToImplementInterface", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticImplicitFloatConversion", - "shortDescription": { - "text": "implicit-float-conversion clang diagnostic" - }, - "fullDescription": { - "text": "-Wimplicit-float-conversion clang diagnostic · Learn more", - "markdown": "-Wimplicit-float-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wimplicit-float-conversion)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticImplicitFloatConversion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AspUnusedRegisterDirectiveHighlighting", - "shortDescription": { - "text": "Unused register directive" - }, - "fullDescription": { - "text": "Register directive is unused and can be safely removed", - "markdown": "Register directive is unused and can be safely removed" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "AspUnusedRegisterDirectiveHighlighting", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Aspx/Redundancies in Code", - "index": 119, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantTypeDeclarationBody", - "shortDescription": { - "text": "Redundant type declaration body" - }, - "fullDescription": { - "text": "Empty type declaration body can be replaced with semicolon Learn more...", - "markdown": "Empty type declaration body can be replaced with semicolon [Learn more...](https://www.jetbrains.com/help/rider/RedundantTypeDeclarationBody.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RedundantTypeDeclarationBody", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticShiftCountNegative", - "shortDescription": { - "text": "shift-count-negative clang diagnostic" - }, - "fullDescription": { - "text": "-Wshift-count-negative clang diagnostic · Learn more", - "markdown": "-Wshift-count-negative clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wshift-count-negative)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticShiftCountNegative", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticThreadSafetyPrecise", - "shortDescription": { - "text": "thread-safety-precise clang diagnostic" - }, - "fullDescription": { - "text": "-Wthread-safety-precise clang diagnostic · Learn more", - "markdown": "-Wthread-safety-precise clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wthread-safety-precise)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticThreadSafetyPrecise", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneSignalHandler", - "shortDescription": { - "text": "bugprone-signal-handler clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-signal-handler clang-tidy check · Learn more", - "markdown": "bugprone-signal-handler clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/signal-handler.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneSignalHandler", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RouteTemplates.AmbiguousMatchingConstraintConstructor", - "shortDescription": { - "text": "More than one parameter constraint's constructor matched" - }, - "fullDescription": { - "text": "More than one parameter constraint's constructor matched", - "markdown": "More than one parameter constraint's constructor matched" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RouteTemplates.AmbiguousMatchingConstraintConstructor", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "ASP.NET route templates/Code Notification", - "index": 48, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantNotNullConstraint", - "shortDescription": { - "text": "Redundant 'notnull' constraint on type parameter constrained by non-nullable base type" - }, - "fullDescription": { - "text": "The 'notnull' constraint is redundant because type parameter is constrained by non-nullable base type", - "markdown": "The 'notnull' constraint is redundant because type parameter is constrained by non-nullable base type" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantNotNullConstraint", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnsupportedRequiredBaseType", - "shortDescription": { - "text": "BaseTypeRequired attribute supports only classes and interfaces" - }, - "fullDescription": { - "text": "Invalid type specified in '[BaseTypeRequired]' attribute usage. Only classes and interfaces are supported. Learn more...", - "markdown": "Invalid type specified in '\\[BaseTypeRequired\\]' attribute usage. Only classes and interfaces are supported. [Learn more...](https://www.jetbrains.com/help/rider/UnsupportedRequiredBaseType.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "UnsupportedRequiredBaseType", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Constraints Violations", - "index": 80, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClassCanBeFinal", - "shortDescription": { - "text": "Class can be made final" - }, - "fullDescription": { - "text": "A class definition can be marked as final so it cannot be inherited from", - "markdown": "A class definition can be marked as final so it cannot be inherited from" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClassCanBeFinal", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Common Practices and Code Improvements", - "index": 16, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.InefficientPropertyAccess", - "shortDescription": { - "text": "Repeated access of property on built in component is inefficient" - }, - "fullDescription": { - "text": "Some Unity object properties result in native methods calls, and repeatedly accessing such properties is inefficient. Introduce a variable to locally cache the property value. Learn more...", - "markdown": "Some Unity object properties result in native methods calls, and repeatedly accessing such properties is inefficient. Introduce a variable to locally cache the property value. [Learn more...](https://github.com/JetBrains/resharper-unity/wiki/Avoid-multiple-unnecessary-property-accesses)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "Unity.InefficientPropertyAccess", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "TabsAndSpacesMismatch", - "shortDescription": { - "text": "Incorrect indent (tabs/spaces mismatch)" - }, - "fullDescription": { - "text": "Tabs/spaces mismatch Learn more...", - "markdown": "Tabs/spaces mismatch [Learn more...](https://www.jetbrains.com/help/rider/TabsAndSpacesMismatch.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "TabsAndSpacesMismatch", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Formatting", - "index": 24, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.DuplicateEventFunction", - "shortDescription": { - "text": "Event function with the same name is already declared" - }, - "fullDescription": { - "text": "Event function with the same name is already declared.", - "markdown": "Event function with the same name is already declared." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.DuplicateEventFunction", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDeprecatedVolatile", - "shortDescription": { - "text": "deprecated-volatile clang diagnostic" - }, - "fullDescription": { - "text": "-Wdeprecated-volatile clang diagnostic · Learn more", - "markdown": "-Wdeprecated-volatile clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-volatile)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedVolatile", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp98CompatLocalTypeTemplateArgs", - "shortDescription": { - "text": "c++98-compat-local-type-template-args clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++98-compat-local-type-template-args clang diagnostic · Learn more", - "markdown": "-Wc++98-compat-local-type-template-args clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-98-compat-local-type-template-args)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp98CompatLocalTypeTemplateArgs", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceAutoPropertyWithComputedProperty", - "shortDescription": { - "text": "Replace auto-property with computed property" - }, - "fullDescription": { - "text": "Replace auto-property with computed property to avoid storing trivial state in every type instance", - "markdown": "Replace auto-property with computed property to avoid storing trivial state in every type instance" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceAutoPropertyWithComputedProperty", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EnforceLockStatementBraces", - "shortDescription": { - "text": "Use preferred braces style (enforce braces in 'lock' statement)" - }, - "fullDescription": { - "text": "Use braces to separate 'lock' statement body Learn more...", - "markdown": "Use braces to separate 'lock' statement body [Learn more...](https://www.jetbrains.com/help/rider/EnforceLockStatementBraces.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "EnforceLockStatementBraces", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Syntax Style", - "index": 21, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMicrosoftPureDefinition", - "shortDescription": { - "text": "microsoft-pure-definition clang diagnostic" - }, - "fullDescription": { - "text": "-Wmicrosoft-pure-definition clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-pure-definition clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-pure-definition)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftPureDefinition", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppUESourceFileWithoutPredefinedMacros", - "shortDescription": { - "text": "Unreal Engine source file without predefined Unreal macros" - }, - "fullDescription": { - "text": "There are no Unreal Engine predefined macros in the project model for the current source file. You might need to regenerate the project files.", - "markdown": "There are no Unreal Engine predefined macros in the project model for the current source file. You might need to regenerate the project files." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppUESourceFileWithoutPredefinedMacros", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Unreal Engine", - "index": 6, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyPerformanceInefficientAlgorithm", - "shortDescription": { - "text": "performance-inefficient-algorithm clang-tidy check" - }, - "fullDescription": { - "text": "performance-inefficient-algorithm clang-tidy check · Learn more", - "markdown": "performance-inefficient-algorithm clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance/inefficient-algorithm.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyPerformanceInefficientAlgorithm", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NotDisposedResourceIsReturned", - "shortDescription": { - "text": "Return value should be disposed but the method or function is not annotated with [MustDisposeResource]" - }, - "fullDescription": { - "text": "Return value should be disposed but the method or function is not annotated with [MustDisposeResource] Learn more...", - "markdown": "Return value should be disposed but the method or function is not annotated with \\[MustDisposeResource\\] [Learn more...](https://www.jetbrains.com/help/rider/NotDisposedResourceIsReturned.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "NotDisposedResourceIsReturned", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NullnessAnnotationConflictWithJetBrainsAnnotations", - "shortDescription": { - "text": "Nullability conflicts with annotations in hierarchy" - }, - "fullDescription": { - "text": "Nullability of a member conflicts with attribute annotations in its hierarchy. When using a base member, an unexpected value might be passed or returned, e.g. a null value might be passed to a non-nullable parameter because a parameter of a base member allows it, or the return value might not be checked for null because a base member indicates that it should never return null.", - "markdown": "Nullability of a member conflicts with attribute annotations in its hierarchy. When using a base member, an unexpected value might be passed or returned, e.g. a null value might be passed to a non-nullable parameter because a parameter of a base member allows it, or the return value might not be checked for null because a base member indicates that it should never return null." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NullnessAnnotationConflictWithJetBrainsAnnotations", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "FSharpRedundantUnionCaseFieldPatterns", - "shortDescription": { - "text": "Redundant union case fields matching" - }, - "fullDescription": { - "text": "Explicit fields matching is redundant and can be replaced with '_'.", - "markdown": "Explicit fields matching is redundant and can be replaced with '_'." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "FSharpRedundantUnionCaseFieldPatterns", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "F#/Redundancies in Code", - "index": 73, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8670", - "shortDescription": { - "text": "Object or collection initializer implicitly dereferences possibly null member." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/nullable-warnings#possible-dereference-of-null)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8670", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerCoreNonnilStringConstants", - "shortDescription": { - "text": "core.NonnilStringConstants clang static analyzer check" - }, - "fullDescription": { - "text": "core.NonnilStringConstants clang static analyzer check · Learn more", - "markdown": "core.NonnilStringConstants clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerCoreNonnilStringConstants", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCppcoreguidelinesProTypeCstyleCast", - "shortDescription": { - "text": "cppcoreguidelines-pro-type-cstyle-cast clang-tidy check" - }, - "fullDescription": { - "text": "cppcoreguidelines-pro-type-cstyle-cast clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-pro-type-cstyle-cast clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/pro-type-cstyle-cast.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCppcoreguidelinesProTypeCstyleCast", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticProfileInstrMissing", - "shortDescription": { - "text": "profile-instr-missing clang diagnostic" - }, - "fullDescription": { - "text": "-Wprofile-instr-missing clang diagnostic · Learn more", - "markdown": "-Wprofile-instr-missing clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wprofile-instr-missing)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticProfileInstrMissing", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS0728", - "shortDescription": { - "text": "Possibly incorrect assignment to local which is the argument to a 'using' or 'lock' statement" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/misc/cs0728)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS0728", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPreCpp2cCompat", - "shortDescription": { - "text": "pre-c++2c-compat clang diagnostic" - }, - "fullDescription": { - "text": "-Wpre-c++2c-compat clang diagnostic · Learn more", - "markdown": "-Wpre-c++2c-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpre-c-2c-compat)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPreCpp2cCompat", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.BurstBoxingNotSupported", - "shortDescription": { - "text": "Boxing is not supported" - }, - "fullDescription": { - "text": "Boxing is not supported", - "markdown": "Boxing is not supported" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.BurstBoxingNotSupported", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity Burst Compiler Warnings", - "index": 57, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppDeclaratorNeverUsed", - "shortDescription": { - "text": "Declarator is never used" - }, - "fullDescription": { - "text": "A declarator is never used", - "markdown": "A declarator is never used" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppDeclaratorNeverUsed", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantDiscardDesignation", - "shortDescription": { - "text": "Redundant discard designation" - }, - "fullDescription": { - "text": "Discard designation can be omitted in this context", - "markdown": "Discard designation can be omitted in this context" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RedundantDiscardDesignation", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticImplicitAtomicProperties", - "shortDescription": { - "text": "implicit-atomic-properties clang diagnostic" - }, - "fullDescription": { - "text": "-Wimplicit-atomic-properties clang diagnostic · Learn more", - "markdown": "-Wimplicit-atomic-properties clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wimplicit-atomic-properties)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticImplicitAtomicProperties", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticRequiresSuperAttribute", - "shortDescription": { - "text": "requires-super-attribute clang diagnostic" - }, - "fullDescription": { - "text": "-Wrequires-super-attribute clang diagnostic · Learn more", - "markdown": "-Wrequires-super-attribute clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wrequires-super-attribute)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticRequiresSuperAttribute", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "FSharpRedundantRequireQualifiedAccessAttribute", - "shortDescription": { - "text": "Redundant RequireQualifiedAccess attribute" - }, - "fullDescription": { - "text": "Enum type always requires qualified access.", - "markdown": "Enum type always requires qualified access." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "FSharpRedundantRequireQualifiedAccessAttribute", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "F#/Redundancies in Code", - "index": 73, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnusedLocalFunction.Compiler", - "shortDescription": { - "text": "Local function is never used" - }, - "fullDescription": { - "text": "Local function is never used (compiler warning)", - "markdown": "Local function is never used (compiler warning)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "UnusedLocalFunction.Compiler", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDxilValidation", - "shortDescription": { - "text": "dxil-validation clang diagnostic" - }, - "fullDescription": { - "text": "-Wdxil-validation clang diagnostic · Learn more", - "markdown": "-Wdxil-validation clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdxil-validation)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDxilValidation", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppRedundantMemberInitializer", - "shortDescription": { - "text": "Redundant member initializer in constructor initialization list" - }, - "fullDescription": { - "text": "Redundant member initializer in constructor initialization list", - "markdown": "Redundant member initializer in constructor initialization list" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppRedundantMemberInitializer", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Redundancies in Code", - "index": 34, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS0659", - "shortDescription": { - "text": "Class overrides Object.Equals(object o) but not Object.GetHashCode()" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/xxhbfytk.aspx)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS0659", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppUEVersionFileDoesntExist", - "shortDescription": { - "text": "Unreal Engine version file does not exist" - }, - "fullDescription": { - "text": "Unreal Engine version file specified in UE4.vcxproj does not exist. You might need to regenerate the project files.", - "markdown": "Unreal Engine version file specified in UE4.vcxproj does not exist. You might need to regenerate the project files." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "CppUEVersionFileDoesntExist", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Unreal Engine", - "index": 6, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS0657", - "shortDescription": { - "text": "'attribute modifier' is not a valid attribute location for this declaration. All attributes in this block will be ignored" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/c6hdfbk4.aspx)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS0657", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS0658", - "shortDescription": { - "text": "'attribute modifier' is not a recognized attribute location. All attributes in this block will be ignored" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/4ky08ezz.aspx)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS0658", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS0652", - "shortDescription": { - "text": "Comparison to integral constant is useless; the constant is outside the range of type 'type'." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/misc/cs0652)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS0652", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBReplaceWithSingleCallToFirst", - "shortDescription": { - "text": "Replace with single call to First(..)" - }, - "fullDescription": { - "text": "$seq$.Where(Function ($x$) $expr$).First()", - "markdown": "$seq$.Where(Function ($x$) $expr$).First()" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBReplaceWithSingleCallToFirst", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS1981", - "shortDescription": { - "text": "Using 'is' to test compatibility with 'dynamic' is essentially identical to testing compatibility with 'Object' and will succeed for all non-null values" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS1981", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerSecurityInsecureAPIDeprecatedOrUnsafeBufferHandling", - "shortDescription": { - "text": "security.insecureAPI.DeprecatedOrUnsafeBufferHandling clang static analyzer check" - }, - "fullDescription": { - "text": "security.insecureAPI.DeprecatedOrUnsafeBufferHandling clang static analyzer check · Learn more", - "markdown": "security.insecureAPI.DeprecatedOrUnsafeBufferHandling clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerSecurityInsecureAPIDeprecatedOrUnsafeBufferHandling", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RemoveRedundantBraces", - "shortDescription": { - "text": "Use preferred braces style (remove redundant braces)" - }, - "fullDescription": { - "text": "Braces can be safely removed without changing code semantics Learn more...", - "markdown": "Braces can be safely removed without changing code semantics [Learn more...](https://www.jetbrains.com/help/rider/RemoveRedundantBraces.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RemoveRedundantBraces", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Syntax Style", - "index": 21, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ArrangeStaticMemberQualifier", - "shortDescription": { - "text": "Add/remove qualifier for static members" - }, - "fullDescription": { - "text": "Qualifier can be safely added/removed without changing code semantics Learn more...", - "markdown": "Qualifier can be safely added/removed without changing code semantics [Learn more...](https://www.jetbrains.com/help/rider/ArrangeStaticMemberQualifier.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ArrangeStaticMemberQualifier", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Syntax Style", - "index": 21, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppPossiblyErroneousEmptyStatements", - "shortDescription": { - "text": "Possibly erroneous empty statement" - }, - "fullDescription": { - "text": "Possibly erroneous empty statement used in a control statement", - "markdown": "Possibly erroneous empty statement used in a control statement" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppPossiblyErroneousEmptyStatements", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBStringCompareToIsCultureSpecific", - "shortDescription": { - "text": "String.CompareTo is culture-specific" - }, - "fullDescription": { - "text": "$s1$.CompareTo($s2$)", - "markdown": "$s1$.CompareTo($s2$)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "VBStringCompareToIsCultureSpecific", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClassIsIncomplete", - "shortDescription": { - "text": "Use of an incomplete type inside a template" - }, - "fullDescription": { - "text": "An incomplete type is used inside a template declaration or definition", - "markdown": "An incomplete type is used inside a template declaration or definition" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClassIsIncomplete", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Compiler Warnings", - "index": 75, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EnforceUsingStatementBraces", - "shortDescription": { - "text": "Use preferred braces style (enforce braces in 'using' statement)" - }, - "fullDescription": { - "text": "Use braces to separate 'using' statement body Learn more...", - "markdown": "Use braces to separate 'using' statement body [Learn more...](https://www.jetbrains.com/help/rider/EnforceUsingStatementBraces.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "EnforceUsingStatementBraces", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Syntax Style", - "index": 21, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCertDcl58Cpp", - "shortDescription": { - "text": "cert-dcl58-cpp clang-tidy check" - }, - "fullDescription": { - "text": "cert-dcl58-cpp clang-tidy check · Learn more", - "markdown": "cert-dcl58-cpp clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/dcl58-cpp.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyCertDcl58Cpp", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS1998", - "shortDescription": { - "text": "Async function without await expression" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS1998", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticRedundantParens", - "shortDescription": { - "text": "redundant-parens clang diagnostic" - }, - "fullDescription": { - "text": "-Wredundant-parens clang diagnostic · Learn more", - "markdown": "-Wredundant-parens clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wredundant-parens)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticRedundantParens", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneUndelegatedConstructor", - "shortDescription": { - "text": "bugprone-undelegated-constructor clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-undelegated-constructor clang-tidy check · Learn more", - "markdown": "bugprone-undelegated-constructor clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/undelegated-constructor.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneUndelegatedConstructor", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCppcoreguidelinesAvoidReferenceCoroutineParameters", - "shortDescription": { - "text": "cppcoreguidelines-avoid-reference-coroutine-parameters clang-tidy check" - }, - "fullDescription": { - "text": "cppcoreguidelines-avoid-reference-coroutine-parameters clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-avoid-reference-coroutine-parameters clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/avoid-reference-coroutine-parameters.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCppcoreguidelinesAvoidReferenceCoroutineParameters", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppRedundantEmptyDeclaration", - "shortDescription": { - "text": "Redundant empty declaration" - }, - "fullDescription": { - "text": "Redundant empty declaration", - "markdown": "Redundant empty declaration" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppRedundantEmptyDeclaration", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Redundancies in Code", - "index": 34, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS0665", - "shortDescription": { - "text": "Assignment in conditional expression" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/c1sde1ax.aspx)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS0665", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Asp.SkinNotResolved", - "shortDescription": { - "text": "Unknown skin" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "Asp.SkinNotResolved", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Aspx/Potential Code Quality Issues", - "index": 64, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "FSharpUseWildSelfId", - "shortDescription": { - "text": "Use `_` self id" - }, - "fullDescription": { - "text": "Use `_` self id.", - "markdown": "Use \\`_\\` self id." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "FSharpUseWildSelfId", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "F#/Redundancies in Code", - "index": 73, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConfusingCharAsIntegerInConstructor", - "shortDescription": { - "text": "Char is possibly unintentionally used as integer" - }, - "fullDescription": { - "text": "Char is possibly unintentionally used as integer", - "markdown": "Char is possibly unintentionally used as integer" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "ConfusingCharAsIntegerInConstructor", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PossibleUnintendedQueryableAsEnumerable", - "shortDescription": { - "text": "IQueryable is possibly unintentionally used as IEnumerable" - }, - "fullDescription": { - "text": "IQueryable is possibly unintentionally used as IEnumerable Learn more...", - "markdown": "IQueryable is possibly unintentionally used as IEnumerable [Learn more...](https://www.jetbrains.com/help/rider/PossibleUnintendedQueryableAsEnumerable.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "PossibleUnintendedQueryableAsEnumerable", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticHeaderGuard", - "shortDescription": { - "text": "header-guard clang diagnostic" - }, - "fullDescription": { - "text": "-Wheader-guard clang diagnostic · Learn more", - "markdown": "-Wheader-guard clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wheader-guard)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticHeaderGuard", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnusedParameter", - "shortDescription": { - "text": "unused-parameter clang diagnostic" - }, - "fullDescription": { - "text": "-Wunused-parameter clang diagnostic · Learn more", - "markdown": "-Wunused-parameter clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunused-parameter)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnusedParameter", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Html.TagShouldBeSelfClosed", - "shortDescription": { - "text": "Wrong closed tag" - }, - "fullDescription": { - "text": "Wrong closed tag in HTML and related technologies", - "markdown": "Wrong closed tag in HTML and related technologies" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Html.TagShouldBeSelfClosed", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HTML/Potential Code Quality Issues", - "index": 54, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8597", - "shortDescription": { - "text": "Thrown value may be null." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/nullable-warnings#possible-null-assigned-to-a-nonnullable-reference)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8597", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBReplaceWithSingleOrDefault", - "shortDescription": { - "text": "Replace with SingleOrDefault($args$)" - }, - "fullDescription": { - "text": "If ($seq$.Any($args$), $seq$.Single($args$), Nothing)", - "markdown": "If ($seq$.Any($args$), $seq$.Single($args$), Nothing)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBReplaceWithSingleOrDefault", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDeprecatedCoroutine", - "shortDescription": { - "text": "deprecated-coroutine clang diagnostic" - }, - "fullDescription": { - "text": "-Wdeprecated-coroutine clang diagnostic · Learn more", - "markdown": "-Wdeprecated-coroutine clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-coroutine)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedCoroutine", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticBlockCaptureAutoreleasing", - "shortDescription": { - "text": "block-capture-autoreleasing clang diagnostic" - }, - "fullDescription": { - "text": "-Wblock-capture-autoreleasing clang diagnostic · Learn more", - "markdown": "-Wblock-capture-autoreleasing clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wblock-capture-autoreleasing)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticBlockCaptureAutoreleasing", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SimilarAnonymousTypeNearby", - "shortDescription": { - "text": "Similar anonymous type detected nearby" - }, - "fullDescription": { - "text": "Anonymous type that differs only in property order is detected nearby", - "markdown": "Anonymous type that differs only in property order is detected nearby" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "SimilarAnonymousTypeNearby", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyModernizeLoopConvert", - "shortDescription": { - "text": "modernize-loop-convert clang-tidy check" - }, - "fullDescription": { - "text": "modernize-loop-convert clang-tidy check · Learn more", - "markdown": "modernize-loop-convert clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/loop-convert.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyModernizeLoopConvert", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppRedundantZeroInitializerInAggregateInitialization", - "shortDescription": { - "text": "Redundant zero initializer in aggregate initialization" - }, - "fullDescription": { - "text": "Redundant zero initializer in aggregate initialization", - "markdown": "Redundant zero initializer in aggregate initialization" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppRedundantZeroInitializerInAggregateInitialization", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Redundancies in Code", - "index": 34, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NotAccessedField.Global", - "shortDescription": { - "text": "Non-accessed field (non-private accessibility)" - }, - "fullDescription": { - "text": "Field is assigned but its value is never used Learn more...", - "markdown": "Field is assigned but its value is never used [Learn more...](https://www.jetbrains.com/help/rider/NotAccessedField.Global.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "NotAccessedField.Global", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.RedundantHideInInspectorAttribute", - "shortDescription": { - "text": "Redundant attribute usage (redundant 'HideInInspector' attribute)" - }, - "fullDescription": { - "text": "The 'HideInInspector' attribute only applies to serialized fields Learn more...", - "markdown": "The 'HideInInspector' attribute only applies to serialized fields [Learn more...](https://github.com/JetBrains/resharper-unity/wiki/Redundant-HideInInspector-attribute)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.RedundantHideInInspectorAttribute", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppUnnecessaryWhitespace", - "shortDescription": { - "text": "Incorrect spacing (redundant whitespaces at the end of a line)" - }, - "fullDescription": { - "text": "Redundant whitespace characters at the end of a line", - "markdown": "Redundant whitespace characters at the end of a line" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppUnnecessaryWhitespace", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Formatting", - "index": 28, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneMisplacedPointerArithmeticInAlloc", - "shortDescription": { - "text": "bugprone-misplaced-pointer-arithmetic-in-alloc clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-misplaced-pointer-arithmetic-in-alloc clang-tidy check · Learn more", - "markdown": "bugprone-misplaced-pointer-arithmetic-in-alloc clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/misplaced-pointer-arithmetic-in-alloc.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneMisplacedPointerArithmeticInAlloc", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.LoadSceneUnknownSceneName", - "shortDescription": { - "text": "There is no scene with the same name in the build settings" - }, - "fullDescription": { - "text": "The scene is missing in the Unity build settings.", - "markdown": "The scene is missing in the Unity build settings." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.LoadSceneUnknownSceneName", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithOfType.LastOrDefault.2", - "shortDescription": { - "text": "Replace with OfType<T>().LastOrDefault() (replace with OfType<T>().LastOrDefault(..))" - }, - "fullDescription": { - "text": "$seq$.Select($x$ => $x$ as $T$).LastOrDefault($y$ => $y$ != null && $expr$)", - "markdown": "$seq$.Select($x$ =\\> $x$ as $T$).LastOrDefault($y$ =\\> $y$ != null \\&\\& $expr$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithOfType.LastOrDefault.2", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithOfType.LastOrDefault.1", - "shortDescription": { - "text": "Replace with OfType<T>().LastOrDefault()" - }, - "fullDescription": { - "text": "$seq$.Select($x$ => $x$ as $T$).LastOrDefault($y$ => $y$ != null)", - "markdown": "$seq$.Select($x$ =\\> $x$ as $T$).LastOrDefault($y$ =\\> $y$ != null)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithOfType.LastOrDefault.1", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NotAccessedVariable", - "shortDescription": { - "text": "Non-accessed local variable" - }, - "fullDescription": { - "text": "Local variable is assigned but its value is never used Learn more...", - "markdown": "Local variable is assigned but its value is never used [Learn more...](https://www.jetbrains.com/help/rider/NotAccessedVariable.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "NotAccessedVariable", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "OutParameterValueIsAlwaysDiscarded.Local", - "shortDescription": { - "text": "Parameter output value is always discarded (private accessibility)" - }, - "fullDescription": { - "text": "The resulting value of output parameter is always discarded Learn more...", - "markdown": "The resulting value of output parameter is always discarded [Learn more...](https://www.jetbrains.com/help/rider/OutParameterValueIsAlwaysDiscarded.Local.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "OutParameterValueIsAlwaysDiscarded.Local", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS0642", - "shortDescription": { - "text": "Possible mistaken empty statement" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/9x19t380.aspx)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS0642", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneMoveForwardingReference", - "shortDescription": { - "text": "bugprone-move-forwarding-reference clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-move-forwarding-reference clang-tidy check · Learn more", - "markdown": "bugprone-move-forwarding-reference clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/move-forwarding-reference.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneMoveForwardingReference", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "WebConfig.ModuleNotResolved", - "shortDescription": { - "text": "Cannot resolve module" - }, - "fullDescription": { - "text": "Cannot resolve module", - "markdown": "Cannot resolve module" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "WebConfig.ModuleNotResolved", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Web.Config/Potential Code Quality Issues", - "index": 82, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBStringEndsWithIsCultureSpecific", - "shortDescription": { - "text": "String.EndsWith is culture-specific (string.EndsWith(string) is culture-specific)" - }, - "fullDescription": { - "text": "$s$.EndsWith($sarg$)", - "markdown": "$s$.EndsWith($sarg$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBStringEndsWithIsCultureSpecific", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConditionalTernaryEqualBranch", - "shortDescription": { - "text": "'?:' expression has identical true and false branches" - }, - "fullDescription": { - "text": "'?:' expression has identical true and false branches Learn more...", - "markdown": "'?:' expression has identical true and false branches [Learn more...](https://www.jetbrains.com/help/rider/ConditionalTernaryEqualBranch.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "ConditionalTernaryEqualBranch", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyHicppAvoidGoto", - "shortDescription": { - "text": "hicpp-avoid-goto clang-tidy check" - }, - "fullDescription": { - "text": "hicpp-avoid-goto clang-tidy check · Learn more", - "markdown": "hicpp-avoid-goto clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/avoid-goto.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyHicppAvoidGoto", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.Entities.InconsistentModifiersForDotsInheritor", - "shortDescription": { - "text": "DOTS: Inconsistent type keywords" - }, - "fullDescription": { - "text": "{0}'s inheritor '{1}' must be '{2}{3}{4}'", - "markdown": "{0}'s inheritor '{1}' must be '{2}{3}{4}'" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "Unity.Entities.InconsistentModifiersForDotsInheritor", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDeprecatedObjcPointerIntrospection", - "shortDescription": { - "text": "deprecated-objc-pointer-introspection clang diagnostic" - }, - "fullDescription": { - "text": "-Wdeprecated-objc-pointer-introspection clang diagnostic · Learn more", - "markdown": "-Wdeprecated-objc-pointer-introspection clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-objc-pointer-introspection)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedObjcPointerIntrospection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCppcoreguidelinesOwningMemory", - "shortDescription": { - "text": "cppcoreguidelines-owning-memory clang-tidy check" - }, - "fullDescription": { - "text": "cppcoreguidelines-owning-memory clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-owning-memory clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/owning-memory.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCppcoreguidelinesOwningMemory", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticSemicolonBeforeMethodBody", - "shortDescription": { - "text": "semicolon-before-method-body clang diagnostic" - }, - "fullDescription": { - "text": "-Wsemicolon-before-method-body clang diagnostic · Learn more", - "markdown": "-Wsemicolon-before-method-body clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wsemicolon-before-method-body)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticSemicolonBeforeMethodBody", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppDeprecatedEntity", - "shortDescription": { - "text": "Entity is deprecated" - }, - "fullDescription": { - "text": "Entity is deprecated", - "markdown": "Entity is deprecated" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppDeprecatedEntity", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticEnumCompareSwitch", - "shortDescription": { - "text": "enum-compare-switch clang diagnostic" - }, - "fullDescription": { - "text": "-Wenum-compare-switch clang diagnostic · Learn more", - "markdown": "-Wenum-compare-switch clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wenum-compare-switch)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticEnumCompareSwitch", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnusedPrivateField", - "shortDescription": { - "text": "unused-private-field clang diagnostic" - }, - "fullDescription": { - "text": "-Wunused-private-field clang diagnostic · Learn more", - "markdown": "-Wunused-private-field clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunused-private-field)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnusedPrivateField", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS0693", - "shortDescription": { - "text": "Type parameter has the same name as a type parameter from the outer type" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/0ah54ze5.aspx)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS0693", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyHicppBracesAroundStatements", - "shortDescription": { - "text": "hicpp-braces-around-statements clang-tidy check" - }, - "fullDescription": { - "text": "hicpp-braces-around-statements clang-tidy check · Learn more", - "markdown": "hicpp-braces-around-statements clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/braces-around-statements.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyHicppBracesAroundStatements", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyModernizeReplaceDisallowCopyAndAssignMacro", - "shortDescription": { - "text": "modernize-replace-disallow-copy-and-assign-macro clang-tidy check" - }, - "fullDescription": { - "text": "modernize-replace-disallow-copy-and-assign-macro clang-tidy check · Learn more", - "markdown": "modernize-replace-disallow-copy-and-assign-macro clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/replace-disallow-copy-and-assign-macro.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyModernizeReplaceDisallowCopyAndAssignMacro", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnicodeWhitespace", - "shortDescription": { - "text": "unicode-whitespace clang diagnostic" - }, - "fullDescription": { - "text": "-Wunicode-whitespace clang diagnostic · Learn more", - "markdown": "-Wunicode-whitespace clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunicode-whitespace)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnicodeWhitespace", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Asp.InvalidControlType", - "shortDescription": { - "text": "Invalid control type" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "Asp.InvalidControlType", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Aspx/Potential Code Quality Issues", - "index": 64, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "OutParameterValueIsAlwaysDiscarded.Global", - "shortDescription": { - "text": "Parameter output value is always discarded (non-private accessibility)" - }, - "fullDescription": { - "text": "The resulting value of output parameter is always discarded Learn more...", - "markdown": "The resulting value of output parameter is always discarded [Learn more...](https://www.jetbrains.com/help/rider/OutParameterValueIsAlwaysDiscarded.Global.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "OutParameterValueIsAlwaysDiscarded.Global", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBWarnings__BC42353,BC42354,BC42355", - "shortDescription": { - "text": "Function doesn't return a struct value on all code paths" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://www.jetbrains.com/help/rider/VBWarnings_BC42353_BC42354_BC42355.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "VBWarnings__BC42353,BC42354,BC42355", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Compiler Warnings", - "index": 110, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ArrangeMethodOrOperatorBody", - "shortDescription": { - "text": "Use preferred body style (convert into method or operator with preferred body style)" - }, - "fullDescription": { - "text": "Use expression or block body Learn more...", - "markdown": "Use expression or block body [Learn more...](https://www.jetbrains.com/help/rider/ArrangeMethodOrOperatorBody.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "ArrangeMethodOrOperatorBody", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Syntax Style", - "index": 21, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit.TestCaseSourceMustBeFieldPropertyMethod", - "shortDescription": { - "text": "NUnit. Test case source must be field, property, or method." - }, - "fullDescription": { - "text": "NUnit test case source specified in [TestCaseSource] or [ValueSource] attributes must only refer to field, property, or method Learn more...", - "markdown": "NUnit test case source specified in \\[TestCaseSource\\] or \\[ValueSource\\] attributes must only refer to field, property, or method [Learn more...](https://www.jetbrains.com/help/rider/NUnit.TestCaseSourceMustBeFieldPropertyMethod.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NUnit.TestCaseSourceMustBeFieldPropertyMethod", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/NUnit", - "index": 26, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPragmaPackSuspiciousInclude", - "shortDescription": { - "text": "pragma-pack-suspicious-include clang diagnostic" - }, - "fullDescription": { - "text": "-Wpragma-pack-suspicious-include clang diagnostic · Learn more", - "markdown": "-Wpragma-pack-suspicious-include clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpragma-pack-suspicious-include)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPragmaPackSuspiciousInclude", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantOverload.Global", - "shortDescription": { - "text": "Redundant method overload (non-private accessibility)" - }, - "fullDescription": { - "text": "Redundant method overload. Use another method with optional parameters.", - "markdown": "Redundant method overload. Use another method with optional parameters." - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "RedundantOverload.Global", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp98Compat", - "shortDescription": { - "text": "c++98-compat clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++98-compat clang diagnostic · Learn more", - "markdown": "-Wc++98-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-98-compat)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp98Compat", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticGnuCaseRange", - "shortDescription": { - "text": "gnu-case-range clang diagnostic" - }, - "fullDescription": { - "text": "-Wgnu-case-range clang diagnostic · Learn more", - "markdown": "-Wgnu-case-range clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-case-range)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticGnuCaseRange", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PossibleIntendedRethrow", - "shortDescription": { - "text": "Exception rethrow possibly intended" - }, - "fullDescription": { - "text": "A 'throw' statement inside a catch clause which throws the exception caught. In most of cases a 'throw' statement with no argument is to be used.", - "markdown": "A 'throw' statement inside a catch clause which throws the exception caught. In most of cases a 'throw' statement with no argument is to be used." - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "PossibleIntendedRethrow", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticAtimportInFrameworkHeader", - "shortDescription": { - "text": "atimport-in-framework-header clang diagnostic" - }, - "fullDescription": { - "text": "-Watimport-in-framework-header clang diagnostic · Learn more", - "markdown": "-Watimport-in-framework-header clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#watimport-in-framework-header)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticAtimportInFrameworkHeader", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.IgnoredPathHighlighting", - "shortDescription": { - "text": "Ignored path" - }, - "fullDescription": { - "text": "Path is ignored in project settings", - "markdown": "Path is ignored in project settings" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "Xaml.IgnoredPathHighlighting", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Code Notification", - "index": 5, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppEnforceForStatementBraces", - "shortDescription": { - "text": "Use preferred braces style (enforce braces in 'for' statement)" - }, - "fullDescription": { - "text": "Use braces to separate 'for' statement body", - "markdown": "Use braces to separate 'for' statement body" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppEnforceForStatementBraces", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Syntax Style", - "index": 91, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ForCanBeConvertedToForeach", - "shortDescription": { - "text": "For-loop can be converted into foreach-loop" - }, - "fullDescription": { - "text": "For-loop can be converted into foreach-loop Learn more...", - "markdown": "For-loop can be converted into foreach-loop [Learn more...](https://www.jetbrains.com/help/rider/ForCanBeConvertedToForeach.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ForCanBeConvertedToForeach", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticExplicitSpecializationStorageClass", - "shortDescription": { - "text": "explicit-specialization-storage-class clang diagnostic" - }, - "fullDescription": { - "text": "-Wexplicit-specialization-storage-class clang diagnostic · Learn more", - "markdown": "-Wexplicit-specialization-storage-class clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wexplicit-specialization-storage-class)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticExplicitSpecializationStorageClass", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "FSharpRedundantNameQualifier", - "shortDescription": { - "text": "Redundant name qualifier" - }, - "fullDescription": { - "text": "Redundant use of qualifier for name.", - "markdown": "Redundant use of qualifier for name." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "FSharpRedundantNameQualifier", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "F#/Redundancies in Code", - "index": 73, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMissingBraces", - "shortDescription": { - "text": "missing-braces clang diagnostic" - }, - "fullDescription": { - "text": "-Wmissing-braces clang diagnostic · Learn more", - "markdown": "-Wmissing-braces clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmissing-braces)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMissingBraces", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Mvc.TemplateNotResolved", - "shortDescription": { - "text": "MVC (unknown template)" - }, - "fullDescription": { - "text": "Unknown ASP.NET MVC Template", - "markdown": "Unknown ASP.NET MVC Template" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Mvc.TemplateNotResolved", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Aspx/Potential Code Quality Issues", - "index": 64, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.IndexOutOfGridDefinition", - "shortDescription": { - "text": "Grid element column/row index is out of grid definition range" - }, - "fullDescription": { - "text": "Grid element column/row index is out of grid definition range", - "markdown": "Grid element column/row index is out of grid definition range" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Xaml.IndexOutOfGridDefinition", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Potential Code Quality Issues", - "index": 45, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneStringviewNullptr", - "shortDescription": { - "text": "bugprone-stringview-nullptr clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-stringview-nullptr clang-tidy check · Learn more", - "markdown": "bugprone-stringview-nullptr clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/stringview-nullptr.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneStringviewNullptr", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUndefinedBoolConversion", - "shortDescription": { - "text": "undefined-bool-conversion clang diagnostic" - }, - "fullDescription": { - "text": "-Wundefined-bool-conversion clang diagnostic · Learn more", - "markdown": "-Wundefined-bool-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wundefined-bool-conversion)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUndefinedBoolConversion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppUseRangeAlgorithm", - "shortDescription": { - "text": "Algorithm operating on ranges can be used" - }, - "fullDescription": { - "text": "Algorithm accepting iterators is used instead of the corresponding algorithm from std::ranges", - "markdown": "Algorithm accepting iterators is used instead of the corresponding algorithm from std::ranges" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppUseRangeAlgorithm", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Common Practices and Code Improvements", - "index": 16, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticOpenmpTargetException", - "shortDescription": { - "text": "openmp-target-exception clang diagnostic" - }, - "fullDescription": { - "text": "-Wopenmp-target-exception clang diagnostic · Learn more", - "markdown": "-Wopenmp-target-exception clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wopenmp-target-exception)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticOpenmpTargetException", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticParentheses", - "shortDescription": { - "text": "parentheses clang diagnostic" - }, - "fullDescription": { - "text": "-Wparentheses clang diagnostic · Learn more", - "markdown": "-Wparentheses clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wparentheses)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticParentheses", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS0675", - "shortDescription": { - "text": "Bitwise-or operator used on a sign-extended operand." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/cs0675)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS0675", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerSecurityInsecureAPIMkstemp", - "shortDescription": { - "text": "security.insecureAPI.mkstemp clang static analyzer check" - }, - "fullDescription": { - "text": "security.insecureAPI.mkstemp clang static analyzer check · Learn more", - "markdown": "security.insecureAPI.mkstemp clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerSecurityInsecureAPIMkstemp", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MissingIndent", - "shortDescription": { - "text": "Incorrect indent (missing indent/outdent elsewhere)" - }, - "fullDescription": { - "text": "Missing indent/outdent elsewhere Learn more...", - "markdown": "Missing indent/outdent elsewhere [Learn more...](https://www.jetbrains.com/help/rider/MissingIndent.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "MissingIndent", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Formatting", - "index": 24, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS0672", - "shortDescription": { - "text": "Member overrides obsolete member" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/9dzeyth8.aspx)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS0672", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Html.TagNotResolved", - "shortDescription": { - "text": "Unknown tag" - }, - "fullDescription": { - "text": "Unknown tag in HTML and related technologies", - "markdown": "Unknown tag in HTML and related technologies" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Html.TagNotResolved", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HTML/Potential Code Quality Issues", - "index": 54, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ArrangeAttributes", - "shortDescription": { - "text": "Join or separate attributes in section" - }, - "fullDescription": { - "text": "Attributes have to be declared in separate sections or in a single sections Learn more...", - "markdown": "Attributes have to be declared in separate sections or in a single sections [Learn more...](https://www.jetbrains.com/help/rider/ArrangeAttributes.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ArrangeAttributes", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Syntax Style", - "index": 21, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantDeclarationSemicolon", - "shortDescription": { - "text": "Redundant semicolon after type or namespace declaration" - }, - "fullDescription": { - "text": "Semicolon after class/struct/enum/interface/namespace declarations is redundant in C#", - "markdown": "Semicolon after class/struct/enum/interface/namespace declarations is redundant in C#" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RedundantDeclarationSemicolon", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyMiscThrowByValueCatchByReference", - "shortDescription": { - "text": "misc-throw-by-value-catch-by-reference clang-tidy check" - }, - "fullDescription": { - "text": "misc-throw-by-value-catch-by-reference clang-tidy check · Learn more", - "markdown": "misc-throw-by-value-catch-by-reference clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/throw-by-value-catch-by-reference.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyMiscThrowByValueCatchByReference", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyModernizeUseEqualsDelete", - "shortDescription": { - "text": "modernize-use-equals-delete clang-tidy check" - }, - "fullDescription": { - "text": "modernize-use-equals-delete clang-tidy check · Learn more", - "markdown": "modernize-use-equals-delete clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-equals-delete.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyModernizeUseEqualsDelete", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticBuiltinMacroRedefined", - "shortDescription": { - "text": "builtin-macro-redefined clang diagnostic" - }, - "fullDescription": { - "text": "-Wbuiltin-macro-redefined clang diagnostic · Learn more", - "markdown": "-Wbuiltin-macro-redefined clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wbuiltin-macro-redefined)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticBuiltinMacroRedefined", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithSingleAssignment.False", - "shortDescription": { - "text": "Replace with single assignment" - }, - "fullDescription": { - "text": "$T$ $x$ = false; if($bool1$) $x$ = true; Learn more...", - "markdown": "$T$ $x$ = false; if($bool1$) $x$ = true; [Learn more...](https://www.jetbrains.com/help/rider/ReplaceWithSingleAssignment.False.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithSingleAssignment.False", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MissingAltAttributeInImgTag", - "shortDescription": { - "text": "Important tags or attributes missing (<img> should specify alternative text)" - }, - "fullDescription": { - "text": "<([)img(]) $attrs$>", - "markdown": "\\<(\\[)img(\\]) $attrs$\\>" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "MissingAltAttributeInImgTag", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HTML/Common Practices and Code Improvements", - "index": 74, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerUnixDynamicMemoryModeling", - "shortDescription": { - "text": "unix.DynamicMemoryModeling clang static analyzer check" - }, - "fullDescription": { - "text": "unix.DynamicMemoryModeling clang static analyzer check · Learn more", - "markdown": "unix.DynamicMemoryModeling clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerUnixDynamicMemoryModeling", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "InheritdocConsiderUsage", - "shortDescription": { - "text": "Use <inheritdoc /> on root level to inherit documentation from base candidate" - }, - "fullDescription": { - "text": "Use on root level to inherit documentation from base candidate", - "markdown": "Use on root level to inherit documentation from base candidate" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "InheritdocConsiderUsage", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnusedParameterInPartialMethod", - "shortDescription": { - "text": "Unused parameter in partial method" - }, - "fullDescription": { - "text": "Parameter of partial method is never used Learn more...", - "markdown": "Parameter of partial method is never used [Learn more...](https://www.jetbrains.com/help/rider/UnusedParameterInPartialMethod.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "UnusedParameterInPartialMethod", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyFuchsiaStaticallyConstructedObjects", - "shortDescription": { - "text": "fuchsia-statically-constructed-objects clang-tidy check" - }, - "fullDescription": { - "text": "fuchsia-statically-constructed-objects clang-tidy check · Learn more", - "markdown": "fuchsia-statically-constructed-objects clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/fuchsia/statically-constructed-objects.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyFuchsiaStaticallyConstructedObjects", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS9073", - "shortDescription": { - "text": "The 'scoped' modifier of a parameter doesn't match target delegate." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS9073", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS9074", - "shortDescription": { - "text": "The 'scoped' modifier of parameter doesn't match overridden or implemented member." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS9074", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "BuiltInTypeReferenceStyle", - "shortDescription": { - "text": "Replace built-in type reference with a CLR type name or a keyword" - }, - "fullDescription": { - "text": "CLR type names and corresponding C# keyword are interchangeable and do not affect code semantics Learn more...", - "markdown": "CLR type names and corresponding C# keyword are interchangeable and do not affect code semantics [Learn more...](https://www.jetbrains.com/help/rider/BuiltInTypeReferenceStyle.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "BuiltInTypeReferenceStyle", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Syntax Style", - "index": 21, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.Entities.NotUpdatedComponentLookup", - "shortDescription": { - "text": "Field of 'ComponentLookup' type must be updated before being used." - }, - "fullDescription": { - "text": "Field of 'ComponentLookup' type must be updated before being used.", - "markdown": "Field of 'ComponentLookup' type must be updated before being used." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.Entities.NotUpdatedComponentLookup", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PropertyFieldKeywordIsNeverAssigned", - "shortDescription": { - "text": "Backing field is used but never assigned" - }, - "fullDescription": { - "text": "Backing field of property with 'field' keyword is used but never assigned", - "markdown": "Backing field of property with 'field' keyword is used but never assigned" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "PropertyFieldKeywordIsNeverAssigned", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticEagerLoadCxxNamedModules", - "shortDescription": { - "text": "eager-load-cxx-named-modules clang diagnostic" - }, - "fullDescription": { - "text": "-Weager-load-cxx-named-modules clang diagnostic · Learn more", - "markdown": "-Weager-load-cxx-named-modules clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#weager-load-cxx-named-modules)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticEagerLoadCxxNamedModules", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCppcoreguidelinesAvoidConstOrRefDataMembers", - "shortDescription": { - "text": "cppcoreguidelines-avoid-const-or-ref-data-members clang-tidy check" - }, - "fullDescription": { - "text": "cppcoreguidelines-avoid-const-or-ref-data-members clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-avoid-const-or-ref-data-members clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/avoid-const-or-ref-data-members.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyCppcoreguidelinesAvoidConstOrRefDataMembers", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "StructMemberCanBeMadeReadOnly", - "shortDescription": { - "text": "Struct member can be made readonly" - }, - "fullDescription": { - "text": "Struct member does not change the containing struct through 'this' and can be made readonly", - "markdown": "Struct member does not change the containing struct through 'this' and can be made readonly" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "StructMemberCanBeMadeReadOnly", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyModernizeUseNoexcept", - "shortDescription": { - "text": "modernize-use-noexcept clang-tidy check" - }, - "fullDescription": { - "text": "modernize-use-noexcept clang-tidy check · Learn more", - "markdown": "modernize-use-noexcept clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-noexcept.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyModernizeUseNoexcept", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AccessToDisposedClosure", - "shortDescription": { - "text": "Access to disposed captured variable" - }, - "fullDescription": { - "text": "Access to captured variable from anonymous method when the variable is disposed Learn more...", - "markdown": "Access to captured variable from anonymous method when the variable is disposed [Learn more...](https://www.jetbrains.com/help/rider/AccessToDisposedClosure.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "AccessToDisposedClosure", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerOsxCocoaAtSync", - "shortDescription": { - "text": "osx.cocoa.AtSync clang static analyzer check" - }, - "fullDescription": { - "text": "osx.cocoa.AtSync clang static analyzer check · Learn more", - "markdown": "osx.cocoa.AtSync clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerOsxCocoaAtSync", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS9080", - "shortDescription": { - "text": "Use of a variable in this context may expose referenced variables outside of their declaration scope." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS9080", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticSpirCompat", - "shortDescription": { - "text": "spir-compat clang diagnostic" - }, - "fullDescription": { - "text": "-Wspir-compat clang diagnostic · Learn more", - "markdown": "-Wspir-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wspir-compat)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticSpirCompat", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS9081", - "shortDescription": { - "text": "A result of a stackalloc expression in this context may be exposed outside of the containing method." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS9081", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMathematicalNotationIdentifierExtension", - "shortDescription": { - "text": "mathematical-notation-identifier-extension clang diagnostic" - }, - "fullDescription": { - "text": "-Wmathematical-notation-identifier-extension clang diagnostic · Learn more", - "markdown": "-Wmathematical-notation-identifier-extension clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmathematical-notation-identifier-extension)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMathematicalNotationIdentifierExtension", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS9082", - "shortDescription": { - "text": "A local variable is returned by reference but was initialized to a value that cannot be returned by reference." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS9082", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticSlhAsmGoto", - "shortDescription": { - "text": "slh-asm-goto clang diagnostic" - }, - "fullDescription": { - "text": "-Wslh-asm-goto clang diagnostic · Learn more", - "markdown": "-Wslh-asm-goto clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wslh-asm-goto)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticSlhAsmGoto", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppMemberInitializersOrder", - "shortDescription": { - "text": "Use preferred initialization style (order of member initializers does not match the initialization order)" - }, - "fullDescription": { - "text": "Order of member initializers does not match the initialization order Learn more...", - "markdown": "Order of member initializers does not match the initialization order [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rc-order)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppMemberInitializersOrder", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Syntax Style", - "index": 91, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EntityFramework.NPlusOne.IncompleteDataUsage", - "shortDescription": { - "text": "Usage of navigational property can return incomplete data" - }, - "fullDescription": { - "text": "Highlights usages of navigational properties that can return incomplete data Learn more...", - "markdown": "Highlights usages of navigational properties that can return incomplete data [Learn more...](https://www.jetbrains.com/help/rider/EntityFramework.NPlusOne.IncompleteDataUsage.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "EntityFramework.NPlusOne.IncompleteDataUsage", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Entity Framework", - "index": 37, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppFunctionIsNotImplemented", - "shortDescription": { - "text": "Function is not implemented" - }, - "fullDescription": { - "text": "A function is not implemented", - "markdown": "A function is not implemented" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppFunctionIsNotImplemented", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticIncompleteFrameworkModuleDeclaration", - "shortDescription": { - "text": "incomplete-framework-module-declaration clang diagnostic" - }, - "fullDescription": { - "text": "-Wincomplete-framework-module-declaration clang diagnostic · Learn more", - "markdown": "-Wincomplete-framework-module-declaration clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wincomplete-framework-module-declaration)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticIncompleteFrameworkModuleDeclaration", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceConditionalExpressionWithNullCoalescing", - "shortDescription": { - "text": "Conditional expression can be rewritten as null-coalescing" - }, - "fullDescription": { - "text": "Conditonal expression with a null check ('expr is {} x') or a type pattern ('expr is T x') can be rewritten as a null-coalescing ('??') expression Learn more...", - "markdown": "Conditonal expression with a null check ('expr is {} x') or a type pattern ('expr is T x') can be rewritten as a null-coalescing ('??') expression [Learn more...](https://www.jetbrains.com/help/rider/ReplaceConditionalExpressionWithNullCoalescing.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceConditionalExpressionWithNullCoalescing", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyPerformanceNoexceptMoveConstructor", - "shortDescription": { - "text": "performance-noexcept-move-constructor clang-tidy check" - }, - "fullDescription": { - "text": "performance-noexcept-move-constructor clang-tidy check · Learn more", - "markdown": "performance-noexcept-move-constructor clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance/noexcept-move-constructor.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyPerformanceNoexceptMoveConstructor", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantEmptyCaseElse", - "shortDescription": { - "text": "Redundant empty 'Case Else' statement" - }, - "fullDescription": { - "text": "Redundant empty 'Case Else' statement", - "markdown": "Redundant empty 'Case Else' statement" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantEmptyCaseElse", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Redundancies in Code", - "index": 96, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneExceptionEscape", - "shortDescription": { - "text": "bugprone-exception-escape clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-exception-escape clang-tidy check · Learn more", - "markdown": "bugprone-exception-escape clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/exception-escape.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyBugproneExceptionEscape", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnqualifiedStdCastCall", - "shortDescription": { - "text": "unqualified-std-cast-call clang diagnostic" - }, - "fullDescription": { - "text": "-Wunqualified-std-cast-call clang diagnostic · Learn more", - "markdown": "-Wunqualified-std-cast-call clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunqualified-std-cast-call)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnqualifiedStdCastCall", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CapturedPrimaryConstructorParameterIsMutable", - "shortDescription": { - "text": "Captured primary constructor parameter is mutable" - }, - "fullDescription": { - "text": "Primary constructor parameter is captured and mutated by instance member(s), consider using explicit non-readonly field instead Learn more...", - "markdown": "Primary constructor parameter is captured and mutated by instance member(s), consider using explicit non-readonly field instead [Learn more...](https://www.jetbrains.com/help/rider/CapturedPrimaryConstructorParameterIsMutable.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CapturedPrimaryConstructorParameterIsMutable", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerOptinMpiMPIChecker", - "shortDescription": { - "text": "optin.mpi.MPI-Checker clang static analyzer check" - }, - "fullDescription": { - "text": "optin.mpi.MPI-Checker clang static analyzer check · Learn more", - "markdown": "optin.mpi.MPI-Checker clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerOptinMpiMPIChecker", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticVoidPointerToEnumCast", - "shortDescription": { - "text": "void-pointer-to-enum-cast clang diagnostic" - }, - "fullDescription": { - "text": "-Wvoid-pointer-to-enum-cast clang diagnostic · Learn more", - "markdown": "-Wvoid-pointer-to-enum-cast clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wvoid-pointer-to-enum-cast)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticVoidPointerToEnumCast", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyPerformanceInefficientVectorOperation", - "shortDescription": { - "text": "performance-inefficient-vector-operation clang-tidy check" - }, - "fullDescription": { - "text": "performance-inefficient-vector-operation clang-tidy check · Learn more", - "markdown": "performance-inefficient-vector-operation clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance/inefficient-vector-operation.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyPerformanceInefficientVectorOperation", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCastCallingConvention", - "shortDescription": { - "text": "cast-calling-convention clang diagnostic" - }, - "fullDescription": { - "text": "-Wcast-calling-convention clang diagnostic · Learn more", - "markdown": "-Wcast-calling-convention clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcast-calling-convention)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCastCallingConvention", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.RedundantStyledValue", - "shortDescription": { - "text": "Property value is equal to style-provided" - }, - "fullDescription": { - "text": "Property value is equal to the value provided by explicit style and can be removed", - "markdown": "Property value is equal to the value provided by explicit style and can be removed" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Xaml.RedundantStyledValue", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Redundancies in Code", - "index": 77, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantCheckBeforeAssignment", - "shortDescription": { - "text": "Redundant condition check before assignments" - }, - "fullDescription": { - "text": "Check for inequality before assignment is redundant \r\n if (x != value)\r\n x = value;", - "markdown": "Check for inequality before assignment is redundant\n\n```\n\r\n if (x != value)\r\n x = value;\r\n```" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantCheckBeforeAssignment", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyLlvmPreferIsaOrDynCastInConditionals", - "shortDescription": { - "text": "llvm-prefer-isa-or-dyn-cast-in-conditionals clang-tidy check" - }, - "fullDescription": { - "text": "llvm-prefer-isa-or-dyn-cast-in-conditionals clang-tidy check · Learn more", - "markdown": "llvm-prefer-isa-or-dyn-cast-in-conditionals clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/llvm/prefer-isa-or-dyn-cast-in-conditionals.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyLlvmPreferIsaOrDynCastInConditionals", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerNullabilityNullReturnedFromNonnull", - "shortDescription": { - "text": "nullability.NullReturnedFromNonnull clang static analyzer check" - }, - "fullDescription": { - "text": "nullability.NullReturnedFromNonnull clang static analyzer check · Learn more", - "markdown": "nullability.NullReturnedFromNonnull clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerNullabilityNullReturnedFromNonnull", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppRedundantParentheses", - "shortDescription": { - "text": "Redundant parentheses" - }, - "fullDescription": { - "text": "Parentheses do not change the order of operations and can be deleted", - "markdown": "Parentheses do not change the order of operations and can be deleted" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppRedundantParentheses", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Redundancies in Code", - "index": 34, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS9042", - "shortDescription": { - "text": "Obsolete members should not be required." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS9042", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerNullabilityNullabilityBase", - "shortDescription": { - "text": "nullability.NullabilityBase clang static analyzer check" - }, - "fullDescription": { - "text": "nullability.NullabilityBase clang static analyzer check · Learn more", - "markdown": "nullability.NullabilityBase clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerNullabilityNullabilityBase", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerValistValistBase", - "shortDescription": { - "text": "valist.ValistBase clang static analyzer check" - }, - "fullDescription": { - "text": "valist.ValistBase clang static analyzer check · Learn more", - "markdown": "valist.ValistBase clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerValistValistBase", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RemoveRedundantOrStatement.False", - "shortDescription": { - "text": "Remove redundant statement" - }, - "fullDescription": { - "text": "$bool1$ |= false;", - "markdown": "$bool1$ \\|= false;" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RemoveRedundantOrStatement.False", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityRedundantFunctionPtrDereference", - "shortDescription": { - "text": "readability-redundant-function-ptr-dereference clang-tidy check" - }, - "fullDescription": { - "text": "readability-redundant-function-ptr-dereference clang-tidy check · Learn more", - "markdown": "readability-redundant-function-ptr-dereference clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/redundant-function-ptr-dereference.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityRedundantFunctionPtrDereference", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseMethodAny.0", - "shortDescription": { - "text": "Use method Any()" - }, - "fullDescription": { - "text": "$seq$.Count() > 0 Learn more...", - "markdown": "$seq$.Count() \\> 0 [Learn more...](https://www.jetbrains.com/help/rider/UseMethodAny.0.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UseMethodAny.0", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseMethodAny.1", - "shortDescription": { - "text": "Use method Any()" - }, - "fullDescription": { - "text": "$seq$.Count() >= 1", - "markdown": "$seq$.Count() \\>= 1" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UseMethodAny.1", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppDeclarationHidesLocal", - "shortDescription": { - "text": "Hiding local declaration" - }, - "fullDescription": { - "text": "A local declaration hides another local declaration Learn more...", - "markdown": "A local declaration hides another local declaration [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Res-reuse)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppDeclarationHidesLocal", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseMethodAny.4", - "shortDescription": { - "text": "Use method Any()" - }, - "fullDescription": { - "text": "$seq$.Count() < 1", - "markdown": "$seq$.Count() \\< 1" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UseMethodAny.4", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseMethodAny.2", - "shortDescription": { - "text": "Use method Any()" - }, - "fullDescription": { - "text": "$seq$.Count() == 0", - "markdown": "$seq$.Count() == 0" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UseMethodAny.2", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticTrigraphs", - "shortDescription": { - "text": "trigraphs clang diagnostic" - }, - "fullDescription": { - "text": "-Wtrigraphs clang diagnostic · Learn more", - "markdown": "-Wtrigraphs clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wtrigraphs)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticTrigraphs", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseMethodAny.3", - "shortDescription": { - "text": "Use method Any()" - }, - "fullDescription": { - "text": "$seq$.Count() <= 0", - "markdown": "$seq$.Count() \\<= 0" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UseMethodAny.3", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUndefinedFuncTemplate", - "shortDescription": { - "text": "undefined-func-template clang diagnostic" - }, - "fullDescription": { - "text": "-Wundefined-func-template clang diagnostic · Learn more", - "markdown": "-Wundefined-func-template clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wundefined-func-template)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUndefinedFuncTemplate", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "FormatStringProblem", - "shortDescription": { - "text": "String formatting method problems" - }, - "fullDescription": { - "text": "Format string syntax errors (unescaped braces, invalid indices/alignments, unused arguments etc.) and other formatting method invocation problems Learn more...", - "markdown": "Format string syntax errors (unescaped braces, invalid indices/alignments, unused arguments etc.) and other formatting method invocation problems [Learn more...](https://www.jetbrains.com/help/rider/FormatStringProblem.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "FormatStringProblem", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticFrameLargerThan", - "shortDescription": { - "text": "frame-larger-than clang diagnostic" - }, - "fullDescription": { - "text": "-Wframe-larger-than clang diagnostic · Learn more", - "markdown": "-Wframe-larger-than clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wframe-larger-than)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticFrameLargerThan", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBReplaceWithSingleCallToCount", - "shortDescription": { - "text": "Replace with single call to Count(..)" - }, - "fullDescription": { - "text": "$seq$.Where(Function ($x$) $expr$).Count()", - "markdown": "$seq$.Where(Function ($x$) $expr$).Count()" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBReplaceWithSingleCallToCount", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticAndroidUnversionedFallback", - "shortDescription": { - "text": "android-unversioned-fallback clang diagnostic" - }, - "fullDescription": { - "text": "-Wandroid-unversioned-fallback clang diagnostic · Learn more", - "markdown": "-Wandroid-unversioned-fallback clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wandroid-unversioned-fallback)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticAndroidUnversionedFallback", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit.AutoFixture.IncorrectArgumentType", - "shortDescription": { - "text": "NUnit.AutoFixture. Incompatible argument type or incorrect argument value." - }, - "fullDescription": { - "text": "NUnit.AutoFixture. Argument value in the [InlineAutoData] attribute is incorrect or is not compatible with the test method parameter type.", - "markdown": "NUnit.AutoFixture. Argument value in the \\[InlineAutoData\\] attribute is incorrect or is not compatible with the test method parameter type." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NUnit.AutoFixture.IncorrectArgumentType", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/NUnit", - "index": 26, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneComparePointerToMemberVirtualFunction", - "shortDescription": { - "text": "bugprone-compare-pointer-to-member-virtual-function clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-compare-pointer-to-member-virtual-function clang-tidy check · Learn more", - "markdown": "bugprone-compare-pointer-to-member-virtual-function clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/compare-pointer-to-member-virtual-function.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneComparePointerToMemberVirtualFunction", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CheckForReferenceEqualityInstead.1", - "shortDescription": { - "text": "Check for reference equality instead" - }, - "fullDescription": { - "text": "$type$.Equals($type2$)", - "markdown": "$type$.Equals($type2$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CheckForReferenceEqualityInstead.1", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyModernizeAvoidBind", - "shortDescription": { - "text": "modernize-avoid-bind clang-tidy check" - }, - "fullDescription": { - "text": "modernize-avoid-bind clang-tidy check · Learn more", - "markdown": "modernize-avoid-bind clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/avoid-bind.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyModernizeAvoidBind", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CheckForReferenceEqualityInstead.3", - "shortDescription": { - "text": "Check for reference equality instead" - }, - "fullDescription": { - "text": "!$type$.Equals($type2$)", - "markdown": "!$type$.Equals($type2$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CheckForReferenceEqualityInstead.3", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CheckForReferenceEqualityInstead.2", - "shortDescription": { - "text": "Check for reference equality instead" - }, - "fullDescription": { - "text": "Equals($type$,$type2$)", - "markdown": "Equals($type$,$type2$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CheckForReferenceEqualityInstead.2", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CheckForReferenceEqualityInstead.4", - "shortDescription": { - "text": "Check for reference equality instead" - }, - "fullDescription": { - "text": "!Equals($type$,$type2$)", - "markdown": "!Equals($type$,$type2$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CheckForReferenceEqualityInstead.4", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseRawString", - "shortDescription": { - "text": "Use raw string" - }, - "fullDescription": { - "text": "Use raw string to eliminate escape sequences and keep normal indentation", - "markdown": "Use raw string to eliminate escape sequences and keep normal indentation" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "UseRawString", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityStaticAccessedThroughInstance", - "shortDescription": { - "text": "readability-static-accessed-through-instance clang-tidy check" - }, - "fullDescription": { - "text": "readability-static-accessed-through-instance clang-tidy check · Learn more", - "markdown": "readability-static-accessed-through-instance clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/static-accessed-through-instance.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityStaticAccessedThroughInstance", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticFunctionEffects", - "shortDescription": { - "text": "function-effects clang diagnostic" - }, - "fullDescription": { - "text": "-Wfunction-effects clang diagnostic · Learn more", - "markdown": "-Wfunction-effects clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wfunction-effects)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticFunctionEffects", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMicrosoftEndOfFile", - "shortDescription": { - "text": "microsoft-end-of-file clang diagnostic" - }, - "fullDescription": { - "text": "-Wmicrosoft-end-of-file clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-end-of-file clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-end-of-file)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftEndOfFile", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseNameofExpression", - "shortDescription": { - "text": "Use 'nameof' expression to reference name" - }, - "fullDescription": { - "text": "Replace string literal with statically typed 'nameof' expression Learn more...", - "markdown": "Replace string literal with statically typed 'nameof' expression [Learn more...](https://www.jetbrains.com/help/rider/UseNameofExpression.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UseNameofExpression", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticOpenmpLoopForm", - "shortDescription": { - "text": "openmp-loop-form clang diagnostic" - }, - "fullDescription": { - "text": "-Wopenmp-loop-form clang diagnostic · Learn more", - "markdown": "-Wopenmp-loop-form clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wopenmp-loop-form)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticOpenmpLoopForm", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerCplusplusNewDelete", - "shortDescription": { - "text": "cplusplus.NewDelete clang static analyzer check" - }, - "fullDescription": { - "text": "cplusplus.NewDelete clang static analyzer check · Learn more", - "markdown": "cplusplus.NewDelete clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerCplusplusNewDelete", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnusedMember.Local", - "shortDescription": { - "text": "Type member is never used (private accessibility)" - }, - "fullDescription": { - "text": "Type member is never used Learn more...", - "markdown": "Type member is never used [Learn more...](https://www.jetbrains.com/help/rider/UnusedMember.Local.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "UnusedMember.Local", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppMismatchedClassTags", - "shortDescription": { - "text": "Mismatched class tags" - }, - "fullDescription": { - "text": "Tags of the declared class do not match previous declarations", - "markdown": "Tags of the declared class do not match previous declarations" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppMismatchedClassTags", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCertMem57Cpp", - "shortDescription": { - "text": "cert-mem57-cpp clang-tidy check" - }, - "fullDescription": { - "text": "cert-mem57-cpp clang-tidy check · Learn more", - "markdown": "cert-mem57-cpp clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/mem57-cpp.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyCertMem57Cpp", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS9094", - "shortDescription": { - "text": "This returns a parameter by reference through a ref parameter; but it can only safely be returned in a return statement." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/ref-modifiers-errors#ref-safety-violations)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS9094", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS9095", - "shortDescription": { - "text": "This returns by reference a member of parameter through a ref parameter; but it can only safely be returned in a return statement." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/ref-modifiers-errors#ref-safety-violations)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS9095", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EnumerableSumInExplicitUncheckedContext", - "shortDescription": { - "text": "'Enumerable.Sum' invocation in explicit unchecked context" - }, - "fullDescription": { - "text": "'Enumerable.Sum' invocation in explicit unchecked context", - "markdown": "'Enumerable.Sum' invocation in explicit unchecked context" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "EnumerableSumInExplicitUncheckedContext", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS9097", - "shortDescription": { - "text": "This ref-assigns a value that has a wider value escape scope than the target allowing assignment through the target of values with narrower escapes scopes." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/ref-modifiers-errors#ref-safety-violations)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS9097", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS9099", - "shortDescription": { - "text": "The default parameter value does not match in the target delegate type." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/lambda-expression-errors#lambda-expression-delegate-type)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS9099", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPrivateModule", - "shortDescription": { - "text": "private-module clang diagnostic" - }, - "fullDescription": { - "text": "-Wprivate-module clang diagnostic · Learn more", - "markdown": "-Wprivate-module clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wprivate-module)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPrivateModule", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MathClampMinGreaterThanMax", - "shortDescription": { - "text": "Inconsistent arguments passed to 'Math.Clamp()' method" - }, - "fullDescription": { - "text": "Argument 'min' is always greater than argument 'max'", - "markdown": "Argument 'min' is always greater than argument 'max'" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "MathClampMinGreaterThanMax", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8618,CS9264", - "shortDescription": { - "text": "Non-nullable member is uninitialized." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8618,CS9264", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.IncorrectMonoBehaviourInstantiation", - "shortDescription": { - "text": "'MonoBehaviour' instances must be instantiated with 'GameObject.AddComponent<T>()' instead of 'new'" - }, - "fullDescription": { - "text": "Using 'new' to instantiate a class derived from 'MonoBehaviour' will not attach it to a 'GameObject' instance, and Unity will not call any event functions. Create a new instance using 'GameObject.AddComponent()'. Learn more...", - "markdown": "Using 'new' to instantiate a class derived from 'MonoBehaviour' will not attach it to a 'GameObject' instance, and Unity will not call any event functions. Create a new instance using 'GameObject.AddComponent()'. [Learn more...](https://github.com/JetBrains/resharper-unity/wiki/MonoBehaviors-must-be-instantiated-with-GameObject.AddComponent-instead-of-new)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.IncorrectMonoBehaviourInstantiation", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS9083", - "shortDescription": { - "text": "A member of a variable is returned by reference but was initialized to a value that cannot be returned by reference" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS9083", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS9084", - "shortDescription": { - "text": "Struct member returns 'this' or other instance members by reference." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS9084", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MergeIntoNegatedPattern", - "shortDescription": { - "text": "Merge negated null/pattern checks into complex pattern" - }, - "fullDescription": { - "text": "Merge sequential negated null/pattern checks into single recursive/logical pattern check", - "markdown": "Merge sequential negated null/pattern checks into single recursive/logical pattern check" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "MergeIntoNegatedPattern", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS9085", - "shortDescription": { - "text": "This ref-assigns an expression to a variable with a narrower escape scope." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/ref-modifiers-errors#ref-safety-violations)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS9085", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS9086", - "shortDescription": { - "text": "The branches of the ref conditional operator refer to variables with incompatible declaration scopes." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/ref-modifiers-errors#ref-safety-violations)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS9086", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS9087", - "shortDescription": { - "text": "This returns a parameter by reference but it is not a ref parameter." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/ref-modifiers-errors#ref-safety-violations)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS9087", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityRedundantStringCstr", - "shortDescription": { - "text": "readability-redundant-string-cstr clang-tidy check" - }, - "fullDescription": { - "text": "readability-redundant-string-cstr clang-tidy check · Learn more", - "markdown": "readability-redundant-string-cstr clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/redundant-string-cstr.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityRedundantStringCstr", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS9088", - "shortDescription": { - "text": "This returns a parameter by reference but it is scoped to the current method." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS9088", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS9089", - "shortDescription": { - "text": "This returns by reference a member of parameter that is not a ref or out parameter." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/ref-modifiers-errors#ref-safety-violations)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS9089", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticLocalTypeTemplateArgs", - "shortDescription": { - "text": "local-type-template-args clang diagnostic" - }, - "fullDescription": { - "text": "-Wlocal-type-template-args clang diagnostic · Learn more", - "markdown": "-Wlocal-type-template-args clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wlocal-type-template-args)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticLocalTypeTemplateArgs", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "LocalFunctionCanBeMadeStatic", - "shortDescription": { - "text": "Local function can be made static" - }, - "fullDescription": { - "text": "A local function does not use 'this' object or variables from the outer scope and can be made static Learn more...", - "markdown": "A local function does not use 'this' object or variables from the outer scope and can be made static [Learn more...](https://www.jetbrains.com/help/rider/LocalFunctionCanBeMadeStatic.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "LocalFunctionCanBeMadeStatic", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnassignedField.Global", - "shortDescription": { - "text": "Unassigned field (non-private accessibility)" - }, - "fullDescription": { - "text": "Field is never assigned Learn more...", - "markdown": "Field is never assigned [Learn more...](https://www.jetbrains.com/help/rider/UnassignedField.Global.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UnassignedField.Global", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RouteTemplates.ConstraintArgumentCannotBeConverted", - "shortDescription": { - "text": "Route parameter constraint argument cannot be converted to target type" - }, - "fullDescription": { - "text": "Route parameter constraint argument cannot be converted to target type", - "markdown": "Route parameter constraint argument cannot be converted to target type" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RouteTemplates.ConstraintArgumentCannotBeConverted", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "ASP.NET route templates/Code Notification", - "index": 48, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBRemoveToList.2", - "shortDescription": { - "text": "Remove ToList()" - }, - "fullDescription": { - "text": "$seq$.ToList().Count", - "markdown": "$seq$.ToList().Count" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBRemoveToList.2", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerUnixCstringNullArg", - "shortDescription": { - "text": "unix.cstring.NullArg clang static analyzer check" - }, - "fullDescription": { - "text": "unix.cstring.NullArg clang static analyzer check · Learn more", - "markdown": "unix.cstring.NullArg clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerUnixCstringNullArg", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticGnuAlignofExpression", - "shortDescription": { - "text": "gnu-alignof-expression clang diagnostic" - }, - "fullDescription": { - "text": "-Wgnu-alignof-expression clang diagnostic · Learn more", - "markdown": "-Wgnu-alignof-expression clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-alignof-expression)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticGnuAlignofExpression", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBRemoveToList.1", - "shortDescription": { - "text": "Remove ToList()" - }, - "fullDescription": { - "text": "$seq$.ToList().ToArray()", - "markdown": "$seq$.ToList().ToArray()" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBRemoveToList.1", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCoroNonAlignedAllocationFunction", - "shortDescription": { - "text": "coro-non-aligned-allocation-function clang diagnostic" - }, - "fullDescription": { - "text": "-Wcoro-non-aligned-allocation-function clang diagnostic · Learn more", - "markdown": "-Wcoro-non-aligned-allocation-function clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcoro-non-aligned-allocation-function)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCoroNonAlignedAllocationFunction", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCppcoreguidelinesPreferMemberInitializer", - "shortDescription": { - "text": "cppcoreguidelines-prefer-member-initializer clang-tidy check" - }, - "fullDescription": { - "text": "cppcoreguidelines-prefer-member-initializer clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-prefer-member-initializer clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/prefer-member-initializer.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCppcoreguidelinesPreferMemberInitializer", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMicrosoftCast", - "shortDescription": { - "text": "microsoft-cast clang diagnostic" - }, - "fullDescription": { - "text": "-Wmicrosoft-cast clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-cast clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-cast)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftCast", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneMacroParentheses", - "shortDescription": { - "text": "bugprone-macro-parentheses clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-macro-parentheses clang-tidy check · Learn more", - "markdown": "bugprone-macro-parentheses clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/macro-parentheses.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneMacroParentheses", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS9090", - "shortDescription": { - "text": "This returns by reference a member of parameter that is scoped to the current method." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS9090", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS9091", - "shortDescription": { - "text": "This returns local by reference but it is not a ref local." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/ref-modifiers-errors#ref-safety-violations)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS9091", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS9092", - "shortDescription": { - "text": "This returns a member of local by reference but it is not a ref local." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/ref-modifiers-errors#ref-safety-violations)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS9092", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS9093", - "shortDescription": { - "text": "This ref-assigns a value that can only escape the current method through a return statement." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/ref-modifiers-errors#ref-safety-violations)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS9093", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticHipOmpTargetDirectives", - "shortDescription": { - "text": "hip-omp-target-directives clang diagnostic" - }, - "fullDescription": { - "text": "-Whip-omp-target-directives clang diagnostic · Learn more", - "markdown": "-Whip-omp-target-directives clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#whip-omp-target-directives)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticHipOmpTargetDirectives", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithOfType.SingleOrDefault.2", - "shortDescription": { - "text": "Replace with OfType<T>().SingleOrDefault() (replace with OfType<T>().SingleOrDefault(..))" - }, - "fullDescription": { - "text": "$seq$.Select($x$ => $x$ as $T$).SingleOrDefault($y$ => $y$ != null && $expr$)", - "markdown": "$seq$.Select($x$ =\\> $x$ as $T$).SingleOrDefault($y$ =\\> $y$ != null \\&\\& $expr$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithOfType.SingleOrDefault.2", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithOfType.SingleOrDefault.1", - "shortDescription": { - "text": "Replace with OfType<T>().SingleOrDefault()" - }, - "fullDescription": { - "text": "$seq$.Select($x$ => $x$ as $T$).SingleOrDefault($y$ => $y$ != null)", - "markdown": "$seq$.Select($x$ =\\> $x$ as $T$).SingleOrDefault($y$ =\\> $y$ != null)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithOfType.SingleOrDefault.1", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticAtomicMemoryOrdering", - "shortDescription": { - "text": "atomic-memory-ordering clang diagnostic" - }, - "fullDescription": { - "text": "-Watomic-memory-ordering clang diagnostic · Learn more", - "markdown": "-Watomic-memory-ordering clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#watomic-memory-ordering)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticAtomicMemoryOrdering", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticNsreturnsMismatch", - "shortDescription": { - "text": "nsreturns-mismatch clang diagnostic" - }, - "fullDescription": { - "text": "-Wnsreturns-mismatch clang diagnostic · Learn more", - "markdown": "-Wnsreturns-mismatch clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnsreturns-mismatch)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticNsreturnsMismatch", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDeprecated", - "shortDescription": { - "text": "deprecated clang diagnostic" - }, - "fullDescription": { - "text": "-Wdeprecated clang diagnostic · Learn more", - "markdown": "-Wdeprecated clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDeprecated", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantBlankLines", - "shortDescription": { - "text": "Incorrect blank lines (blank lines are redundant elsewhere)" - }, - "fullDescription": { - "text": "Blank lines are redundant elsewhere Learn more...", - "markdown": "Blank lines are redundant elsewhere [Learn more...](https://www.jetbrains.com/help/rider/RedundantBlankLines.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RedundantBlankLines", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Formatting", - "index": 24, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMicrosoftGoto", - "shortDescription": { - "text": "microsoft-goto clang diagnostic" - }, - "fullDescription": { - "text": "-Wmicrosoft-goto clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-goto clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-goto)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftGoto", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticComplexComponentInit", - "shortDescription": { - "text": "complex-component-init clang diagnostic" - }, - "fullDescription": { - "text": "-Wcomplex-component-init clang diagnostic · Learn more", - "markdown": "-Wcomplex-component-init clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcomplex-component-init)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticComplexComponentInit", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ArrangeTrailingCommaInSinglelineLists", - "shortDescription": { - "text": "Use preferred style for trailing comma when the last element is not followed by a new line" - }, - "fullDescription": { - "text": "Add or remove trailing comma when the last element is not followed by a new line according to code style settings Learn more...", - "markdown": "Add or remove trailing comma when the last element is not followed by a new line according to code style settings [Learn more...](https://www.jetbrains.com/help/rider/ArrangeTrailingCommaInSinglelineLists.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ArrangeTrailingCommaInSinglelineLists", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Syntax Style", - "index": 21, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS1066", - "shortDescription": { - "text": "Default value specified for parameter will have no effect because it applies to a member that is used in contexts that do not allow optional arguments" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS1066", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerOptinPerformanceGCDAntipattern", - "shortDescription": { - "text": "optin.performance.GCDAntipattern clang static analyzer check" - }, - "fullDescription": { - "text": "optin.performance.GCDAntipattern clang static analyzer check · Learn more", - "markdown": "optin.performance.GCDAntipattern clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerOptinPerformanceGCDAntipattern", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyGoogleReadabilityFunctionSize", - "shortDescription": { - "text": "google-readability-function-size clang-tidy check" - }, - "fullDescription": { - "text": "google-readability-function-size clang-tidy check · Learn more", - "markdown": "google-readability-function-size clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/google/readability-function-size.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyGoogleReadabilityFunctionSize", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticStrlcpyStrlcatSize", - "shortDescription": { - "text": "strlcpy-strlcat-size clang diagnostic" - }, - "fullDescription": { - "text": "-Wstrlcpy-strlcat-size clang diagnostic · Learn more", - "markdown": "-Wstrlcpy-strlcat-size clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wstrlcpy-strlcat-size)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticStrlcpyStrlcatSize", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBWarnings__BC400005", - "shortDescription": { - "text": "Member shadows an overriable member" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/fs06ef5d.aspx)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "VBWarnings__BC400005", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Compiler Warnings", - "index": 110, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "DuplicateResource", - "shortDescription": { - "text": "Duplicate resource name" - }, - "fullDescription": { - "text": "Resource file contains two or more items with identical names Learn more...", - "markdown": "Resource file contains two or more items with identical names [Learn more...](https://www.jetbrains.com/help/rider/DuplicateResource.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "DuplicateResource", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "ResX/Potential Code Quality Issues", - "index": 68, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyAbseilTimeComparison", - "shortDescription": { - "text": "abseil-time-comparison clang-tidy check" - }, - "fullDescription": { - "text": "abseil-time-comparison clang-tidy check · Learn more", - "markdown": "abseil-time-comparison clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/time-comparison.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyAbseilTimeComparison", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerOsxCocoaNonNilReturnValue", - "shortDescription": { - "text": "osx.cocoa.NonNilReturnValue clang static analyzer check" - }, - "fullDescription": { - "text": "osx.cocoa.NonNilReturnValue clang static analyzer check · Learn more", - "markdown": "osx.cocoa.NonNilReturnValue clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerOsxCocoaNonNilReturnValue", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpHints", - "shortDescription": { - "text": "C# Language Hints" - }, - "fullDescription": { - "text": "C# Language Hints", - "markdown": "C# Language Hints" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpHints", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Non configurable", - "index": 52, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticSometimesUninitialized", - "shortDescription": { - "text": "sometimes-uninitialized clang diagnostic" - }, - "fullDescription": { - "text": "-Wsometimes-uninitialized clang diagnostic · Learn more", - "markdown": "-Wsometimes-uninitialized clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wsometimes-uninitialized)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticSometimesUninitialized", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SeparateLocalFunctionsWithJumpStatement", - "shortDescription": { - "text": "Add explicit 'return' or 'continue' before local functions" - }, - "fullDescription": { - "text": "Separate local functions at the end of a block with explicit 'return' or 'continue'. This will help readers understand where a method or a loop really ends without checking whether there is any executable code left after or between local functions. Learn more...", - "markdown": "Separate local functions at the end of a block with explicit 'return' or 'continue'. This will help readers understand where a method or a loop really ends without checking whether there is any executable code left after or between local functions. [Learn more...](https://www.jetbrains.com/help/rider/SeparateLocalFunctionsWithJumpStatement.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "SeparateLocalFunctionsWithJumpStatement", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMsvcNotFound", - "shortDescription": { - "text": "msvc-not-found clang diagnostic" - }, - "fullDescription": { - "text": "-Wmsvc-not-found clang diagnostic · Learn more", - "markdown": "-Wmsvc-not-found clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmsvc-not-found)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMsvcNotFound", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EventNeverSubscribedTo.Local", - "shortDescription": { - "text": "Event is never subscribed to (private accessibility)" - }, - "fullDescription": { - "text": "Event is never subscribed to Learn more...", - "markdown": "Event is never subscribed to [Learn more...](https://www.jetbrains.com/help/rider/EventNeverSubscribedTo.Local.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "EventNeverSubscribedTo.Local", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.ExpectedScriptableObject", - "shortDescription": { - "text": "Expected a type derived from 'ScriptableObject'" - }, - "fullDescription": { - "text": "Expected a type derived from 'ScriptableObject'", - "markdown": "Expected a type derived from 'ScriptableObject'" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.ExpectedScriptableObject", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyConcurrencyMtUnsafe", - "shortDescription": { - "text": "concurrency-mt-unsafe clang-tidy check" - }, - "fullDescription": { - "text": "concurrency-mt-unsafe clang-tidy check · Learn more", - "markdown": "concurrency-mt-unsafe clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/concurrency/mt-unsafe.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyConcurrencyMtUnsafe", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NegationOfRelationalPattern", - "shortDescription": { - "text": "Simplify negated relational pattern" - }, - "fullDescription": { - "text": "Suggest to replace `x is not > 42` to ` x is <= 42`", - "markdown": "Suggest to replace \\`x is not \\> 42\\` to \\` x is \\<= 42\\`" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "NegationOfRelationalPattern", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "TryStatementsCanBeMerged", - "shortDescription": { - "text": "try-catch and try-finally statements can be merged" - }, - "fullDescription": { - "text": "try-catch and try-finally statements can be merged", - "markdown": "try-catch and try-finally statements can be merged" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "TryStatementsCanBeMerged", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1032FadeOut", - "shortDescription": { - "text": "RoslynAnalyzers Remove redundant parentheses" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1032FadeOut", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnusedTemplate", - "shortDescription": { - "text": "unused-template clang diagnostic" - }, - "fullDescription": { - "text": "-Wunused-template clang diagnostic · Learn more", - "markdown": "-Wunused-template clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunused-template)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnusedTemplate", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EmptyTitleTag", - "shortDescription": { - "text": "Important tags or attributes missing (empty <title>)" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "EmptyTitleTag", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HTML/Common Practices and Code Improvements", - "index": 74, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppRedundantEmptyStatement", - "shortDescription": { - "text": "Redundant empty statement" - }, - "fullDescription": { - "text": "Redundant empty statement", - "markdown": "Redundant empty statement" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppRedundantEmptyStatement", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Redundancies in Code", - "index": 34, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS1058", - "shortDescription": { - "text": "A previous catch clause already catches all exceptions" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/ms228623.aspx)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS1058", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyAbseilStringFindStrContains", - "shortDescription": { - "text": "abseil-string-find-str-contains clang-tidy check" - }, - "fullDescription": { - "text": "abseil-string-find-str-contains clang-tidy check · Learn more", - "markdown": "abseil-string-find-str-contains clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/string-find-str-contains.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyAbseilStringFindStrContains", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticError", - "shortDescription": { - "text": "Clang compiler error" - }, - "fullDescription": { - "text": "Clang compiler error", - "markdown": "Clang compiler error" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticError", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PossiblyMissingIndexerInitializerComma", - "shortDescription": { - "text": "Possibly missing comma before indexer initializer" - }, - "fullDescription": { - "text": "Assignment expression inside member initializer value looks suspicious. Comma is probably missing.", - "markdown": "Assignment expression inside member initializer value looks suspicious. Comma is probably missing." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "PossiblyMissingIndexerInitializerComma", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerOsxSecKeychainAPI", - "shortDescription": { - "text": "osx.SecKeychainAPI clang static analyzer check" - }, - "fullDescription": { - "text": "osx.SecKeychainAPI clang static analyzer check · Learn more", - "markdown": "osx.SecKeychainAPI clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerOsxSecKeychainAPI", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MultipleTypeMembersOnOneLine", - "shortDescription": { - "text": "Incorrect line breaks (multiple type members on one line)" - }, - "fullDescription": { - "text": "Multiple type members on one line Learn more...", - "markdown": "Multiple type members on one line [Learn more...](https://www.jetbrains.com/help/rider/MultipleTypeMembersOnOneLine.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "MultipleTypeMembersOnOneLine", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Formatting", - "index": 24, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticModulesImportNestedRedundant", - "shortDescription": { - "text": "modules-import-nested-redundant clang diagnostic" - }, - "fullDescription": { - "text": "-Wmodules-import-nested-redundant clang diagnostic · Learn more", - "markdown": "-Wmodules-import-nested-redundant clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmodules-import-nested-redundant)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticModulesImportNestedRedundant", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticAttributePackedForBitfield", - "shortDescription": { - "text": "attribute-packed-for-bitfield clang diagnostic" - }, - "fullDescription": { - "text": "-Wattribute-packed-for-bitfield clang diagnostic · Learn more", - "markdown": "-Wattribute-packed-for-bitfield clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wattribute-packed-for-bitfield)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticAttributePackedForBitfield", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "OverriddenWithEmptyValue", - "shortDescription": { - "text": "Resource overrides base resource with empty value" - }, - "fullDescription": { - "text": "Base resource contains a non-empty value while this resource is empty Learn more...", - "markdown": "Base resource contains a non-empty value while this resource is empty [Learn more...](https://www.jetbrains.com/help/rider/OverriddenWithEmptyValue.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "OverriddenWithEmptyValue", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "ResX/Potential Code Quality Issues", - "index": 68, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnusedLocalTypedef", - "shortDescription": { - "text": "unused-local-typedef clang diagnostic" - }, - "fullDescription": { - "text": "-Wunused-local-typedef clang diagnostic · Learn more", - "markdown": "-Wunused-local-typedef clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunused-local-typedef)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnusedLocalTypedef", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppBadSquareBracketsSpaces", - "shortDescription": { - "text": "Incorrect spacing (around square brackets within a statement)" - }, - "fullDescription": { - "text": "Around square brackets within a statement", - "markdown": "Around square brackets within a statement" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppBadSquareBracketsSpaces", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Formatting", - "index": 28, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.RedundantPropertyTypeQualifier", - "shortDescription": { - "text": "Redundant property type qualifier" - }, - "fullDescription": { - "text": "Property owner type qualifier is redundant and can be safely removed", - "markdown": "Property owner type qualifier is redundant and can be safely removed" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Xaml.RedundantPropertyTypeQualifier", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Redundancies in Code", - "index": 77, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NotDeclaredInParentCulture", - "shortDescription": { - "text": "Resource is not declared in base culture" - }, - "fullDescription": { - "text": "Resource is not declared in base culture Learn more...", - "markdown": "Resource is not declared in base culture [Learn more...](https://www.jetbrains.com/help/rider/NotDeclaredInParentCulture.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NotDeclaredInParentCulture", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "ResX/Potential Code Quality Issues", - "index": 68, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp11CompatReservedUserDefinedLiteral", - "shortDescription": { - "text": "c++11-compat-reserved-user-defined-literal clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++11-compat-reserved-user-defined-literal clang diagnostic · Learn more", - "markdown": "-Wc++11-compat-reserved-user-defined-literal clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-11-compat-reserved-user-defined-literal)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp11CompatReservedUserDefinedLiteral", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConvertIfStatementToSwitchStatement", - "shortDescription": { - "text": "Convert 'if' statement into 'switch'" - }, - "fullDescription": { - "text": "Convert series of 'if' statements into single 'switch' Learn more...", - "markdown": "Convert series of 'if' statements into single 'switch' [Learn more...](https://www.jetbrains.com/help/rider/ConvertIfStatementToSwitchStatement.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "ConvertIfStatementToSwitchStatement", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticProtocol", - "shortDescription": { - "text": "protocol clang diagnostic" - }, - "fullDescription": { - "text": "-Wprotocol clang diagnostic · Learn more", - "markdown": "-Wprotocol clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wprotocol)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticProtocol", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPchDateTime", - "shortDescription": { - "text": "pch-date-time clang diagnostic" - }, - "fullDescription": { - "text": "-Wpch-date-time clang diagnostic · Learn more", - "markdown": "-Wpch-date-time clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpch-date-time)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPchDateTime", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.BurstWriteStaticField", - "shortDescription": { - "text": "Writing to a static field is not supported" - }, - "fullDescription": { - "text": "Writing to a static field is not supported", - "markdown": "Writing to a static field is not supported" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.BurstWriteStaticField", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity Burst Compiler Warnings", - "index": 57, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantScopedParameterModifier", - "shortDescription": { - "text": "Redundant 'scoped' parameter modifier" - }, - "fullDescription": { - "text": "'scoped' parameter modifier is redundant because the target parameter is already implicitly 'scoped' by the language rules", - "markdown": "'scoped' parameter modifier is redundant because the target parameter is already implicitly 'scoped' by the language rules" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantScopedParameterModifier", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticRedundantConstevalIf", - "shortDescription": { - "text": "redundant-consteval-if clang diagnostic" - }, - "fullDescription": { - "text": "-Wredundant-consteval-if clang diagnostic · Learn more", - "markdown": "-Wredundant-consteval-if clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wredundant-consteval-if)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticRedundantConstevalIf", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantNullableAnnotationOnTypeConstraintHasNonNullableBaseType", - "shortDescription": { - "text": "Redundant nullable annotation on base type constraint of type parameter constrained by another non-nullable base type" - }, - "fullDescription": { - "text": "The nullable annotation on base type constraint is redundant because type parameter is constrained by another non-nullable base type", - "markdown": "The nullable annotation on base type constraint is redundant because type parameter is constrained by another non-nullable base type" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantNullableAnnotationOnTypeConstraintHasNonNullableBaseType", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticNonCTypedefForLinkage", - "shortDescription": { - "text": "non-c-typedef-for-linkage clang diagnostic" - }, - "fullDescription": { - "text": "-Wnon-c-typedef-for-linkage clang diagnostic · Learn more", - "markdown": "-Wnon-c-typedef-for-linkage clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnon-c-typedef-for-linkage)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticNonCTypedefForLinkage", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticGnuRedeclaredEnum", - "shortDescription": { - "text": "gnu-redeclared-enum clang diagnostic" - }, - "fullDescription": { - "text": "-Wgnu-redeclared-enum clang diagnostic · Learn more", - "markdown": "-Wgnu-redeclared-enum clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-redeclared-enum)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticGnuRedeclaredEnum", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.RedundantResource", - "shortDescription": { - "text": "Redundant resource" - }, - "fullDescription": { - "text": "Resource is not used and can be safely removed", - "markdown": "Resource is not used and can be safely removed" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Xaml.RedundantResource", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Redundancies in Code", - "index": 77, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppVolatileParameterInDeclaration", - "shortDescription": { - "text": "Volatile-qualified parameter in a function declaration" - }, - "fullDescription": { - "text": "Volatile-qualification of parameters has an effect only in function definitions", - "markdown": "Volatile-qualification of parameters has an effect only in function definitions" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppVolatileParameterInDeclaration", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Redundancies in Code", - "index": 34, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCxxAttributeExtension", - "shortDescription": { - "text": "cxx-attribute-extension clang diagnostic" - }, - "fullDescription": { - "text": "-Wcxx-attribute-extension clang diagnostic · Learn more", - "markdown": "-Wcxx-attribute-extension clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcxx-attribute-extension)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCxxAttributeExtension", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyPerformanceMoveConstArg", - "shortDescription": { - "text": "performance-move-const-arg clang-tidy check" - }, - "fullDescription": { - "text": "performance-move-const-arg clang-tidy check · Learn more", - "markdown": "performance-move-const-arg clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance/move-const-arg.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyPerformanceMoveConstArg", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Mvc.MasterpageNotResolved", - "shortDescription": { - "text": "MVC (unknown masterpage)" - }, - "fullDescription": { - "text": "Unknown ASP.NET MVC Masterpage", - "markdown": "Unknown ASP.NET MVC Masterpage" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Mvc.MasterpageNotResolved", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Aspx/Potential Code Quality Issues", - "index": 64, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPreCpp26Compat", - "shortDescription": { - "text": "pre-c++26-compat clang diagnostic" - }, - "fullDescription": { - "text": "-Wpre-c++26-compat clang diagnostic · Learn more", - "markdown": "-Wpre-c++26-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpre-c-26-compat)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPreCpp26Compat", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerOsxMIG", - "shortDescription": { - "text": "osx.MIG clang static analyzer check" - }, - "fullDescription": { - "text": "osx.MIG clang static analyzer check · Learn more", - "markdown": "osx.MIG clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerOsxMIG", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8509", - "shortDescription": { - "text": "The switch expression does not handle all possible inputs (it is not exhaustive)." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/pattern-matching-warnings)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8509", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBPossibleMistakenArgument", - "shortDescription": { - "text": "Possible mistaken argument" - }, - "fullDescription": { - "text": "$type$.IsInstanceOfType($type$)", - "markdown": "$type$.IsInstanceOfType($type$)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "VBPossibleMistakenArgument", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8500", - "shortDescription": { - "text": "This takes the address of, gets the size of, or declares a pointer to a managed type." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8500", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RouteTemplates.MatchingConstraintConstructorNotResolved", - "shortDescription": { - "text": "Matching parameter constraint's constructor not found" - }, - "fullDescription": { - "text": "Matching parameter constraint's constructor not found", - "markdown": "Matching parameter constraint's constructor not found" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RouteTemplates.MatchingConstraintConstructorNotResolved", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "ASP.NET route templates/Code Notification", - "index": 48, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantNullableFlowAttribute", - "shortDescription": { - "text": "Redundant nullable attribute" - }, - "fullDescription": { - "text": "Nullable attribute has no effect and can be safely removed. This can be caused by the target element already having the desired nullable annotation.", - "markdown": "Nullable attribute has no effect and can be safely removed. This can be caused by the target element already having the desired nullable annotation." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantNullableFlowAttribute", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppEnforceIfStatementBraces", - "shortDescription": { - "text": "Use preferred braces style (enforce braces in 'if' statement)" - }, - "fullDescription": { - "text": "Use braces to separate 'if' statement body", - "markdown": "Use braces to separate 'if' statement body" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppEnforceIfStatementBraces", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Syntax Style", - "index": 91, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ServiceContractWithoutOperations", - "shortDescription": { - "text": "Interfaces marked as ServiceContract should declare at least one OperationContract" - }, - "fullDescription": { - "text": "Interfaces marked as ServiceContract should declare at least one OperationContract", - "markdown": "Interfaces marked as ServiceContract should declare at least one OperationContract" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "ServiceContractWithoutOperations", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppEnforceCVQualifiersOrder", - "shortDescription": { - "text": "Use preferred cv-qualifiers style (enforce the order of cv-qualifiers)" - }, - "fullDescription": { - "text": "Enforce the order of cv-qualifiers", - "markdown": "Enforce the order of cv-qualifiers" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppEnforceCVQualifiersOrder", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Syntax Style", - "index": 91, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDeprecatedEnumEnumConversion", - "shortDescription": { - "text": "deprecated-enum-enum-conversion clang diagnostic" - }, - "fullDescription": { - "text": "-Wdeprecated-enum-enum-conversion clang diagnostic · Learn more", - "markdown": "-Wdeprecated-enum-enum-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-enum-enum-conversion)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedEnumEnumConversion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "BadListLineBreaks", - "shortDescription": { - "text": "Incorrect line breaks (around comma in lists)" - }, - "fullDescription": { - "text": "Around comma in lists Learn more...", - "markdown": "Around comma in lists [Learn more...](https://www.jetbrains.com/help/rider/BadListLineBreaks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "BadListLineBreaks", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Formatting", - "index": 24, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerSecurityInsecureAPIStrcpy", - "shortDescription": { - "text": "security.insecureAPI.strcpy clang static analyzer check" - }, - "fullDescription": { - "text": "security.insecureAPI.strcpy clang static analyzer check · Learn more", - "markdown": "security.insecureAPI.strcpy clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerSecurityInsecureAPIStrcpy", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticRedundantMove", - "shortDescription": { - "text": "redundant-move clang diagnostic" - }, - "fullDescription": { - "text": "-Wredundant-move clang diagnostic · Learn more", - "markdown": "-Wredundant-move clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wredundant-move)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticRedundantMove", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticNestedAnonTypes", - "shortDescription": { - "text": "nested-anon-types clang diagnostic" - }, - "fullDescription": { - "text": "-Wnested-anon-types clang diagnostic · Learn more", - "markdown": "-Wnested-anon-types clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnested-anon-types)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticNestedAnonTypes", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SuggestVarOrType_Elsewhere", - "shortDescription": { - "text": "Use preferred 'var' style (elsewhere)" - }, - "fullDescription": { - "text": "Convert if declaration is not of a built-in or simple type and is not evident from the usage Learn more...", - "markdown": "Convert if declaration is not of a built-in or simple type and is not evident from the usage [Learn more...](https://www.jetbrains.com/help/rider/SuggestVarOrType_Elsewhere.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "SuggestVarOrType_Elsewhere", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Syntax Style", - "index": 21, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerOsxCoreFoundationContainersPointerSizedValues", - "shortDescription": { - "text": "osx.coreFoundation.containers.PointerSizedValues clang static analyzer check" - }, - "fullDescription": { - "text": "osx.coreFoundation.containers.PointerSizedValues clang static analyzer check · Learn more", - "markdown": "osx.coreFoundation.containers.PointerSizedValues clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerOsxCoreFoundationContainersPointerSizedValues", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp98CompatPedantic", - "shortDescription": { - "text": "c++98-compat-pedantic clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++98-compat-pedantic clang diagnostic · Learn more", - "markdown": "-Wc++98-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-98-compat-pedantic)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp98CompatPedantic", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticImplicitIntConversion", - "shortDescription": { - "text": "implicit-int-conversion clang diagnostic" - }, - "fullDescription": { - "text": "-Wimplicit-int-conversion clang diagnostic · Learn more", - "markdown": "-Wimplicit-int-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wimplicit-int-conversion)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticImplicitIntConversion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticGnuAnonymousStruct", - "shortDescription": { - "text": "gnu-anonymous-struct clang diagnostic" - }, - "fullDescription": { - "text": "-Wgnu-anonymous-struct clang diagnostic · Learn more", - "markdown": "-Wgnu-anonymous-struct clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-anonymous-struct)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticGnuAnonymousStruct", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerSecurityInsecureAPIBzero", - "shortDescription": { - "text": "security.insecureAPI.bzero clang static analyzer check" - }, - "fullDescription": { - "text": "security.insecureAPI.bzero clang static analyzer check · Learn more", - "markdown": "security.insecureAPI.bzero clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerSecurityInsecureAPIBzero", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMicrosoftConstInit", - "shortDescription": { - "text": "microsoft-const-init clang diagnostic" - }, - "fullDescription": { - "text": "-Wmicrosoft-const-init clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-const-init clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-const-init)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftConstInit", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConvertIfStatementToConditionalTernaryExpression", - "shortDescription": { - "text": "'if' statement can be rewritten as '?:' expression" - }, - "fullDescription": { - "text": "Convert the following code: \r\n if (condition) x = expr1;\r\n else x = expr2;\r\n To: \r\n x = condition ? expr1 : expr2;\r\n Learn more...", - "markdown": "Convert the following code:\n\n```\n\r\n if (condition) x = expr1;\r\n else x = expr2;\r\n```\n\nTo:\n\n```\n\r\n x = condition ? expr1 : expr2;\r\n```\n\n[Learn more...](https://www.jetbrains.com/help/rider/ConvertIfStatementToConditionalTernaryExpression.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "ConvertIfStatementToConditionalTernaryExpression", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MisleadingBodyLikeStatement", - "shortDescription": { - "text": "Confusing body-like statement" - }, - "fullDescription": { - "text": "Previous statement's body can be overlooked and the next statement can be read as it's body. Improve the visibility by making the actual body more visible or separate the next statement with an empty line.", - "markdown": "Previous statement's body can be overlooked and the next statement can be read as it's body. Improve the visibility by making the actual body more visible or separate the next statement with an empty line." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "MisleadingBodyLikeStatement", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantSpace", - "shortDescription": { - "text": "Incorrect spacing (space is redundant elsewhere)" - }, - "fullDescription": { - "text": "Space is redundant elsewhere Learn more...", - "markdown": "Space is redundant elsewhere [Learn more...](https://www.jetbrains.com/help/rider/RedundantSpace.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RedundantSpace", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Formatting", - "index": 24, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerCoreDynamicTypePropagation", - "shortDescription": { - "text": "core.DynamicTypePropagation clang static analyzer check" - }, - "fullDescription": { - "text": "core.DynamicTypePropagation clang static analyzer check · Learn more", - "markdown": "core.DynamicTypePropagation clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerCoreDynamicTypePropagation", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseEventArgsEmptyField", - "shortDescription": { - "text": "Use 'EventArgs.Empty'" - }, - "fullDescription": { - "text": "Replace an empty 'EventArgs' allocation with a use of the predefined 'EventArgs.Empty' field", - "markdown": "Replace an empty 'EventArgs' allocation with a use of the predefined 'EventArgs.Empty' field" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UseEventArgsEmptyField", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PropertyNotResolved", - "shortDescription": { - "text": "Cannot resolve property" - }, - "fullDescription": { - "text": "Cannot resolve property", - "markdown": "Cannot resolve property" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "PropertyNotResolved", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RequiredBaseTypesIsNotInherited", - "shortDescription": { - "text": "Base type is required" - }, - "fullDescription": { - "text": "Concrete base type is required by '[BaseTypeRequired]' attribute Learn more...", - "markdown": "Concrete base type is required by '\\[BaseTypeRequired\\]' attribute [Learn more...](https://www.jetbrains.com/help/rider/RequiredBaseTypesIsNotInherited.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RequiredBaseTypesIsNotInherited", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Constraints Violations", - "index": 80, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticVoidPointerToIntCast", - "shortDescription": { - "text": "void-pointer-to-int-cast clang diagnostic" - }, - "fullDescription": { - "text": "-Wvoid-pointer-to-int-cast clang diagnostic · Learn more", - "markdown": "-Wvoid-pointer-to-int-cast clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wvoid-pointer-to-int-cast)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticVoidPointerToIntCast", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppDeclaratorUsedBeforeInitialization", - "shortDescription": { - "text": "Local variable is used without being initialized" - }, - "fullDescription": { - "text": "Local variable is used without being initialized", - "markdown": "Local variable is used without being initialized" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "CppDeclaratorUsedBeforeInitialization", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticSelectorTypeMismatch", - "shortDescription": { - "text": "selector-type-mismatch clang diagnostic" - }, - "fullDescription": { - "text": "-Wselector-type-mismatch clang diagnostic · Learn more", - "markdown": "-Wselector-type-mismatch clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wselector-type-mismatch)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticSelectorTypeMismatch", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerOsxCoreFoundationContainersOutOfBounds", - "shortDescription": { - "text": "osx.coreFoundation.containers.OutOfBounds clang static analyzer check" - }, - "fullDescription": { - "text": "osx.coreFoundation.containers.OutOfBounds clang static analyzer check · Learn more", - "markdown": "osx.coreFoundation.containers.OutOfBounds clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerOsxCoreFoundationContainersOutOfBounds", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ParameterOnlyUsedForPreconditionCheck.Global", - "shortDescription": { - "text": "Parameter is only used for precondition check (non-private accessibility)" - }, - "fullDescription": { - "text": "Parameter is only used for precondition check", - "markdown": "Parameter is only used for precondition check" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ParameterOnlyUsedForPreconditionCheck.Global", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticGnuEmptyInitializer", - "shortDescription": { - "text": "gnu-empty-initializer clang diagnostic" - }, - "fullDescription": { - "text": "-Wgnu-empty-initializer clang diagnostic · Learn more", - "markdown": "-Wgnu-empty-initializer clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-empty-initializer)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticGnuEmptyInitializer", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMicrosoftEnumForwardReference", - "shortDescription": { - "text": "microsoft-enum-forward-reference clang diagnostic" - }, - "fullDescription": { - "text": "-Wmicrosoft-enum-forward-reference clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-enum-forward-reference clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-enum-forward-reference)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftEnumForwardReference", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.StyleInvalidTargetType", - "shortDescription": { - "text": "Style target type is not convertible to base type" - }, - "fullDescription": { - "text": "Style declaration target type is not convertible to style base type", - "markdown": "Style declaration target type is not convertible to style base type" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "Xaml.StyleInvalidTargetType", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Potential Code Quality Issues", - "index": 45, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyLlvmHeaderGuard", - "shortDescription": { - "text": "llvm-header-guard clang-tidy check" - }, - "fullDescription": { - "text": "llvm-header-guard clang-tidy check · Learn more", - "markdown": "llvm-header-guard clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/llvm/header-guard.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyLlvmHeaderGuard", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyMiscMisplacedConst", - "shortDescription": { - "text": "misc-misplaced-const clang-tidy check" - }, - "fullDescription": { - "text": "misc-misplaced-const clang-tidy check · Learn more", - "markdown": "misc-misplaced-const clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/misplaced-const.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyMiscMisplacedConst", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppTabsAreDisallowed", - "shortDescription": { - "text": "Incorrect spacing (tabs are prohibited)" - }, - "fullDescription": { - "text": "Prohibits the use of tabulation character everywhere in file", - "markdown": "Prohibits the use of tabulation character everywhere in file" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppTabsAreDisallowed", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Formatting", - "index": 28, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneIntegerDivision", - "shortDescription": { - "text": "bugprone-integer-division clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-integer-division clang-tidy check · Learn more", - "markdown": "bugprone-integer-division clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/integer-division.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneIntegerDivision", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticBadFunctionCast", - "shortDescription": { - "text": "bad-function-cast clang diagnostic" - }, - "fullDescription": { - "text": "-Wbad-function-cast clang diagnostic · Learn more", - "markdown": "-Wbad-function-cast clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wbad-function-cast)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticBadFunctionCast", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticInvalidSourceEncoding", - "shortDescription": { - "text": "invalid-source-encoding clang diagnostic" - }, - "fullDescription": { - "text": "-Winvalid-source-encoding clang diagnostic · Learn more", - "markdown": "-Winvalid-source-encoding clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winvalid-source-encoding)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticInvalidSourceEncoding", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1422", - "shortDescription": { - "text": "RoslynAnalyzers Validate platform compatibility" - }, - "fullDescription": { - "text": "Using platform dependent API on a component makes the code no longer work across all platforms.", - "markdown": "Using platform dependent API on a component makes the code no longer work across all platforms." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1422", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1421", - "shortDescription": { - "text": "RoslynAnalyzers This method uses runtime marshalling even when the 'DisableRuntimeMarshallingAttribute' is applied" - }, - "fullDescription": { - "text": "This method uses runtime marshalling even when runtime marshalling is disabled, which can cause unexpected behavior differences at runtime due to different expectations of a type's native layout.", - "markdown": "This method uses runtime marshalling even when runtime marshalling is disabled, which can cause unexpected behavior differences at runtime due to different expectations of a type's native layout." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1421", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1420", - "shortDescription": { - "text": "RoslynAnalyzers Property, type, or attribute requires runtime marshalling" - }, - "fullDescription": { - "text": "Using features that require runtime marshalling when runtime marshalling is disabled will result in runtime exceptions.", - "markdown": "Using features that require runtime marshalling when runtime marshalling is disabled will result in runtime exceptions." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1420", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.PossibleMisapplicationOfAttributeToMultipleFields", - "shortDescription": { - "text": "Possible incorrect application of attribute to multiple fields" - }, - "fullDescription": { - "text": "Applying an attribute to a single declaration containing multiple fields will apply the attribute to each field. The highlighted attribute (e.g. 'FormerlySerializedAs') is intended to be applied only to a single field. Prefer an explicit application to a single field in a single declaration. Learn more...", - "markdown": "Applying an attribute to a single declaration containing multiple fields will apply the attribute to each field. The highlighted attribute (e.g. 'FormerlySerializedAs') is intended to be applied only to a single field. Prefer an explicit application to a single field in a single declaration. [Learn more...](https://github.com/JetBrains/resharper-unity/wiki/Possible-mis-application-of-FormerlySerializedAs-attribute-to-multiple-fields)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.PossibleMisapplicationOfAttributeToMultipleFields", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCppcoreguidelinesProBoundsConstantArrayIndex", - "shortDescription": { - "text": "cppcoreguidelines-pro-bounds-constant-array-index clang-tidy check" - }, - "fullDescription": { - "text": "cppcoreguidelines-pro-bounds-constant-array-index clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-pro-bounds-constant-array-index clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/pro-bounds-constant-array-index.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCppcoreguidelinesProBoundsConstantArrayIndex", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "T4Errors", - "shortDescription": { - "text": "T4 Errors" - }, - "fullDescription": { - "text": "T4 Errors", - "markdown": "T4 Errors" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "T4Errors", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "T4/Non configurable", - "index": 125, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerWebkitRefCntblBaseVirtualDtor", - "shortDescription": { - "text": "webkit.RefCntblBaseVirtualDtor clang static analyzer check" - }, - "fullDescription": { - "text": "webkit.RefCntblBaseVirtualDtor clang static analyzer check · Learn more", - "markdown": "webkit.RefCntblBaseVirtualDtor clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerWebkitRefCntblBaseVirtualDtor", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppEnforceCVQualifiersPlacement", - "shortDescription": { - "text": "Use preferred cv-qualifiers style (enforce the placement of cv-qualifiers)" - }, - "fullDescription": { - "text": "Enforce the placement of cv-qualifiers", - "markdown": "Enforce the placement of cv-qualifiers" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppEnforceCVQualifiersPlacement", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Syntax Style", - "index": 91, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticGpuMaybeWrongSide", - "shortDescription": { - "text": "gpu-maybe-wrong-side clang diagnostic" - }, - "fullDescription": { - "text": "-Wgpu-maybe-wrong-side clang diagnostic · Learn more", - "markdown": "-Wgpu-maybe-wrong-side clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgpu-maybe-wrong-side)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticGpuMaybeWrongSide", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EntityFramework.ModelValidation.UnlimitedStringLength", - "shortDescription": { - "text": "Possible performance issues caused by unlimited string length" - }, - "fullDescription": { - "text": "Reports entity string properties that are not limited in length Learn more...", - "markdown": "Reports entity string properties that are not limited in length [Learn more...](https://www.jetbrains.com/help/rider/EntityFramework.ModelValidation.UnlimitedStringLength.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "EntityFramework.ModelValidation.UnlimitedStringLength", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Entity Framework", - "index": 37, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1419", - "shortDescription": { - "text": "RoslynAnalyzers Provide a parameterless constructor that is as visible as the containing type for concrete types derived from 'System.Runtime.InteropServices.SafeHandle'" - }, - "fullDescription": { - "text": "Providing a parameterless constructor that is as visible as the containing type for a type derived from 'System.Runtime.InteropServices.SafeHandle' enables better performance and usage with source-generated interop solutions.", - "markdown": "Providing a parameterless constructor that is as visible as the containing type for a type derived from 'System.Runtime.InteropServices.SafeHandle' enables better performance and usage with source-generated interop solutions." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1419", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticClassConversion", - "shortDescription": { - "text": "class-conversion clang diagnostic" - }, - "fullDescription": { - "text": "-Wclass-conversion clang diagnostic · Learn more", - "markdown": "-Wclass-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wclass-conversion)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticClassConversion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1418", - "shortDescription": { - "text": "RoslynAnalyzers Use valid platform string" - }, - "fullDescription": { - "text": "Platform compatibility analyzer requires a valid platform name and version.", - "markdown": "Platform compatibility analyzer requires a valid platform name and version." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1418", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerUnixStdCLibraryFunctions", - "shortDescription": { - "text": "unix.StdCLibraryFunctions clang static analyzer check" - }, - "fullDescription": { - "text": "unix.StdCLibraryFunctions clang static analyzer check · Learn more", - "markdown": "unix.StdCLibraryFunctions clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerUnixStdCLibraryFunctions", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit.RedundantArgumentInsteadOfExpectedResult", - "shortDescription": { - "text": "NUnit. Redundant argument instead of ExpectedResult." - }, - "fullDescription": { - "text": "Redundant argument is found instead of 'ExpectedResult' Learn more...", - "markdown": "Redundant argument is found instead of 'ExpectedResult' [Learn more...](https://www.jetbrains.com/help/rider/NUnit.RedundantArgumentInsteadOfExpectedResult.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NUnit.RedundantArgumentInsteadOfExpectedResult", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/NUnit", - "index": 26, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1417", - "shortDescription": { - "text": "RoslynAnalyzers Do not use 'OutAttribute' on string parameters for P/Invokes" - }, - "fullDescription": { - "text": "String parameters passed by value with the 'OutAttribute' can destabilize the runtime if the string is an interned string.", - "markdown": "String parameters passed by value with the 'OutAttribute' can destabilize the runtime if the string is an interned string." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1417", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1416", - "shortDescription": { - "text": "RoslynAnalyzers Validate platform compatibility" - }, - "fullDescription": { - "text": "Using platform dependent API on a component makes the code no longer work across all platforms.", - "markdown": "Using platform dependent API on a component makes the code no longer work across all platforms." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1416", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SafeCastIsUsedAsTypeCheck", - "shortDescription": { - "text": "Try cast and check for null can be replaced with a type check" - }, - "fullDescription": { - "text": "Try cast and check for null can be replaced with a type check", - "markdown": "Try cast and check for null can be replaced with a type check" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "SafeCastIsUsedAsTypeCheck", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticSlashUFilename", - "shortDescription": { - "text": "slash-u-filename clang diagnostic" - }, - "fullDescription": { - "text": "-Wslash-u-filename clang diagnostic · Learn more", - "markdown": "-Wslash-u-filename clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wslash-u-filename)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticSlashUFilename", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyLlvmlibcImplementationInNamespace", - "shortDescription": { - "text": "llvmlibc-implementation-in-namespace clang-tidy check" - }, - "fullDescription": { - "text": "llvmlibc-implementation-in-namespace clang-tidy check · Learn more", - "markdown": "llvmlibc-implementation-in-namespace clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/llvmlibc/implementation-in-namespace.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyLlvmlibcImplementationInNamespace", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantNullableDirective", - "shortDescription": { - "text": "Redundant nullable directive" - }, - "fullDescription": { - "text": "A nullable directive does not change a context and can be safely removed Learn more...", - "markdown": "A nullable directive does not change a context and can be safely removed [Learn more...](https://www.jetbrains.com/help/rider/RedundantNullableDirective.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantNullableDirective", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticSection", - "shortDescription": { - "text": "section clang diagnostic" - }, - "fullDescription": { - "text": "-Wsection clang diagnostic · Learn more", - "markdown": "-Wsection clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wsection)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticSection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS1911", - "shortDescription": { - "text": "Access to a member through 'base' keyword from anonymous method, lambda expression, query expression or iterator results in unverifiable code" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/ms228459.aspx)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS1911", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1112FadeOut", - "shortDescription": { - "text": "RoslynAnalyzers Combine 'Enumerable.Where' method chain" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1112FadeOut", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugpronePointerArithmeticOnPolymorphicObject", - "shortDescription": { - "text": "bugprone-pointer-arithmetic-on-polymorphic-object clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-pointer-arithmetic-on-polymorphic-object clang-tidy check · Learn more", - "markdown": "bugprone-pointer-arithmetic-on-polymorphic-object clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/pointer-arithmetic-on-polymorphic-object.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugpronePointerArithmeticOnPolymorphicObject", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "BlockShadersErrors", - "shortDescription": { - "text": "Block Shaders Errors" - }, - "fullDescription": { - "text": "Block Shaders Errors", - "markdown": "Block Shaders Errors" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "BlockShadersErrors", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Non configurable", - "index": 127, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerApiModelingTrustNonnull", - "shortDescription": { - "text": "apiModeling.TrustNonnull clang static analyzer check" - }, - "fullDescription": { - "text": "apiModeling.TrustNonnull clang static analyzer check · Learn more", - "markdown": "apiModeling.TrustNonnull clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerApiModelingTrustNonnull", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticNanInfinityDisabled", - "shortDescription": { - "text": "nan-infinity-disabled clang diagnostic" - }, - "fullDescription": { - "text": "-Wnan-infinity-disabled clang diagnostic · Learn more", - "markdown": "-Wnan-infinity-disabled clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnan-infinity-disabled)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticNanInfinityDisabled", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.BurstLoadingStaticNotReadonly", - "shortDescription": { - "text": "Loading from a non-readonly static field is not supported" - }, - "fullDescription": { - "text": "Loading from a non-readonly static field is not supported", - "markdown": "Loading from a non-readonly static field is not supported" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.BurstLoadingStaticNotReadonly", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity Burst Compiler Warnings", - "index": 57, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerValistUninitialized", - "shortDescription": { - "text": "valist.Uninitialized clang static analyzer check" - }, - "fullDescription": { - "text": "valist.Uninitialized clang static analyzer check · Learn more", - "markdown": "valist.Uninitialized clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerValistUninitialized", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1401", - "shortDescription": { - "text": "RoslynAnalyzers P/Invokes should not be visible" - }, - "fullDescription": { - "text": "A public or protected method in a public type has the System.Runtime.InteropServices.DllImportAttribute attribute (also implemented by the Declare keyword in Visual Basic). Such methods should not be exposed.", - "markdown": "A public or protected method in a public type has the System.Runtime.InteropServices.DllImportAttribute attribute (also implemented by the Declare keyword in Visual Basic). Such methods should not be exposed." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1401", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticC23Extensions", - "shortDescription": { - "text": "c23-extensions clang diagnostic" - }, - "fullDescription": { - "text": "-Wc23-extensions clang diagnostic · Learn more", - "markdown": "-Wc23-extensions clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc23-extensions)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticC23Extensions", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticVlaExtensionStaticAssert", - "shortDescription": { - "text": "vla-extension-static-assert clang diagnostic" - }, - "fullDescription": { - "text": "-Wvla-extension-static-assert clang diagnostic · Learn more", - "markdown": "-Wvla-extension-static-assert clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wvla-extension-static-assert)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticVlaExtensionStaticAssert", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPreCpp20Compat", - "shortDescription": { - "text": "pre-c++20-compat clang diagnostic" - }, - "fullDescription": { - "text": "-Wpre-c++20-compat clang diagnostic · Learn more", - "markdown": "-Wpre-c++20-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpre-c-20-compat)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPreCpp20Compat", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPreCpp17Compat", - "shortDescription": { - "text": "pre-c++17-compat clang diagnostic" - }, - "fullDescription": { - "text": "-Wpre-c++17-compat clang diagnostic · Learn more", - "markdown": "-Wpre-c++17-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpre-c-17-compat)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPreCpp17Compat", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.RedundantInitializeOnLoadAttribute", - "shortDescription": { - "text": "Redundant attribute usage (redundant 'InitializeOnLoad' attribute)" - }, - "fullDescription": { - "text": "The 'InitializeOnLoad' attribute is redundant when the static constructor is missing Learn more...", - "markdown": "The 'InitializeOnLoad' attribute is redundant when the static constructor is missing [Learn more...](https://github.com/JetBrains/resharper-unity/wiki/Redundant-InitializeOnLoad-attribute)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.RedundantInitializeOnLoadAttribute", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.Entities.AspectWrongFieldsType", - "shortDescription": { - "text": "DOTS: IAspect fields are required to be one of the following types: RefRW, RefRO, EnabledRefRW, EnabledRefRO, DynamicBuffer, or Entity" - }, - "fullDescription": { - "text": "{0}'s field '{1}' must be of type RefRW, RefRO, EnabledRefRW, EnabledRefRO, DynamicBuffer, or Entity", - "markdown": "{0}'s field '{1}' must be of type RefRW, RefRO, EnabledRefRW, EnabledRefRO, DynamicBuffer, or Entity" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "Unity.Entities.AspectWrongFieldsType", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8519", - "shortDescription": { - "text": "The given expression never matches the provided pattern." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8519", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "InvertCondition.1", - "shortDescription": { - "text": "Invert condition" - }, - "fullDescription": { - "text": "!$seq$.Any($args$) ? $expr$ : $expr2$", - "markdown": "!$seq$.Any($args$) ? $expr$ : $expr2$" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "InvertCondition.1", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMicrosoftDefaultArgRedefinition", - "shortDescription": { - "text": "microsoft-default-arg-redefinition clang diagnostic" - }, - "fullDescription": { - "text": "-Wmicrosoft-default-arg-redefinition clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-default-arg-redefinition clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-default-arg-redefinition)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftDefaultArgRedefinition", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticRedeclaredClassMember", - "shortDescription": { - "text": "redeclared-class-member clang diagnostic" - }, - "fullDescription": { - "text": "-Wredeclared-class-member clang diagnostic · Learn more", - "markdown": "-Wredeclared-class-member clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wredeclared-class-member)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticRedeclaredClassMember", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneBranchClone", - "shortDescription": { - "text": "bugprone-branch-clone clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-branch-clone clang-tidy check · Learn more", - "markdown": "bugprone-branch-clone clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/branch-clone.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneBranchClone", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerCplusplusInnerPointer", - "shortDescription": { - "text": "cplusplus.InnerPointer clang static analyzer check" - }, - "fullDescription": { - "text": "cplusplus.InnerPointer clang static analyzer check · Learn more", - "markdown": "cplusplus.InnerPointer clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerCplusplusInnerPointer", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneUniquePtrArrayMismatch", - "shortDescription": { - "text": "bugprone-unique-ptr-array-mismatch clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-unique-ptr-array-mismatch clang-tidy check · Learn more", - "markdown": "bugprone-unique-ptr-array-mismatch clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/unique-ptr-array-mismatch.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneUniquePtrArrayMismatch", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerCoreUninitializedUndefReturn", - "shortDescription": { - "text": "core.uninitialized.UndefReturn clang static analyzer check" - }, - "fullDescription": { - "text": "core.uninitialized.UndefReturn clang static analyzer check · Learn more", - "markdown": "core.uninitialized.UndefReturn clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerCoreUninitializedUndefReturn", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticReinterpretBaseClass", - "shortDescription": { - "text": "reinterpret-base-class clang diagnostic" - }, - "fullDescription": { - "text": "-Wreinterpret-base-class clang diagnostic · Learn more", - "markdown": "-Wreinterpret-base-class clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wreinterpret-base-class)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticReinterpretBaseClass", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityRedundantCasting", - "shortDescription": { - "text": "readability-redundant-casting clang-tidy check" - }, - "fullDescription": { - "text": "readability-redundant-casting clang-tidy check · Learn more", - "markdown": "readability-redundant-casting clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/redundant-casting.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityRedundantCasting", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.PerformanceCriticalCodeInvocation", - "shortDescription": { - "text": "Expensive method invocation" - }, - "fullDescription": { - "text": "This method call is inefficient when called inside a performance critical context. Learn more...", - "markdown": "This method call is inefficient when called inside a performance critical context. [Learn more...](https://github.com/JetBrains/resharper-unity/wiki/Performance-critical-context-and-costly-methods)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "Unity.PerformanceCriticalCodeInvocation", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity Performance Inspections", - "index": 128, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticInvalidIosDeploymentTarget", - "shortDescription": { - "text": "invalid-ios-deployment-target clang diagnostic" - }, - "fullDescription": { - "text": "-Winvalid-ios-deployment-target clang diagnostic · Learn more", - "markdown": "-Winvalid-ios-deployment-target clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winvalid-ios-deployment-target)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticInvalidIosDeploymentTarget", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "InconsistentOrderOfLocks", - "shortDescription": { - "text": "Inconsistent order of taken locks" - }, - "fullDescription": { - "text": "The expression is used in several lock statements with inconsistent execution order, forming a cycle. This might lead to a possible deadlock in a multi-threaded execution. Learn more...", - "markdown": "The expression is used in several lock statements with inconsistent execution order, forming a cycle. This might lead to a possible deadlock in a multi-threaded execution. [Learn more...](https://www.jetbrains.com/help/rider/InconsistentOrderOfLocks.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "InconsistentOrderOfLocks", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneEasilySwappableParameters", - "shortDescription": { - "text": "bugprone-easily-swappable-parameters clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-easily-swappable-parameters clang-tidy check · Learn more", - "markdown": "bugprone-easily-swappable-parameters clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/easily-swappable-parameters.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyBugproneEasilySwappableParameters", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp2cCompat", - "shortDescription": { - "text": "c++2c-compat clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++2c-compat clang diagnostic · Learn more", - "markdown": "-Wc++2c-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-2c-compat)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp2cCompat", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticOpenmpMapping", - "shortDescription": { - "text": "openmp-mapping clang diagnostic" - }, - "fullDescription": { - "text": "-Wopenmp-mapping clang diagnostic · Learn more", - "markdown": "-Wopenmp-mapping clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wopenmp-mapping)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticOpenmpMapping", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8524", - "shortDescription": { - "text": "The switch expression does not handle some values of its input type (it is not exhaustive) involving an unnamed enum value." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8524", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ArgumentsStyleLiteral", - "shortDescription": { - "text": "Use preferred argument style for literal values" - }, - "fullDescription": { - "text": "Prefer using named/positional argument when boolean, numeric, 'byte', or 'char' literal value is passed Learn more...", - "markdown": "Prefer using named/positional argument when boolean, numeric, 'byte', or 'char' literal value is passed [Learn more...](https://www.jetbrains.com/help/rider/ArgumentsStyleLiteral.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ArgumentsStyleLiteral", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Syntax Style", - "index": 21, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8520", - "shortDescription": { - "text": "The given expression always matches the provided constant." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8520", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyMpiTypeMismatch", - "shortDescription": { - "text": "mpi-type-mismatch clang-tidy check" - }, - "fullDescription": { - "text": "mpi-type-mismatch clang-tidy check · Learn more", - "markdown": "mpi-type-mismatch clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/mpi/type-mismatch.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyMpiTypeMismatch", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "FSharpRedundantParens", - "shortDescription": { - "text": "Remove redundant parentheses" - }, - "fullDescription": { - "text": "Parentheses can be safely removed without changing code semantics.", - "markdown": "Parentheses can be safely removed without changing code semantics." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "FSharpRedundantParens", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "F#/Redundancies in Code", - "index": 73, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCertPos47C", - "shortDescription": { - "text": "cert-pos47-c clang-tidy check" - }, - "fullDescription": { - "text": "cert-pos47-c clang-tidy check · Learn more", - "markdown": "cert-pos47-c clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/pos47-c.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCertPos47C", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MemberCanBeMadeStatic.Local", - "shortDescription": { - "text": "Member can be made static (shared) (private accessibility)" - }, - "fullDescription": { - "text": "A non-virtual instance member does not use 'this' object (neither implicitly nor explicitly) and can be made static (shared) Learn more...", - "markdown": "A non-virtual instance member does not use 'this' object (neither implicitly nor explicitly) and can be made static (shared) [Learn more...](https://www.jetbrains.com/help/rider/MemberCanBeMadeStatic.Local.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "MemberCanBeMadeStatic.Local", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RouteTemplates.OptionalParameterCanBePrecededOnlyBySinglePeriod", - "shortDescription": { - "text": "Optional parameter can be preceded only by single period ('.') in the segment" - }, - "fullDescription": { - "text": "Optional parameter can be preceded only by single period ('.') in the segment", - "markdown": "Optional parameter can be preceded only by single period ('.') in the segment" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RouteTemplates.OptionalParameterCanBePrecededOnlyBySinglePeriod", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "ASP.NET route templates/Code Notification", - "index": 48, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1048FadeOut", - "shortDescription": { - "text": "RoslynAnalyzers Use lambda expression instead of anonymous method" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1048FadeOut", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppEnumeratorNeverUsed", - "shortDescription": { - "text": "Enumerator is never used" - }, - "fullDescription": { - "text": "An enumerator is never used", - "markdown": "An enumerator is never used" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppEnumeratorNeverUsed", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticInconsistentDllimport", - "shortDescription": { - "text": "inconsistent-dllimport clang diagnostic" - }, - "fullDescription": { - "text": "-Winconsistent-dllimport clang diagnostic · Learn more", - "markdown": "-Winconsistent-dllimport clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winconsistent-dllimport)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticInconsistentDllimport", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCharSubscripts", - "shortDescription": { - "text": "char-subscripts clang diagnostic" - }, - "fullDescription": { - "text": "-Wchar-subscripts clang diagnostic · Learn more", - "markdown": "-Wchar-subscripts clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wchar-subscripts)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCharSubscripts", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseCancellationTokenForIAsyncEnumerable", - "shortDescription": { - "text": "Use cancellation token" - }, - "fullDescription": { - "text": "IAsyncEnumerable supports cancellation via 'WithCancellation' extension method", - "markdown": "IAsyncEnumerable supports cancellation via 'WithCancellation' extension method" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UseCancellationTokenForIAsyncEnumerable", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MemberCanBeFileLocal", - "shortDescription": { - "text": "Type can be made file-local" - }, - "fullDescription": { - "text": "Type can be made file-local", - "markdown": "Type can be made file-local" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "MemberCanBeFileLocal", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS0618", - "shortDescription": { - "text": "Use of obsolete symbol" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/x5ye6x1e.aspx)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS0618", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS0612", - "shortDescription": { - "text": "Use of obsolete symbol (without message)" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/h0h063ka.aspx)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS0612", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RouteTemplates.MethodMissingRouteParameters", - "shortDescription": { - "text": "Not all route parameters are passed to method" - }, - "fullDescription": { - "text": "Not all route parameters are passed to method", - "markdown": "Not all route parameters are passed to method" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RouteTemplates.MethodMissingRouteParameters", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "ASP.NET route templates/Code Notification", - "index": 48, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantUnsafeContext", - "shortDescription": { - "text": "Unsafe context declaration is redundant" - }, - "fullDescription": { - "text": "Unsafe context declaration is redundant because it is declared in unsafe context, or it does not contain unsafe constructs", - "markdown": "Unsafe context declaration is redundant because it is declared in unsafe context, or it does not contain unsafe constructs" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantUnsafeContext", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerUnixErrno", - "shortDescription": { - "text": "unix.Errno clang static analyzer check" - }, - "fullDescription": { - "text": "unix.Errno clang static analyzer check · Learn more", - "markdown": "unix.Errno clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerUnixErrno", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUndefinedInline", - "shortDescription": { - "text": "undefined-inline clang diagnostic" - }, - "fullDescription": { - "text": "-Wundefined-inline clang diagnostic · Learn more", - "markdown": "-Wundefined-inline clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wundefined-inline)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUndefinedInline", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticNonportableIncludePath", - "shortDescription": { - "text": "nonportable-include-path clang diagnostic" - }, - "fullDescription": { - "text": "-Wnonportable-include-path clang diagnostic · Learn more", - "markdown": "-Wnonportable-include-path clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnonportable-include-path)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticNonportableIncludePath", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MoveToExistingPositionalDeconstructionPattern", - "shortDescription": { - "text": "Move to existing positional deconstruction pattern" - }, - "fullDescription": { - "text": "Replace property pattern member(s) of recursive pattern with positional deconstruction patterns in existing positional deconstruction", - "markdown": "Replace property pattern member(s) of recursive pattern with positional deconstruction patterns in existing positional deconstruction" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "MoveToExistingPositionalDeconstructionPattern", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticOverrideInit", - "shortDescription": { - "text": "override-init clang diagnostic" - }, - "fullDescription": { - "text": "-Woverride-init clang diagnostic · Learn more", - "markdown": "-Woverride-init clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#woverride-init)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticOverrideInit", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCertPos44C", - "shortDescription": { - "text": "cert-pos44-c clang-tidy check" - }, - "fullDescription": { - "text": "cert-pos44-c clang-tidy check · Learn more", - "markdown": "cert-pos44-c clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/pos44-c.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCertPos44C", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS1957", - "shortDescription": { - "text": "Multiple override candidates at run-time" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/bb882562.aspx)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS1957", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS0628", - "shortDescription": { - "text": "Declaring new protected member in sealed class is the same as declaring it as private" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/7x8ekes3.aspx)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS0628", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppSomeObjectMembersMightNotBeInitialized", - "shortDescription": { - "text": "Some object members might not be initialized" - }, - "fullDescription": { - "text": "Some object members might not be initialized", - "markdown": "Some object members might not be initialized" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppSomeObjectMembersMightNotBeInitialized", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NotAccessedPrimaryConstructorParameterCompiler", - "shortDescription": { - "text": "Not accessed primary constructor parameter" - }, - "fullDescription": { - "text": "Parameter of the primary constructor is declared but never used", - "markdown": "Parameter of the primary constructor is declared but never used" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NotAccessedPrimaryConstructorParameterCompiler", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithOfType.Count.1", - "shortDescription": { - "text": "Replace with OfType<T>().Count()" - }, - "fullDescription": { - "text": "$seq$.Select($x$ => $x$ as $T$).Count($y$ => $y$ != null)", - "markdown": "$seq$.Select($x$ =\\> $x$ as $T$).Count($y$ =\\> $y$ != null)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithOfType.Count.1", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppHiddenFunction", - "shortDescription": { - "text": "Non-virtual class member function hidden in a derived class" - }, - "fullDescription": { - "text": "Non-virtual class member function is hidden in a derived class Learn more...", - "markdown": "Non-virtual class member function is hidden in a derived class [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Res-reuse)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppHiddenFunction", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1174FadeOut", - "shortDescription": { - "text": "RoslynAnalyzers Remove redundant async/await" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1174FadeOut", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerApiModelingGoogleGTest", - "shortDescription": { - "text": "apiModeling.google.GTest clang static analyzer check" - }, - "fullDescription": { - "text": "apiModeling.google.GTest clang static analyzer check · Learn more", - "markdown": "apiModeling.google.GTest clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerApiModelingGoogleGTest", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticAllocaWithAlignAlignof", - "shortDescription": { - "text": "alloca-with-align-alignof clang diagnostic" - }, - "fullDescription": { - "text": "-Walloca-with-align-alignof clang diagnostic · Learn more", - "markdown": "-Walloca-with-align-alignof clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#walloca-with-align-alignof)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticAllocaWithAlignAlignof", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithOfType.Count.2", - "shortDescription": { - "text": "Replace with OfType<T>().Count() (replace with OfType<T>().Count(..))" - }, - "fullDescription": { - "text": "$seq$.Select($x$ => $x$ as $T$).Count($y$ => $y$ != null && $expr$)", - "markdown": "$seq$.Select($x$ =\\> $x$ as $T$).Count($y$ =\\> $y$ != null \\&\\& $expr$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithOfType.Count.2", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MemberHidesStaticFromOuterClass", - "shortDescription": { - "text": "Member hides static member from outer class" - }, - "fullDescription": { - "text": "Member hides static member from outer class Learn more...", - "markdown": "Member hides static member from outer class [Learn more...](https://www.jetbrains.com/help/rider/MemberHidesStaticFromOuterClass.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "MemberHidesStaticFromOuterClass", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppEnforceTypeAliasCodeStyle", - "shortDescription": { - "text": "Use preferred declaration style (enforce type alias code style)" - }, - "fullDescription": { - "text": "Enforce usage of typedefs or type aliases depending on the syntax style setting", - "markdown": "Enforce usage of typedefs or type aliases depending on the syntax style setting" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppEnforceTypeAliasCodeStyle", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Syntax Style", - "index": 91, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCertOop11Cpp", - "shortDescription": { - "text": "cert-oop11-cpp clang-tidy check" - }, - "fullDescription": { - "text": "cert-oop11-cpp clang-tidy check · Learn more", - "markdown": "cert-oop11-cpp clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/oop11-cpp.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCertOop11Cpp", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPreCpp26CompatPedantic", - "shortDescription": { - "text": "pre-c++26-compat-pedantic clang diagnostic" - }, - "fullDescription": { - "text": "-Wpre-c++26-compat-pedantic clang diagnostic · Learn more", - "markdown": "-Wpre-c++26-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpre-c-26-compat-pedantic)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPreCpp26CompatPedantic", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppMemberFunctionMayBeStatic", - "shortDescription": { - "text": "Member function can be made static" - }, - "fullDescription": { - "text": "Member function can be made static", - "markdown": "Member function can be made static" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppMemberFunctionMayBeStatic", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Common Practices and Code Improvements", - "index": 16, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyObjcNsinvocationArgumentLifetime", - "shortDescription": { - "text": "objc-nsinvocation-argument-lifetime clang-tidy check" - }, - "fullDescription": { - "text": "objc-nsinvocation-argument-lifetime clang-tidy check · Learn more", - "markdown": "objc-nsinvocation-argument-lifetime clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/objc/nsinvocation-argument-lifetime.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyObjcNsinvocationArgumentLifetime", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerSecurityInsecureAPIGets", - "shortDescription": { - "text": "security.insecureAPI.gets clang static analyzer check" - }, - "fullDescription": { - "text": "security.insecureAPI.gets clang static analyzer check · Learn more", - "markdown": "security.insecureAPI.gets clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerSecurityInsecureAPIGets", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "WebConfig.WrongModule", - "shortDescription": { - "text": "Wrong module" - }, - "fullDescription": { - "text": "Wrong module", - "markdown": "Wrong module" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "WebConfig.WrongModule", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Web.Config/Potential Code Quality Issues", - "index": 82, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerSecurityCertEnvInvalidPtr", - "shortDescription": { - "text": "security.cert.env.InvalidPtr clang static analyzer check" - }, - "fullDescription": { - "text": "security.cert.env.InvalidPtr clang static analyzer check · Learn more", - "markdown": "security.cert.env.InvalidPtr clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerSecurityCertEnvInvalidPtr", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityDeleteNullPointer", - "shortDescription": { - "text": "readability-delete-null-pointer clang-tidy check" - }, - "fullDescription": { - "text": "readability-delete-null-pointer clang-tidy check · Learn more", - "markdown": "readability-delete-null-pointer clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/delete-null-pointer.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityDeleteNullPointer", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseSwitchCasePatternVariable", - "shortDescription": { - "text": "Type pattern and casts can be merged" - }, - "fullDescription": { - "text": "Type pattern in switch case label can be merged with direct cast(s) in switch section", - "markdown": "Type pattern in switch case label can be merged with direct cast(s) in switch section" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UseSwitchCasePatternVariable", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCppcoreguidelinesNarrowingConversions", - "shortDescription": { - "text": "cppcoreguidelines-narrowing-conversions clang-tidy check" - }, - "fullDescription": { - "text": "cppcoreguidelines-narrowing-conversions clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-narrowing-conversions clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/narrowing-conversions.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyCppcoreguidelinesNarrowingConversions", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantVirtualModifier", - "shortDescription": { - "text": "Redundant 'virtual' modifier" - }, - "fullDescription": { - "text": "Redundant 'virtual' modifier in interface declaration", - "markdown": "Redundant 'virtual' modifier in interface declaration" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantVirtualModifier", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerNullabilityNullablePassedToNonnull", - "shortDescription": { - "text": "nullability.NullablePassedToNonnull clang static analyzer check" - }, - "fullDescription": { - "text": "nullability.NullablePassedToNonnull clang static analyzer check · Learn more", - "markdown": "nullability.NullablePassedToNonnull clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerNullabilityNullablePassedToNonnull", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticGnuInlineCppWithoutExtern", - "shortDescription": { - "text": "gnu-inline-cpp-without-extern clang diagnostic" - }, - "fullDescription": { - "text": "-Wgnu-inline-cpp-without-extern clang diagnostic · Learn more", - "markdown": "-Wgnu-inline-cpp-without-extern clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-inline-cpp-without-extern)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticGnuInlineCppWithoutExtern", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnalignedQualifierImplicitCast", - "shortDescription": { - "text": "unaligned-qualifier-implicit-cast clang diagnostic" - }, - "fullDescription": { - "text": "-Wunaligned-qualifier-implicit-cast clang diagnostic · Learn more", - "markdown": "-Wunaligned-qualifier-implicit-cast clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunaligned-qualifier-implicit-cast)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnalignedQualifierImplicitCast", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.UnknownResource", - "shortDescription": { - "text": "The resource is not defined in the project" - }, - "fullDescription": { - "text": "The resource is not defined in the project. Expression will return 'null'.", - "markdown": "The resource is not defined in the project. Expression will return 'null'." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.UnknownResource", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBReplaceWithOfType.First.2", - "shortDescription": { - "text": "Replace with OfType<T>().First() (replace with OfType(Of ..)().First(..))" - }, - "fullDescription": { - "text": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).First(Function ($y$) $y$ IsNot Nothing AndAlso $expr$)", - "markdown": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).First(Function ($y$) $y$ IsNot Nothing AndAlso $expr$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBReplaceWithOfType.First.2", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBReplaceWithOfType.First.1", - "shortDescription": { - "text": "Replace with OfType<T>().First() (replace with OfType(Of ..)().First())" - }, - "fullDescription": { - "text": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).First(Function ($y$) $y$ IsNot Nothing)", - "markdown": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).First(Function ($y$) $y$ IsNot Nothing)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBReplaceWithOfType.First.1", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit.RedundantArgumentInTestCaseAttribute", - "shortDescription": { - "text": "NUnit. Redundant argument in TestCase attribute." - }, - "fullDescription": { - "text": "According to the test method signature, the argument in the [TestCase] attribute is redundant Learn more...", - "markdown": "According to the test method signature, the argument in the \\[TestCase\\] attribute is redundant [Learn more...](https://www.jetbrains.com/help/rider/NUnit.RedundantArgumentInTestCaseAttribute.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NUnit.RedundantArgumentInTestCaseAttribute", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/NUnit", - "index": 26, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1004FadeOut", - "shortDescription": { - "text": "RoslynAnalyzers Remove braces from if-else" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1004FadeOut", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticThreadSafetyReferenceReturn", - "shortDescription": { - "text": "thread-safety-reference-return clang diagnostic" - }, - "fullDescription": { - "text": "-Wthread-safety-reference-return clang diagnostic · Learn more", - "markdown": "-Wthread-safety-reference-return clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wthread-safety-reference-return)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticThreadSafetyReferenceReturn", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "FormatStringPlaceholdersMismatch", - "shortDescription": { - "text": "Format string placeholders mismatch" - }, - "fullDescription": { - "text": "Format string placeholders do not match between cultures", - "markdown": "Format string placeholders do not match between cultures" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "FormatStringPlaceholdersMismatch", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "ResX/Potential Code Quality Issues", - "index": 68, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticVariadicMacros", - "shortDescription": { - "text": "variadic-macros clang diagnostic" - }, - "fullDescription": { - "text": "-Wvariadic-macros clang diagnostic · Learn more", - "markdown": "-Wvariadic-macros clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wvariadic-macros)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticVariadicMacros", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticReservedModuleIdentifier", - "shortDescription": { - "text": "reserved-module-identifier clang diagnostic" - }, - "fullDescription": { - "text": "-Wreserved-module-identifier clang diagnostic · Learn more", - "markdown": "-Wreserved-module-identifier clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wreserved-module-identifier)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticReservedModuleIdentifier", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerSecurityInsecureAPIDecodeValueOfObjCType", - "shortDescription": { - "text": "security.insecureAPI.decodeValueOfObjCType clang static analyzer check" - }, - "fullDescription": { - "text": "security.insecureAPI.decodeValueOfObjCType clang static analyzer check · Learn more", - "markdown": "security.insecureAPI.decodeValueOfObjCType clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerSecurityInsecureAPIDecodeValueOfObjCType", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyLlvmIncludeOrder", - "shortDescription": { - "text": "llvm-include-order clang-tidy check" - }, - "fullDescription": { - "text": "llvm-include-order clang-tidy check · Learn more", - "markdown": "llvm-include-order clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/llvm/include-order.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyLlvmIncludeOrder", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppDoxygenUnresolvedReference", - "shortDescription": { - "text": "Unresolved reference in doxygen comment" - }, - "fullDescription": { - "text": "Unresolved reference in a doxygen comment", - "markdown": "Unresolved reference in a doxygen comment" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppDoxygenUnresolvedReference", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBWarnings__BC42356", - "shortDescription": { - "text": "Async method lacks 'Await' operators" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "VBWarnings__BC42356", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Compiler Warnings", - "index": 110, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBWarnings__BC42358", - "shortDescription": { - "text": "Because this call is not awaited, execution of the current method continues before the call is completed. Consider applying the 'Await' operator to the result of the call." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/hh965065.aspx)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "VBWarnings__BC42358", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Compiler Warnings", - "index": 110, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticAlloca", - "shortDescription": { - "text": "alloca clang diagnostic" - }, - "fullDescription": { - "text": "-Walloca clang diagnostic · Learn more", - "markdown": "-Walloca clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#walloca)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticAlloca", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppRedundantCastExpression", - "shortDescription": { - "text": "Redundant cast expression" - }, - "fullDescription": { - "text": "Cast is redundant and can be deleted", - "markdown": "Cast is redundant and can be deleted" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppRedundantCastExpression", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Redundancies in Code", - "index": 34, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantIfStatementThenKeyword", - "shortDescription": { - "text": "Keyword 'Then' is redundant in multiline 'If' statement" - }, - "fullDescription": { - "text": "Keyword 'Then' is redundant in multiline 'If' statement", - "markdown": "Keyword 'Then' is redundant in multiline 'If' statement" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RedundantIfStatementThenKeyword", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Redundancies in Code", - "index": 96, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBReplaceWithSingleCallToLastOrDefault", - "shortDescription": { - "text": "Replace with single call to LastOrDefault(..)" - }, - "fullDescription": { - "text": "$seq$.Where(Function ($x$) $expr$).LastOrDefault()", - "markdown": "$seq$.Where(Function ($x$) $expr$).LastOrDefault()" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBReplaceWithSingleCallToLastOrDefault", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PartialMethodWithSinglePart", - "shortDescription": { - "text": "Redundant 'partial' modifier on method declaration" - }, - "fullDescription": { - "text": "Method is declared as 'partial' but has only single part Learn more...", - "markdown": "Method is declared as 'partial' but has only single part [Learn more...](https://www.jetbrains.com/help/rider/PartialMethodWithSinglePart.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "PartialMethodWithSinglePart", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyMiscUseAnonymousNamespace", - "shortDescription": { - "text": "misc-use-anonymous-namespace clang-tidy check" - }, - "fullDescription": { - "text": "misc-use-anonymous-namespace clang-tidy check · Learn more", - "markdown": "misc-use-anonymous-namespace clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/use-anonymous-namespace.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyMiscUseAnonymousNamespace", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnsupportedNan", - "shortDescription": { - "text": "unsupported-nan clang diagnostic" - }, - "fullDescription": { - "text": "-Wunsupported-nan clang diagnostic · Learn more", - "markdown": "-Wunsupported-nan clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunsupported-nan)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnsupportedNan", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppParameterValueIsReassigned", - "shortDescription": { - "text": "Parameter is always rewritten in function body before being read" - }, - "fullDescription": { - "text": "A parameter is always rewritten in function body before being read", - "markdown": "A parameter is always rewritten in function body before being read" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppParameterValueIsReassigned", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "XAMLErrors", - "shortDescription": { - "text": "XAML Errors" - }, - "fullDescription": { - "text": "XAML Errors", - "markdown": "XAML Errors" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "XAMLErrors", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Non configurable", - "index": 130, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppZeroValuedExpressionUsedAsNullPointer", - "shortDescription": { - "text": "Expression that evaluates to zero is used as a null pointer constant" - }, - "fullDescription": { - "text": "Expression that evaluates to zero is used as a null pointer constant Learn more...", - "markdown": "Expression that evaluates to zero is used as a null pointer constant [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Res-nullptr)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppZeroValuedExpressionUsedAsNullPointer", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "FSharpRedundantDotInIndexer", - "shortDescription": { - "text": "Redundant '.' in indexer" - }, - "fullDescription": { - "text": "'.' can be removed in indexers.", - "markdown": "'.' can be removed in indexers." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "FSharpRedundantDotInIndexer", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "F#/Redundancies in Code", - "index": 73, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticQuotedIncludeInFrameworkHeader", - "shortDescription": { - "text": "quoted-include-in-framework-header clang diagnostic" - }, - "fullDescription": { - "text": "-Wquoted-include-in-framework-header clang diagnostic · Learn more", - "markdown": "-Wquoted-include-in-framework-header clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wquoted-include-in-framework-header)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticQuotedIncludeInFrameworkHeader", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NotAccessedField.Compiler", - "shortDescription": { - "text": "Non-accessed field" - }, - "fullDescription": { - "text": "Field is assigned but its value is never used (compiler warning) Learn more...", - "markdown": "Field is assigned but its value is never used (compiler warning) [Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/misc/cs0414)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NotAccessedField.Compiler", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCppcoreguidelinesAvoidDoWhile", - "shortDescription": { - "text": "cppcoreguidelines-avoid-do-while clang-tidy check" - }, - "fullDescription": { - "text": "cppcoreguidelines-avoid-do-while clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-avoid-do-while clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/avoid-do-while.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCppcoreguidelinesAvoidDoWhile", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SuggestVarOrType_DeconstructionDeclarations", - "shortDescription": { - "text": "Use preferred 'var' style (in deconstruction declarations)" - }, - "fullDescription": { - "text": "Convert if declaration is a part of a deconstruction Learn more...", - "markdown": "Convert if declaration is a part of a deconstruction [Learn more...](https://www.jetbrains.com/help/rider/SuggestVarOrType_DeconstructionDeclarations.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "SuggestVarOrType_DeconstructionDeclarations", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Syntax Style", - "index": 21, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticGnuLabelAsValue", - "shortDescription": { - "text": "gnu-label-as-value clang diagnostic" - }, - "fullDescription": { - "text": "-Wgnu-label-as-value clang diagnostic · Learn more", - "markdown": "-Wgnu-label-as-value clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-label-as-value)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticGnuLabelAsValue", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RazorNullConditionalOperatorHighlighting", - "shortDescription": { - "text": "Null-Conditional operator is not supported in this version of Razor" - }, - "fullDescription": { - "text": "Unknown HTML tag, may be a component", - "markdown": "Unknown HTML tag, may be a component" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RazorNullConditionalOperatorHighlighting", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Razor/Potential Code Quality Issues", - "index": 93, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnassignedField.Compiler", - "shortDescription": { - "text": "Unassigned field" - }, - "fullDescription": { - "text": "Field is never assigned (compiler warning) Learn more...", - "markdown": "Field is never assigned (compiler warning) [Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/misc/cs0649)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "UnassignedField.Compiler", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppObjectMemberMightNotBeInitialized", - "shortDescription": { - "text": "Object member might not be initialized" - }, - "fullDescription": { - "text": "An object member might not be initialized", - "markdown": "An object member might not be initialized" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppObjectMemberMightNotBeInitialized", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.ParameterNotDerivedFromComponent", - "shortDescription": { - "text": "Parameter should be derived from 'Component'" - }, - "fullDescription": { - "text": "Parameter should be derived from 'Component'.", - "markdown": "Parameter should be derived from 'Component'." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.ParameterNotDerivedFromComponent", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseArrayCreationExpression.2", - "shortDescription": { - "text": "Use array creation expression" - }, - "fullDescription": { - "text": "Array.CreateInstance(typeof($T$), $long$, $long2$)", - "markdown": "Array.CreateInstance(typeof($T$), $long$, $long2$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UseArrayCreationExpression.2", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticNonPodVarargs", - "shortDescription": { - "text": "non-pod-varargs clang diagnostic" - }, - "fullDescription": { - "text": "-Wnon-pod-varargs clang diagnostic · Learn more", - "markdown": "-Wnon-pod-varargs clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnon-pod-varargs)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticNonPodVarargs", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseArrayCreationExpression.1", - "shortDescription": { - "text": "Use array creation expression" - }, - "fullDescription": { - "text": "Array.CreateInstance(typeof($T$), $long$)", - "markdown": "Array.CreateInstance(typeof($T$), $long$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UseArrayCreationExpression.1", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticManyBracesAroundScalarInit", - "shortDescription": { - "text": "many-braces-around-scalar-init clang diagnostic" - }, - "fullDescription": { - "text": "-Wmany-braces-around-scalar-init clang diagnostic · Learn more", - "markdown": "-Wmany-braces-around-scalar-init clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmany-braces-around-scalar-init)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticManyBracesAroundScalarInit", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBoostUseRanges", - "shortDescription": { - "text": "boost-use-ranges clang-tidy check" - }, - "fullDescription": { - "text": "boost-use-ranges clang-tidy check · Learn more", - "markdown": "boost-use-ranges clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/boost/use-ranges.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyBoostUseRanges", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBWarnings__BC42380", - "shortDescription": { - "text": "Type is for evaluation purposes only and is subject to change or removal in future updates. Suppress this diagnostic to proceed." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "VBWarnings__BC42380", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Compiler Warnings", - "index": 110, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Html.IdDuplication", - "shortDescription": { - "text": "Ids duplication" - }, - "fullDescription": { - "text": "Duplication of id on page", - "markdown": "Duplication of id on page" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Html.IdDuplication", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HTML/Potential Code Quality Issues", - "index": 54, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.UnknownAnimatorStateName", - "shortDescription": { - "text": "There is no animator state with the same name in the project." - }, - "fullDescription": { - "text": "There is no animator state with the same name in the project.", - "markdown": "There is no animator state with the same name in the project." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.UnknownAnimatorStateName", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseImplicitlyTypedVariableEvident", - "shortDescription": { - "text": "Use implicitly typed variable declaration (evident)" - }, - "fullDescription": { - "text": "Use implicitly typed variable declaration when variable type is evident from initializer expression", - "markdown": "Use implicitly typed variable declaration when variable type is evident from initializer expression" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UseImplicitlyTypedVariableEvident", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Redundancies in Code", - "index": 96, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDeprecatedCopyWithUserProvidedDtor", - "shortDescription": { - "text": "deprecated-copy-with-user-provided-dtor clang diagnostic" - }, - "fullDescription": { - "text": "-Wdeprecated-copy-with-user-provided-dtor clang diagnostic · Learn more", - "markdown": "-Wdeprecated-copy-with-user-provided-dtor clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-copy-with-user-provided-dtor)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedCopyWithUserProvidedDtor", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "FSharpRedundantApplication", - "shortDescription": { - "text": "Redundant application" - }, - "fullDescription": { - "text": "Application is redundant and can be replaced with its argument.", - "markdown": "Application is redundant and can be replaced with its argument." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "FSharpRedundantApplication", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "F#/Redundancies in Code", - "index": 73, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticGnuEmptyStruct", - "shortDescription": { - "text": "gnu-empty-struct clang diagnostic" - }, - "fullDescription": { - "text": "-Wgnu-empty-struct clang diagnostic · Learn more", - "markdown": "-Wgnu-empty-struct clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-empty-struct)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticGnuEmptyStruct", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AccessToStaticMemberViaDerivedType", - "shortDescription": { - "text": "Access to a static member of a type via a derived type" - }, - "fullDescription": { - "text": "Access to a static member of a type via a derived type Learn more...", - "markdown": "Access to a static member of a type via a derived type [Learn more...](https://www.jetbrains.com/help/rider/AccessToStaticMemberViaDerivedType.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "AccessToStaticMemberViaDerivedType", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticTautologicalConstantOutOfRangeCompare", - "shortDescription": { - "text": "tautological-constant-out-of-range-compare clang diagnostic" - }, - "fullDescription": { - "text": "-Wtautological-constant-out-of-range-compare clang diagnostic · Learn more", - "markdown": "-Wtautological-constant-out-of-range-compare clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wtautological-constant-out-of-range-compare)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticTautologicalConstantOutOfRangeCompare", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticIncludeNextAbsolutePath", - "shortDescription": { - "text": "include-next-absolute-path clang diagnostic" - }, - "fullDescription": { - "text": "-Winclude-next-absolute-path clang diagnostic · Learn more", - "markdown": "-Winclude-next-absolute-path clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winclude-next-absolute-path)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticIncludeNextAbsolutePath", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerApiModelingLlvmReturnValue", - "shortDescription": { - "text": "apiModeling.llvm.ReturnValue clang static analyzer check" - }, - "fullDescription": { - "text": "apiModeling.llvm.ReturnValue clang static analyzer check · Learn more", - "markdown": "apiModeling.llvm.ReturnValue clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerApiModelingLlvmReturnValue", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticWarning", - "shortDescription": { - "text": "warning clang diagnostic" - }, - "fullDescription": { - "text": "Clang warning", - "markdown": "Clang warning" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticWarning", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp98Cpp11Cpp14Cpp17CompatPedantic", - "shortDescription": { - "text": "c++98-c++11-c++14-c++17-compat-pedantic clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++98-c++11-c++14-c++17-compat-pedantic clang diagnostic · Learn more", - "markdown": "-Wc++98-c++11-c++14-c++17-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-98-c-11-c-14-c-17-compat-pedantic)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp98Cpp11Cpp14Cpp17CompatPedantic", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPragmaMessages", - "shortDescription": { - "text": "#pragma-messages clang diagnostic" - }, - "fullDescription": { - "text": "-W#pragma-messages clang diagnostic · Learn more", - "markdown": "-W#pragma-messages clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#w-pragma-messages)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPragmaMessages", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppBoostFormatTooFewArgs", - "shortDescription": { - "text": "Not enough arguments in a call to boost::format" - }, - "fullDescription": { - "text": "Not enough arguments in a call to boost::format", - "markdown": "Not enough arguments in a call to boost::format" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "CppBoostFormatTooFewArgs", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticIgnoredAvailabilityWithoutSdkSettings", - "shortDescription": { - "text": "ignored-availability-without-sdk-settings clang diagnostic" - }, - "fullDescription": { - "text": "-Wignored-availability-without-sdk-settings clang diagnostic · Learn more", - "markdown": "-Wignored-availability-without-sdk-settings clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wignored-availability-without-sdk-settings)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticIgnoredAvailabilityWithoutSdkSettings", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseUtf8StringLiteral", - "shortDescription": { - "text": "Use UTF-8 string literal" - }, - "fullDescription": { - "text": "Byte array can be converted to a UTF-8 string literal Learn more...", - "markdown": "Byte array can be converted to a UTF-8 string literal [Learn more...](https://www.jetbrains.com/help/rider/UseUtf8StringLiteral.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UseUtf8StringLiteral", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.UnknownInputAxes", - "shortDescription": { - "text": "The input name is not defined in the Input manager" - }, - "fullDescription": { - "text": "The name is not defined in the Input manager. The call is likely to fail at runtime.", - "markdown": "The name is not defined in the Input manager. The call is likely to fail at runtime." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.UnknownInputAxes", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.ElementNameReferenceNotResolved", - "shortDescription": { - "text": "Element name reference is not resolved" - }, - "fullDescription": { - "text": "Element name reference is not resolved to any of the named elements in scope", - "markdown": "Element name reference is not resolved to any of the named elements in scope" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "Xaml.ElementNameReferenceNotResolved", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Code Notification", - "index": 5, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyAbseilDurationFactoryScale", - "shortDescription": { - "text": "abseil-duration-factory-scale clang-tidy check" - }, - "fullDescription": { - "text": "abseil-duration-factory-scale clang-tidy check · Learn more", - "markdown": "abseil-duration-factory-scale clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/duration-factory-scale.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyAbseilDurationFactoryScale", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerCplusplusStringChecker", - "shortDescription": { - "text": "cplusplus.StringChecker clang static analyzer check" - }, - "fullDescription": { - "text": "cplusplus.StringChecker clang static analyzer check · Learn more", - "markdown": "cplusplus.StringChecker clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerCplusplusStringChecker", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PrimaryConstructorParameterCaptureDisallowed", - "shortDescription": { - "text": "Primary constructor parameter capturing is disallowed" - }, - "fullDescription": { - "text": "Capturing of a primary constructor parameter by an instance member results in an implicit type layout. Use this inspection if you want to disallow primary parameter capturing. Learn more...", - "markdown": "Capturing of a primary constructor parameter by an instance member results in an implicit type layout. Use this inspection if you want to disallow primary parameter capturing. [Learn more...](https://www.jetbrains.com/help/rider/PrimaryConstructorParameterCaptureDisallowed.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "PrimaryConstructorParameterCaptureDisallowed", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SpecifyACultureInStringConversionExplicitly", - "shortDescription": { - "text": "Specify string culture explicitly" - }, - "fullDescription": { - "text": "Specify a culture in string conversion explicitly Learn more...", - "markdown": "Specify a culture in string conversion explicitly [Learn more...](https://www.jetbrains.com/help/rider/SpecifyACultureInStringConversionExplicitly.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "SpecifyACultureInStringConversionExplicitly", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyGoogleUpgradeGoogletestCase", - "shortDescription": { - "text": "google-upgrade-googletest-case clang-tidy check" - }, - "fullDescription": { - "text": "google-upgrade-googletest-case clang-tidy check · Learn more", - "markdown": "google-upgrade-googletest-case clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/google/upgrade-googletest-case.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyGoogleUpgradeGoogletestCase", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit.ParameterTypeIsNotCompatibleWithAttribute", - "shortDescription": { - "text": "NUnit. Specified values are not compatible with the test parameter type." - }, - "fullDescription": { - "text": "NUnit. Values specified in the attribute are not compatible with the corresponding test parameter type. Learn more...", - "markdown": "NUnit. Values specified in the attribute are not compatible with the corresponding test parameter type. [Learn more...](https://www.jetbrains.com/help/rider/NUnit.ParameterTypeIsNotCompatibleWithAttribute.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NUnit.ParameterTypeIsNotCompatibleWithAttribute", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/NUnit", - "index": 26, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnityPerformanceHighlighting", - "shortDescription": { - "text": "Unity Performance Hints" - }, - "fullDescription": { - "text": "Unity Performance Hints", - "markdown": "Unity Performance Hints" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "UnityPerformanceHighlighting", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Non configurable", - "index": 52, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneStringLiteralWithEmbeddedNul", - "shortDescription": { - "text": "bugprone-string-literal-with-embedded-nul clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-string-literal-with-embedded-nul clang-tidy check · Learn more", - "markdown": "bugprone-string-literal-with-embedded-nul clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/string-literal-with-embedded-nul.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneStringLiteralWithEmbeddedNul", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticReturnLocalAddr", - "shortDescription": { - "text": "return-local-addr clang diagnostic" - }, - "fullDescription": { - "text": "-Wreturn-local-addr clang diagnostic · Learn more", - "markdown": "-Wreturn-local-addr clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wreturn-local-addr)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticReturnLocalAddr", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.RedundantAttachedProperty", - "shortDescription": { - "text": "Remove redundant attached property setter" - }, - "fullDescription": { - "text": "Attached property setter has no effect in the current context and can be removed", - "markdown": "Attached property setter has no effect in the current context and can be removed" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Xaml.RedundantAttachedProperty", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Redundancies in Code", - "index": 77, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NotAccessedField.Local", - "shortDescription": { - "text": "Non-accessed field (private accessibility)" - }, - "fullDescription": { - "text": "Field is assigned but its value is never used Learn more...", - "markdown": "Field is assigned but its value is never used [Learn more...](https://www.jetbrains.com/help/rider/NotAccessedField.Local.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "NotAccessedField.Local", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticNoderef", - "shortDescription": { - "text": "noderef clang diagnostic" - }, - "fullDescription": { - "text": "-Wnoderef clang diagnostic · Learn more", - "markdown": "-Wnoderef clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnoderef)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticNoderef", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerCoreVLASize", - "shortDescription": { - "text": "core.VLASize clang static analyzer check" - }, - "fullDescription": { - "text": "core.VLASize clang static analyzer check · Learn more", - "markdown": "core.VLASize clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerCoreVLASize", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp20Designator", - "shortDescription": { - "text": "c++20-designator clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++20-designator clang diagnostic · Learn more", - "markdown": "-Wc++20-designator clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-20-designator)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp20Designator", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "LambdaExpressionCanBeMadeStatic", - "shortDescription": { - "text": "Lambda expression/anonymous method can be made 'static'" - }, - "fullDescription": { - "text": "Lambda expression/anonymous method can be made 'static'", - "markdown": "Lambda expression/anonymous method can be made 'static'" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "LambdaExpressionCanBeMadeStatic", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBWarnings__BC42322", - "shortDescription": { - "text": "Runtime errors are likely to occur when converting X to Y" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://docs.microsoft.com/en-us/dotnet/visual-basic/misc/bc42322)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "VBWarnings__BC42322", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Compiler Warnings", - "index": 110, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "StringEndsWithIsCultureSpecific", - "shortDescription": { - "text": "String.EndsWith is culture-specific (string.EndsWith(string) is culture-specific)" - }, - "fullDescription": { - "text": "$s$.EndsWith($sarg$) Learn more...", - "markdown": "$s$.EndsWith($sarg$) [Learn more...](https://www.jetbrains.com/help/rider/StringEndsWithIsCultureSpecific.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "StringEndsWithIsCultureSpecific", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticAtomicPropertyWithUserDefinedAccessor", - "shortDescription": { - "text": "atomic-property-with-user-defined-accessor clang diagnostic" - }, - "fullDescription": { - "text": "-Watomic-property-with-user-defined-accessor clang diagnostic · Learn more", - "markdown": "-Watomic-property-with-user-defined-accessor clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#watomic-property-with-user-defined-accessor)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticAtomicPropertyWithUserDefinedAccessor", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticIntInBoolContext", - "shortDescription": { - "text": "int-in-bool-context clang diagnostic" - }, - "fullDescription": { - "text": "-Wint-in-bool-context clang diagnostic · Learn more", - "markdown": "-Wint-in-bool-context clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wint-in-bool-context)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticIntInBoolContext", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerCoreBuiltinBuiltinFunctions", - "shortDescription": { - "text": "core.builtin.BuiltinFunctions clang static analyzer check" - }, - "fullDescription": { - "text": "core.builtin.BuiltinFunctions clang static analyzer check · Learn more", - "markdown": "core.builtin.BuiltinFunctions clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerCoreBuiltinBuiltinFunctions", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCppcoreguidelinesAvoidCArrays", - "shortDescription": { - "text": "cppcoreguidelines-avoid-c-arrays clang-tidy check" - }, - "fullDescription": { - "text": "cppcoreguidelines-avoid-c-arrays clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-avoid-c-arrays clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/avoid-c-arrays.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCppcoreguidelinesAvoidCArrays", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneBadSignalToKillThread", - "shortDescription": { - "text": "bugprone-bad-signal-to-kill-thread clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-bad-signal-to-kill-thread clang-tidy check · Learn more", - "markdown": "bugprone-bad-signal-to-kill-thread clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/bad-signal-to-kill-thread.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneBadSignalToKillThread", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneBoolPointerImplicitConversion", - "shortDescription": { - "text": "bugprone-bool-pointer-implicit-conversion clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-bool-pointer-implicit-conversion clang-tidy check · Learn more", - "markdown": "bugprone-bool-pointer-implicit-conversion clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/bool-pointer-implicit-conversion.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyBugproneBoolPointerImplicitConversion", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "WebConfig.TagPrefixRedundand", - "shortDescription": { - "text": "Redundant tagPrefix declaration" - }, - "fullDescription": { - "text": "Tag prefix does not declare any new alias and can be removed safely", - "markdown": "Tag prefix does not declare any new alias and can be removed safely" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "WebConfig.TagPrefixRedundand", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Web.Config/Redundancies in Code", - "index": 98, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticWritableStrings", - "shortDescription": { - "text": "writable-strings clang diagnostic" - }, - "fullDescription": { - "text": "-Wwritable-strings clang diagnostic · Learn more", - "markdown": "-Wwritable-strings clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wwritable-strings)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticWritableStrings", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticConditionalUninitialized", - "shortDescription": { - "text": "conditional-uninitialized clang diagnostic" - }, - "fullDescription": { - "text": "-Wconditional-uninitialized clang diagnostic · Learn more", - "markdown": "-Wconditional-uninitialized clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wconditional-uninitialized)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticConditionalUninitialized", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDeprecatedCommaSubscript", - "shortDescription": { - "text": "deprecated-comma-subscript clang diagnostic" - }, - "fullDescription": { - "text": "-Wdeprecated-comma-subscript clang diagnostic · Learn more", - "markdown": "-Wdeprecated-comma-subscript clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-comma-subscript)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedCommaSubscript", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantOverflowCheckingContext", - "shortDescription": { - "text": "Redundant arithmetic overflow checking context" - }, - "fullDescription": { - "text": "Arithmetic overflow checking context contains no operators or conversions with overflow checks", - "markdown": "Arithmetic overflow checking context contains no operators or conversions with overflow checks" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantOverflowCheckingContext", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "WrongIndentSize", - "shortDescription": { - "text": "Incorrect indent (incorrect indent size)" - }, - "fullDescription": { - "text": "Incorrect indent size Learn more...", - "markdown": "Incorrect indent size [Learn more...](https://www.jetbrains.com/help/rider/WrongIndentSize.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "WrongIndentSize", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Formatting", - "index": 24, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EventNeverInvoked.Global", - "shortDescription": { - "text": "Abstract or virtual (overridable) event is never invoked" - }, - "fullDescription": { - "text": "An abstract or virtual (overridable) event is never invoked in its class or its inheritors", - "markdown": "An abstract or virtual (overridable) event is never invoked in its class or its inheritors" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "EventNeverInvoked.Global", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticStaticInInline", - "shortDescription": { - "text": "static-in-inline clang diagnostic" - }, - "fullDescription": { - "text": "-Wstatic-in-inline clang diagnostic · Learn more", - "markdown": "-Wstatic-in-inline clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wstatic-in-inline)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticStaticInInline", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit.TestCaseAttributeRequiresExpectedResult", - "shortDescription": { - "text": "NUnit. Missing expected result for non-void test method." - }, - "fullDescription": { - "text": "Expected result of a compatible type must be provided for non-void NUnit test methods through the [TestCase] attribute Learn more...", - "markdown": "Expected result of a compatible type must be provided for non-void NUnit test methods through the \\[TestCase\\] attribute [Learn more...](https://www.jetbrains.com/help/rider/NUnit.TestCaseAttributeRequiresExpectedResult.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NUnit.TestCaseAttributeRequiresExpectedResult", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/NUnit", - "index": 26, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CollectionNeverQueried.Local", - "shortDescription": { - "text": "Collection content is never queried (private accessibility)" - }, - "fullDescription": { - "text": "Elements are only added to the collection but never used Learn more...", - "markdown": "Elements are only added to the collection but never used [Learn more...](https://www.jetbrains.com/help/rider/CollectionNeverQueried.Local.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CollectionNeverQueried.Local", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.IncorrectMethodSignature", - "shortDescription": { - "text": "Incorrect method signature" - }, - "fullDescription": { - "text": "Method does not match expected signature.", - "markdown": "Method does not match expected signature." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.IncorrectMethodSignature", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CanSimplifyStringEscapeSequence", - "shortDescription": { - "text": "Escape sequence can be simplified" - }, - "fullDescription": { - "text": "Escape sequence can be simplified Learn more...", - "markdown": "Escape sequence can be simplified [Learn more...](https://www.jetbrains.com/help/rider/CanSimplifyStringEscapeSequence.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CanSimplifyStringEscapeSequence", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticInvalidNoBuiltinNames", - "shortDescription": { - "text": "invalid-no-builtin-names clang diagnostic" - }, - "fullDescription": { - "text": "-Winvalid-no-builtin-names clang diagnostic · Learn more", - "markdown": "-Winvalid-no-builtin-names clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winvalid-no-builtin-names)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticInvalidNoBuiltinNames", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticFormatTypeConfusion", - "shortDescription": { - "text": "format-type-confusion clang diagnostic" - }, - "fullDescription": { - "text": "-Wformat-type-confusion clang diagnostic · Learn more", - "markdown": "-Wformat-type-confusion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wformat-type-confusion)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticFormatTypeConfusion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VoidMethodWithMustDisposeResourceAttribute", - "shortDescription": { - "text": "'void' method is annotated with the [MustDisposeResource] attribute" - }, - "fullDescription": { - "text": "Annotating a 'void' method with [MustDisposeResource] is meaningless", - "markdown": "Annotating a 'void' method with \\[MustDisposeResource\\] is meaningless" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "VoidMethodWithMustDisposeResourceAttribute", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit.MissingArgumentsInTestCaseAttribute", - "shortDescription": { - "text": "NUnit. Missing arguments in TestCase attribute." - }, - "fullDescription": { - "text": "According to the test method signature, there are missing arguments in the [TestCase] attribute Learn more...", - "markdown": "According to the test method signature, there are missing arguments in the \\[TestCase\\] attribute [Learn more...](https://www.jetbrains.com/help/rider/NUnit.MissingArgumentsInTestCaseAttribute.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NUnit.MissingArgumentsInTestCaseAttribute", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/NUnit", - "index": 26, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PossibleMistakenSystemTypeArgument", - "shortDescription": { - "text": "Possible mistaken argument of type 'System.Type'" - }, - "fullDescription": { - "text": "Possibly mistaken argument of type 'System.Type' is used where an object for type checking is expected Learn more...", - "markdown": "Possibly mistaken argument of type 'System.Type' is used where an object for type checking is expected [Learn more...](https://www.jetbrains.com/help/rider/PossibleMistakenSystemTypeArgument.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "PossibleMistakenSystemTypeArgument", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RemoveRedundantOrStatement.True", - "shortDescription": { - "text": "Remove redundant statement" - }, - "fullDescription": { - "text": "$bool1$ &= true;", - "markdown": "$bool1$ \\&= true;" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RemoveRedundantOrStatement.True", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticBitfieldWidth", - "shortDescription": { - "text": "bitfield-width clang diagnostic" - }, - "fullDescription": { - "text": "-Wbitfield-width clang diagnostic · Learn more", - "markdown": "-Wbitfield-width clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wbitfield-width)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticBitfieldWidth", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBWarnings__BC42349", - "shortDescription": { - "text": "Redundant DirectCast to the equals value type" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "VBWarnings__BC42349", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Compiler Warnings", - "index": 110, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticIncompatibleSysroot", - "shortDescription": { - "text": "incompatible-sysroot clang diagnostic" - }, - "fullDescription": { - "text": "-Wincompatible-sysroot clang diagnostic · Learn more", - "markdown": "-Wincompatible-sysroot clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wincompatible-sysroot)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticIncompatibleSysroot", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticShiftOpParentheses", - "shortDescription": { - "text": "shift-op-parentheses clang diagnostic" - }, - "fullDescription": { - "text": "-Wshift-op-parentheses clang diagnostic · Learn more", - "markdown": "-Wshift-op-parentheses clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wshift-op-parentheses)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticShiftOpParentheses", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SuspiciousTypeConversion.Global", - "shortDescription": { - "text": "Suspicious type conversion or check" - }, - "fullDescription": { - "text": "A type is converted into another one but there is no type in the solution which is inherited from both. This also applies to 'is' operator and '==' and '!=' comparisons. Learn more...", - "markdown": "A type is converted into another one but there is no type in the solution which is inherited from both. This also applies to 'is' operator and '==' and '!=' comparisons. [Learn more...](https://www.jetbrains.com/help/rider/SuspiciousTypeConversion.Global.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "SuspiciousTypeConversion.Global", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp11LongLong", - "shortDescription": { - "text": "c++11-long-long clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++11-long-long clang diagnostic · Learn more", - "markdown": "-Wc++11-long-long clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-11-long-long)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp11LongLong", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AspErrors", - "shortDescription": { - "text": "ASP Errors" - }, - "fullDescription": { - "text": "ASP Errors", - "markdown": "ASP Errors" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "AspErrors", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Aspx/Non configurable", - "index": 132, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyConcurrencyThreadCanceltypeAsynchronous", - "shortDescription": { - "text": "concurrency-thread-canceltype-asynchronous clang-tidy check" - }, - "fullDescription": { - "text": "concurrency-thread-canceltype-asynchronous clang-tidy check · Learn more", - "markdown": "concurrency-thread-canceltype-asynchronous clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/concurrency/thread-canceltype-asynchronous.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyConcurrencyThreadCanceltypeAsynchronous", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticInconsistentMissingOverride", - "shortDescription": { - "text": "inconsistent-missing-override clang diagnostic" - }, - "fullDescription": { - "text": "-Winconsistent-missing-override clang diagnostic · Learn more", - "markdown": "-Winconsistent-missing-override clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winconsistent-missing-override)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticInconsistentMissingOverride", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDuplicateProtocol", - "shortDescription": { - "text": "duplicate-protocol clang diagnostic" - }, - "fullDescription": { - "text": "-Wduplicate-protocol clang diagnostic · Learn more", - "markdown": "-Wduplicate-protocol clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wduplicate-protocol)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDuplicateProtocol", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMismatchedTags", - "shortDescription": { - "text": "mismatched-tags clang diagnostic" - }, - "fullDescription": { - "text": "-Wmismatched-tags clang diagnostic · Learn more", - "markdown": "-Wmismatched-tags clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmismatched-tags)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMismatchedTags", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AsmCompilerErrorGroup", - "shortDescription": { - "text": "Assembler Errors" - }, - "fullDescription": { - "text": "Assembler Errors", - "markdown": "Assembler Errors" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "AsmCompilerErrorGroup", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Assembler/Non configurable", - "index": 134, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppDependentTemplateWithoutTemplateKeyword", - "shortDescription": { - "text": "Dependent template without 'template' keyword" - }, - "fullDescription": { - "text": "Dependent template without 'template' keyword", - "markdown": "Dependent template without 'template' keyword" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppDependentTemplateWithoutTemplateKeyword", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticInvalidPartialSpecialization", - "shortDescription": { - "text": "invalid-partial-specialization clang diagnostic" - }, - "fullDescription": { - "text": "-Winvalid-partial-specialization clang diagnostic · Learn more", - "markdown": "-Winvalid-partial-specialization clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winvalid-partial-specialization)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticInvalidPartialSpecialization", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyObjcPropertyDeclaration", - "shortDescription": { - "text": "objc-property-declaration clang-tidy check" - }, - "fullDescription": { - "text": "objc-property-declaration clang-tidy check · Learn more", - "markdown": "objc-property-declaration clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/objc/property-declaration.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyObjcPropertyDeclaration", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppUEIncorrectEngineDirectory", - "shortDescription": { - "text": "Specified version of the engine project is not found" - }, - "fullDescription": { - "text": "Location of engine project does not correspond to the version of engine targeted by uproject. You might need to regenerate the project files.", - "markdown": "Location of engine project does not correspond to the version of engine targeted by uproject. You might need to regenerate the project files." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "CppUEIncorrectEngineDirectory", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Unreal Engine", - "index": 6, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnassignedReadonlyField.Compiler", - "shortDescription": { - "text": "Unassigned readonly field" - }, - "fullDescription": { - "text": "Readonly field is never assigned (compiler warning) Learn more...", - "markdown": "Readonly field is never assigned (compiler warning) [Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/misc/cs0649)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "UnassignedReadonlyField.Compiler", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticReservedIdentifier", - "shortDescription": { - "text": "reserved-identifier clang diagnostic" - }, - "fullDescription": { - "text": "-Wreserved-identifier clang diagnostic · Learn more", - "markdown": "-Wreserved-identifier clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wreserved-identifier)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticReservedIdentifier", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticFrameAddress", - "shortDescription": { - "text": "frame-address clang diagnostic" - }, - "fullDescription": { - "text": "-Wframe-address clang diagnostic · Learn more", - "markdown": "-Wframe-address clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wframe-address)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticFrameAddress", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit.DuplicateValues", - "shortDescription": { - "text": "NUnit. Duplicate values." - }, - "fullDescription": { - "text": "NUnit. Duplicate values produce unnecessary duplicate tests.", - "markdown": "NUnit. Duplicate values produce unnecessary duplicate tests." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NUnit.DuplicateValues", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/NUnit", - "index": 26, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseDeconstruction", - "shortDescription": { - "text": "Use deconstruction" - }, - "fullDescription": { - "text": "Decompose variable into positional components and replace variable usages with corresponding component variables", - "markdown": "Decompose variable into positional components and replace variable usages with corresponding component variables" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UseDeconstruction", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticProfileInstrOutOfDate", - "shortDescription": { - "text": "profile-instr-out-of-date clang diagnostic" - }, - "fullDescription": { - "text": "-Wprofile-instr-out-of-date clang diagnostic · Learn more", - "markdown": "-Wprofile-instr-out-of-date clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wprofile-instr-out-of-date)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticProfileInstrOutOfDate", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMicrosoftInaccessibleBase", - "shortDescription": { - "text": "microsoft-inaccessible-base clang diagnostic" - }, - "fullDescription": { - "text": "-Wmicrosoft-inaccessible-base clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-inaccessible-base clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-inaccessible-base)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftInaccessibleBase", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerOptinOsxCocoaLocalizabilityEmptyLocalizationContextChecker", - "shortDescription": { - "text": "optin.osx.cocoa.localizability.EmptyLocalizationContextChecker clang static analyzer check" - }, - "fullDescription": { - "text": "optin.osx.cocoa.localizability.EmptyLocalizationContextChecker clang static analyzer check · Learn more", - "markdown": "optin.osx.cocoa.localizability.EmptyLocalizationContextChecker clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerOptinOsxCocoaLocalizabilityEmptyLocalizationContextChecker", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilitySuspiciousCallArgument", - "shortDescription": { - "text": "readability-suspicious-call-argument clang-tidy check" - }, - "fullDescription": { - "text": "readability-suspicious-call-argument clang-tidy check · Learn more", - "markdown": "readability-suspicious-call-argument clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/suspicious-call-argument.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyReadabilitySuspiciousCallArgument", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyMiscUnusedAliasDecls", - "shortDescription": { - "text": "misc-unused-alias-decls clang-tidy check" - }, - "fullDescription": { - "text": "misc-unused-alias-decls clang-tidy check · Learn more", - "markdown": "misc-unused-alias-decls clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/unused-alias-decls.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyMiscUnusedAliasDecls", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticBracedScalarInit", - "shortDescription": { - "text": "braced-scalar-init clang diagnostic" - }, - "fullDescription": { - "text": "-Wbraced-scalar-init clang diagnostic · Learn more", - "markdown": "-Wbraced-scalar-init clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wbraced-scalar-init)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticBracedScalarInit", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RouteTemplates.RouteParameterIsNotPassedToMethod", - "shortDescription": { - "text": "Route parameter can be passed to method" - }, - "fullDescription": { - "text": "Route parameter can be passed to method", - "markdown": "Route parameter can be passed to method" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RouteTemplates.RouteParameterIsNotPassedToMethod", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "ASP.NET route templates/Code Notification", - "index": 48, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDanglingElse", - "shortDescription": { - "text": "dangling-else clang diagnostic" - }, - "fullDescription": { - "text": "-Wdangling-else clang diagnostic · Learn more", - "markdown": "-Wdangling-else clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdangling-else)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDanglingElse", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticTautologicalUnsignedCharZeroCompare", - "shortDescription": { - "text": "tautological-unsigned-char-zero-compare clang diagnostic" - }, - "fullDescription": { - "text": "-Wtautological-unsigned-char-zero-compare clang diagnostic · Learn more", - "markdown": "-Wtautological-unsigned-char-zero-compare clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wtautological-unsigned-char-zero-compare)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticTautologicalUnsignedCharZeroCompare", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "WebConfigErrors", - "shortDescription": { - "text": "WebConfig Errors" - }, - "fullDescription": { - "text": "WebConfig Errors", - "markdown": "WebConfig Errors" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "WebConfigErrors", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Web.Config/Non configurable", - "index": 137, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCppcoreguidelinesMisleadingCaptureDefaultByValue", - "shortDescription": { - "text": "cppcoreguidelines-misleading-capture-default-by-value clang-tidy check" - }, - "fullDescription": { - "text": "cppcoreguidelines-misleading-capture-default-by-value clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-misleading-capture-default-by-value clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/misleading-capture-default-by-value.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyCppcoreguidelinesMisleadingCaptureDefaultByValue", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerOptinCoreEnumCastOutOfRange", - "shortDescription": { - "text": "optin.core.EnumCastOutOfRange clang static analyzer check" - }, - "fullDescription": { - "text": "optin.core.EnumCastOutOfRange clang static analyzer check · Learn more", - "markdown": "optin.core.EnumCastOutOfRange clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerOptinCoreEnumCastOutOfRange", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMicrosoftInitFromPredefined", - "shortDescription": { - "text": "microsoft-init-from-predefined clang diagnostic" - }, - "fullDescription": { - "text": "-Wmicrosoft-init-from-predefined clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-init-from-predefined clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-init-from-predefined)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftInitFromPredefined", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "BadSwitchBracesIndent", - "shortDescription": { - "text": "Incorrect indent (around switch statement)" - }, - "fullDescription": { - "text": "Around switch statement Learn more...", - "markdown": "Around switch statement [Learn more...](https://www.jetbrains.com/help/rider/BadSwitchBracesIndent.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "BadSwitchBracesIndent", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Formatting", - "index": 24, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "DuplicateKeyCollectionInitialization", - "shortDescription": { - "text": "Duplicate keys in dictionary/set initialization" - }, - "fullDescription": { - "text": "A dictionary or a set may only contain one element with a given key. Using the same key more than once during collection initialization is likely a bug, and can result in a runtime exception.", - "markdown": "A dictionary or a set may only contain one element with a given key. Using the same key more than once during collection initialization is likely a bug, and can result in a runtime exception." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "DuplicateKeyCollectionInitialization", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS0660,CS0661", - "shortDescription": { - "text": "Operator '==' or operator '!=' with 'Object.Equals(object o)' and 'Object.GetHashCode()' not overridden" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://www.jetbrains.com/help/rider/CSharpWarnings_CS0660_CS0661.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS0660,CS0661", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticAtProtocol", - "shortDescription": { - "text": "at-protocol clang diagnostic" - }, - "fullDescription": { - "text": "-Wat-protocol clang diagnostic · Learn more", - "markdown": "-Wat-protocol clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wat-protocol)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticAtProtocol", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticOutOfLineDeclaration", - "shortDescription": { - "text": "out-of-line-declaration clang diagnostic" - }, - "fullDescription": { - "text": "-Wout-of-line-declaration clang diagnostic · Learn more", - "markdown": "-Wout-of-line-declaration clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wout-of-line-declaration)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticOutOfLineDeclaration", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnusedMethodReturnValue.Local", - "shortDescription": { - "text": "Method return value is never used (private accessibility)" - }, - "fullDescription": { - "text": "Method return value is never used Learn more...", - "markdown": "Method return value is never used [Learn more...](https://www.jetbrains.com/help/rider/UnusedMethodReturnValue.Local.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "UnusedMethodReturnValue.Local", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Asp.Image", - "shortDescription": { - "text": "Wrong image size" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Asp.Image", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Aspx/Potential Code Quality Issues", - "index": 64, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp17AttributeExtensions", - "shortDescription": { - "text": "c++17-attribute-extensions clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++17-attribute-extensions clang diagnostic · Learn more", - "markdown": "-Wc++17-attribute-extensions clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-17-attribute-extensions)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp17AttributeExtensions", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MoveLocalFunctionAfterJumpStatement", - "shortDescription": { - "text": "Put local function after 'return' or 'continue'" - }, - "fullDescription": { - "text": "Move a local function to the end of its containing scope and separate it from executable code with explicit 'return', 'continue', or 'yield break'. This can improve code readability because executable code will be clearly separated from helper functions that are not executed at their declaration sites.", - "markdown": "Move a local function to the end of its containing scope and separate it from executable code with explicit 'return', 'continue', or 'yield break'. This can improve code readability because executable code will be clearly separated from helper functions that are not executed at their declaration sites." - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "MoveLocalFunctionAfterJumpStatement", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticThreadSafetyBeta", - "shortDescription": { - "text": "thread-safety-beta clang diagnostic" - }, - "fullDescription": { - "text": "-Wthread-safety-beta clang diagnostic · Learn more", - "markdown": "-Wthread-safety-beta clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wthread-safety-beta)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticThreadSafetyBeta", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EntityFramework.ModelValidation.CircularDependency", - "shortDescription": { - "text": "The relationship defined by this property contributes to a dependency loop" - }, - "fullDescription": { - "text": "Reports entity properties that contribute to creating dependency loops Learn more...", - "markdown": "Reports entity properties that contribute to creating dependency loops [Learn more...](https://www.jetbrains.com/help/rider/EntityFramework.ModelValidation.CircularDependency.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "EntityFramework.ModelValidation.CircularDependency", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Entity Framework", - "index": 37, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NullableWarningSuppressionIsUsed", - "shortDescription": { - "text": "A suppressed nullable warning might hide an underlying problem" - }, - "fullDescription": { - "text": "A suppressed nullable warning might hide an underlying problem such as a nullable value that was thought to be already handled. This might be a result of a refactoring introducing nullable values on execution paths where they were not allowed.", - "markdown": "A suppressed nullable warning might hide an underlying problem such as a nullable value that was thought to be already handled. This might be a result of a refactoring introducing nullable values on execution paths where they were not allowed." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "NullableWarningSuppressionIsUsed", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticFormatInvalidSpecifier", - "shortDescription": { - "text": "format-invalid-specifier clang diagnostic" - }, - "fullDescription": { - "text": "-Wformat-invalid-specifier clang diagnostic · Learn more", - "markdown": "-Wformat-invalid-specifier clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wformat-invalid-specifier)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticFormatInvalidSpecifier", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticOverlengthStrings", - "shortDescription": { - "text": "overlength-strings clang diagnostic" - }, - "fullDescription": { - "text": "-Woverlength-strings clang diagnostic · Learn more", - "markdown": "-Woverlength-strings clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#woverlength-strings)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticOverlengthStrings", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticArrayBoundsPointerArithmetic", - "shortDescription": { - "text": "array-bounds-pointer-arithmetic clang diagnostic" - }, - "fullDescription": { - "text": "-Warray-bounds-pointer-arithmetic clang diagnostic · Learn more", - "markdown": "-Warray-bounds-pointer-arithmetic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#warray-bounds-pointer-arithmetic)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticArrayBoundsPointerArithmetic", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyHicppNoMalloc", - "shortDescription": { - "text": "hicpp-no-malloc clang-tidy check" - }, - "fullDescription": { - "text": "hicpp-no-malloc clang-tidy check · Learn more", - "markdown": "hicpp-no-malloc clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/no-malloc.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyHicppNoMalloc", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.ConstructorWarning", - "shortDescription": { - "text": "Constructor not resolved" - }, - "fullDescription": { - "text": "Constructor not resolved", - "markdown": "Constructor not resolved" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Xaml.ConstructorWarning", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Code Notification", - "index": 5, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticOverridingOption", - "shortDescription": { - "text": "overriding-option clang diagnostic" - }, - "fullDescription": { - "text": "-Woverriding-option clang diagnostic · Learn more", - "markdown": "-Woverriding-option clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#woverriding-option)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticOverridingOption", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBWarnings__BC42309", - "shortDescription": { - "text": "XML comment has a tag with a 'cref' attribute that could not be resolved" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://docs.microsoft.com/en-us/dotnet/visual-basic/misc/bc42309)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "VBWarnings__BC42309", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Compiler Warnings", - "index": 110, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticGnuFlexibleArrayUnionMember", - "shortDescription": { - "text": "gnu-flexible-array-union-member clang diagnostic" - }, - "fullDescription": { - "text": "-Wgnu-flexible-array-union-member clang diagnostic · Learn more", - "markdown": "-Wgnu-flexible-array-union-member clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-flexible-array-union-member)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticGnuFlexibleArrayUnionMember", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMissingMethodReturnType", - "shortDescription": { - "text": "missing-method-return-type clang diagnostic" - }, - "fullDescription": { - "text": "-Wmissing-method-return-type clang diagnostic · Learn more", - "markdown": "-Wmissing-method-return-type clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmissing-method-return-type)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMissingMethodReturnType", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit.AutoFixture.MissedTestOrTestFixtureAttribute", - "shortDescription": { - "text": "NUnit.AutoFixture. Missing Test or TestFixture attribute." - }, - "fullDescription": { - "text": "NUnit.AutoFixture. Missing [Test] or [TestFixture] attribute, test method will not be run.", - "markdown": "NUnit.AutoFixture. Missing \\[Test\\] or \\[TestFixture\\] attribute, test method will not be run." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NUnit.AutoFixture.MissedTestOrTestFixtureAttribute", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/NUnit", - "index": 26, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticFlagEnum", - "shortDescription": { - "text": "flag-enum clang diagnostic" - }, - "fullDescription": { - "text": "-Wflag-enum clang diagnostic · Learn more", - "markdown": "-Wflag-enum clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wflag-enum)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticFlagEnum", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseNameofForDependencyProperty", - "shortDescription": { - "text": "Use 'nameof' expression when registering a DependencyProperty" - }, - "fullDescription": { - "text": "Use 'nameof(ClrProperty)' when registering a DependencyProperty instead of a hardcoded name.", - "markdown": "Use 'nameof(ClrProperty)' when registering a DependencyProperty instead of a hardcoded name." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UseNameofForDependencyProperty", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyAlteraKernelNameRestriction", - "shortDescription": { - "text": "altera-kernel-name-restriction clang-tidy check" - }, - "fullDescription": { - "text": "altera-kernel-name-restriction clang-tidy check · Learn more", - "markdown": "altera-kernel-name-restriction clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/altera/kernel-name-restriction.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyAlteraKernelNameRestriction", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.InvalidResourceTargetType", - "shortDescription": { - "text": "XAML style of invalid target type" - }, - "fullDescription": { - "text": "XAML style of invalid target type", - "markdown": "XAML style of invalid target type" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "Xaml.InvalidResourceTargetType", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Code Notification", - "index": 5, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBWarnings__BC42304", - "shortDescription": { - "text": "Syntax error in XML comment" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://docs.microsoft.com/en-us/dotnet/visual-basic/misc/bc42304)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "VBWarnings__BC42304", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Compiler Warnings", - "index": 110, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticInvalidStaticAssertMessage", - "shortDescription": { - "text": "invalid-static-assert-message clang diagnostic" - }, - "fullDescription": { - "text": "-Winvalid-static-assert-message clang diagnostic · Learn more", - "markdown": "-Winvalid-static-assert-message clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winvalid-static-assert-message)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticInvalidStaticAssertMessage", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantCallerArgumentExpressionDefaultValue", - "shortDescription": { - "text": "Redundant argument passed to caller argument expression parameter" - }, - "fullDescription": { - "text": "Corresponding parameter has 'CallerArgumentExpression' attribute applied, so argument could be omitted Learn more...", - "markdown": "Corresponding parameter has 'CallerArgumentExpression' attribute applied, so argument could be omitted [Learn more...](https://www.jetbrains.com/help/rider/RedundantCallerArgumentExpressionDefaultValue.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantCallerArgumentExpressionDefaultValue", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppRedundantVoidArgumentList", - "shortDescription": { - "text": "Redundant void argument list" - }, - "fullDescription": { - "text": "Redundant void argument list", - "markdown": "Redundant void argument list" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppRedundantVoidArgumentList", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Redundancies in Code", - "index": 34, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticNullabilityDeclspec", - "shortDescription": { - "text": "nullability-declspec clang diagnostic" - }, - "fullDescription": { - "text": "-Wnullability-declspec clang diagnostic · Learn more", - "markdown": "-Wnullability-declspec clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnullability-declspec)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticNullabilityDeclspec", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppInconsistentNaming", - "shortDescription": { - "text": "Inconsistent Naming" - }, - "fullDescription": { - "text": "Name doesn't match naming style defined for this kind of symbol", - "markdown": "Name doesn't match naming style defined for this kind of symbol" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppInconsistentNaming", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Constraints Violations", - "index": 138, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMicrosoftExplicitConstructorCall", - "shortDescription": { - "text": "microsoft-explicit-constructor-call clang diagnostic" - }, - "fullDescription": { - "text": "-Wmicrosoft-explicit-constructor-call clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-explicit-constructor-call clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-explicit-constructor-call)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftExplicitConstructorCall", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticOldStyleCast", - "shortDescription": { - "text": "old-style-cast clang diagnostic" - }, - "fullDescription": { - "text": "-Wold-style-cast clang diagnostic · Learn more", - "markdown": "-Wold-style-cast clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wold-style-cast)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticOldStyleCast", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUserDefinedLiterals", - "shortDescription": { - "text": "user-defined-literals clang diagnostic" - }, - "fullDescription": { - "text": "-Wuser-defined-literals clang diagnostic · Learn more", - "markdown": "-Wuser-defined-literals clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wuser-defined-literals)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUserDefinedLiterals", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConvertIfStatementToNullCoalescingAssignment", - "shortDescription": { - "text": "'if' statement can be rewritten as '??=' assignment" - }, - "fullDescription": { - "text": "Convert the following code: \r\n if (x = null) x = expr;\r\n To: \r\n x ??= expr;", - "markdown": "Convert the following code:\n\n```\n\r\n if (x = null) x = expr;\r\n```\n\nTo:\n\n```\n\r\n x ??= expr;\r\n```" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ConvertIfStatementToNullCoalescingAssignment", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MergeConditionalExpression", - "shortDescription": { - "text": "Merge conditional ?: expression into conditional access" - }, - "fullDescription": { - "text": "Merge conditional expression (?: ternary operator) into conditional access expression Learn more...", - "markdown": "Merge conditional expression (?: ternary operator) into conditional access expression [Learn more...](https://www.jetbrains.com/help/rider/MergeConditionalExpression.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "MergeConditionalExpression", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithOfType.2", - "shortDescription": { - "text": "Replace with OfType<T>()" - }, - "fullDescription": { - "text": "$seq$.Where($x$ => $x$ is $T$).Select($y$ => $y$ as $T$)", - "markdown": "$seq$.Where($x$ =\\> $x$ is $T$).Select($y$ =\\> $y$ as $T$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithOfType.2", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithOfType.1", - "shortDescription": { - "text": "Replace with OfType<T>()" - }, - "fullDescription": { - "text": "$seq$.SelectNotNull($x$ => $x$ as $T$)", - "markdown": "$seq$.SelectNotNull($x$ =\\> $x$ as $T$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithOfType.1", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnsupportedDllBaseClassTemplate", - "shortDescription": { - "text": "unsupported-dll-base-class-template clang diagnostic" - }, - "fullDescription": { - "text": "-Wunsupported-dll-base-class-template clang diagnostic · Learn more", - "markdown": "-Wunsupported-dll-base-class-template clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunsupported-dll-base-class-template)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnsupportedDllBaseClassTemplate", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUndefinedReinterpretCast", - "shortDescription": { - "text": "undefined-reinterpret-cast clang diagnostic" - }, - "fullDescription": { - "text": "-Wundefined-reinterpret-cast clang diagnostic · Learn more", - "markdown": "-Wundefined-reinterpret-cast clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wundefined-reinterpret-cast)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUndefinedReinterpretCast", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantNameQualifier", - "shortDescription": { - "text": "Redundant name qualifier" - }, - "fullDescription": { - "text": "Redundant use of qualifier for a type name or static member usage Learn more...", - "markdown": "Redundant use of qualifier for a type name or static member usage [Learn more...](https://www.jetbrains.com/help/rider/RedundantNameQualifier.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "RedundantNameQualifier", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithOfType.3", - "shortDescription": { - "text": "Replace with OfType<T>()" - }, - "fullDescription": { - "text": "$seq$.Where($x$ => $x$ is $T$).Select($y$ => ($T$)$y$)", - "markdown": "$seq$.Where($x$ =\\> $x$ is $T$).Select($y$ =\\> ($T$)$y$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithOfType.3", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnicodeHomoglyph", - "shortDescription": { - "text": "unicode-homoglyph clang diagnostic" - }, - "fullDescription": { - "text": "-Wunicode-homoglyph clang diagnostic · Learn more", - "markdown": "-Wunicode-homoglyph clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunicode-homoglyph)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnicodeHomoglyph", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit.RangeStepValueMustNotBeZero", - "shortDescription": { - "text": "NUnit. Range 'step' parameter value must be non-zero." - }, - "fullDescription": { - "text": "NUnit. 'step' parameter value of [Range] is incorrect, it must be non-zero. Learn more...", - "markdown": "NUnit. 'step' parameter value of \\[Range\\] is incorrect, it must be non-zero. [Learn more...](https://www.jetbrains.com/help/rider/NUnit.RangeStepValueMustNotBeZero.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NUnit.RangeStepValueMustNotBeZero", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/NUnit", - "index": 26, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyHicppExplicitConversions", - "shortDescription": { - "text": "hicpp-explicit-conversions clang-tidy check" - }, - "fullDescription": { - "text": "hicpp-explicit-conversions clang-tidy check · Learn more", - "markdown": "hicpp-explicit-conversions clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/explicit-conversions.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyHicppExplicitConversions", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneMacroRepeatedSideEffects", - "shortDescription": { - "text": "bugprone-macro-repeated-side-effects clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-macro-repeated-side-effects clang-tidy check · Learn more", - "markdown": "bugprone-macro-repeated-side-effects clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/macro-repeated-side-effects.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneMacroRepeatedSideEffects", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityMisleadingIndentation", - "shortDescription": { - "text": "readability-misleading-indentation clang-tidy check" - }, - "fullDescription": { - "text": "readability-misleading-indentation clang-tidy check · Learn more", - "markdown": "readability-misleading-indentation clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/misleading-indentation.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityMisleadingIndentation", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "FieldCanBeMadeReadOnly.Global", - "shortDescription": { - "text": "Field can be made readonly (non-private accessibility)" - }, - "fullDescription": { - "text": "Field has no write usages after initialization and can be made readonly Learn more...", - "markdown": "Field has no write usages after initialization and can be made readonly [Learn more...](https://www.jetbrains.com/help/rider/FieldCanBeMadeReadOnly.Global.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "FieldCanBeMadeReadOnly.Global", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantConfigureAwait", - "shortDescription": { - "text": "Redundant context capturing with 'ConfigureAwait'" - }, - "fullDescription": { - "text": "Redundant 'ConfigureAwait(true)' or 'ConfigureAwait(ConfigureAwaitOptions.ContinueOnCapturedContext)' can be removed. This inspection is controlled by the 'ConfigureAwait analysis mode' project level property, which is set to 'Disabled' by default. Set 'ConfigureAwait analysis mode' project level property to 'UI' to analyze 'await' expressions and statements for redundant 'ConfigureAwait' calls. Learn more...", - "markdown": "Redundant 'ConfigureAwait(true)' or 'ConfigureAwait(ConfigureAwaitOptions.ContinueOnCapturedContext)' can be removed. This inspection is controlled by the 'ConfigureAwait analysis mode' project level property, which is set to 'Disabled' by default. Set 'ConfigureAwait analysis mode' project level property to 'UI' to analyze 'await' expressions and statements for redundant 'ConfigureAwait' calls. [Learn more...](https://www.jetbrains.com/help/rider/RedundantConfigureAwait.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RedundantConfigureAwait", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "BadNamespaceBracesIndent", - "shortDescription": { - "text": "Incorrect indent (around namespace braces)" - }, - "fullDescription": { - "text": "Around namespace braces Learn more...", - "markdown": "Around namespace braces [Learn more...](https://www.jetbrains.com/help/rider/BadNamespaceBracesIndent.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "BadNamespaceBracesIndent", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Formatting", - "index": 24, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ParameterHidesPrimaryConstructorParameter", - "shortDescription": { - "text": "Parameter hides primary constructor parameter" - }, - "fullDescription": { - "text": "Method parameter has the same name as a primary constructor parameter and hides it Learn more...", - "markdown": "Method parameter has the same name as a primary constructor parameter and hides it [Learn more...](https://www.jetbrains.com/help/rider/ParameterHidesPrimaryConstructorParameter.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "ParameterHidesPrimaryConstructorParameter", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "FieldHidesInterfacePropertyWithDefaultImplementation", - "shortDescription": { - "text": "Field hides property with default implementation in interface" - }, - "fullDescription": { - "text": "Property with the same name and default implementation exists in an implemented interface", - "markdown": "Property with the same name and default implementation exists in an implemented interface" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "FieldHidesInterfacePropertyWithDefaultImplementation", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS1030", - "shortDescription": { - "text": "'#warning' directive" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/ckcykyd4.aspx)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS1030", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.UnityObjectNullComparison", - "shortDescription": { - "text": "Implicit check for Unity object lifetime" - }, - "fullDescription": { - "text": "Calls the custom equality operator defined on 'UnityEngine.Object'. This operator checks if the underlying Unity engine object has been destroyed. Prefer implicit bool comparison if the lifetime check is intended, or explicitly use 'is' operator or 'object.ReferenceEquals()' for a standard (and quicker) CLR null check. Learn more...", - "markdown": "Calls the custom equality operator defined on 'UnityEngine.Object'. This operator checks if the underlying Unity engine object has been destroyed. Prefer implicit bool comparison if the lifetime check is intended, or explicitly use 'is' operator or 'object.ReferenceEquals()' for a standard (and quicker) CLR null check. [Learn more...](https://github.com/JetBrains/resharper-unity/wiki/Possible-unintended-lifetime-check-of-underlying-Unity-engine-object)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "Unity.UnityObjectNullComparison", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyLlvmQualifiedAuto", - "shortDescription": { - "text": "llvm-qualified-auto clang-tidy check" - }, - "fullDescription": { - "text": "llvm-qualified-auto clang-tidy check · Learn more", - "markdown": "llvm-qualified-auto clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/llvm/qualified-auto.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyLlvmQualifiedAuto", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ResourceItemNotResolved", - "shortDescription": { - "text": "Cannot resolve resource item" - }, - "fullDescription": { - "text": "Cannot resolve resource item", - "markdown": "Cannot resolve resource item" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "ResourceItemNotResolved", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "InheritdocInvalidUsage", - "shortDescription": { - "text": "Usage of <inheritdoc /> is invalid" - }, - "fullDescription": { - "text": "Usage of is invalid", - "markdown": "Usage of is invalid" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "InheritdocInvalidUsage", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerOsxCocoaRunLoopAutoreleaseLeak", - "shortDescription": { - "text": "osx.cocoa.RunLoopAutoreleaseLeak clang static analyzer check" - }, - "fullDescription": { - "text": "osx.cocoa.RunLoopAutoreleaseLeak clang static analyzer check · Learn more", - "markdown": "osx.cocoa.RunLoopAutoreleaseLeak clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerOsxCocoaRunLoopAutoreleaseLeak", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticComma", - "shortDescription": { - "text": "comma clang diagnostic" - }, - "fullDescription": { - "text": "-Wcomma clang diagnostic · Learn more", - "markdown": "-Wcomma clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcomma)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticComma", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VirtualMemberNeverOverridden.Local", - "shortDescription": { - "text": "Virtual (overridable) member is never overridden (private accessibility)" - }, - "fullDescription": { - "text": "Virtual (overridable) member is never overridden and so the 'virtual' ('overridable') modifier can be removed Learn more...", - "markdown": "Virtual (overridable) member is never overridden and so the 'virtual' ('overridable') modifier can be removed [Learn more...](https://www.jetbrains.com/help/rider/VirtualMemberNeverOverridden.Local.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VirtualMemberNeverOverridden.Local", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantAlwaysMatchSubpattern", - "shortDescription": { - "text": "Subpattern that always matches is redundant" - }, - "fullDescription": { - "text": "Subpattern containing discard pattern or empty object pattern can be removed", - "markdown": "Subpattern containing discard pattern or empty object pattern can be removed" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "RedundantAlwaysMatchSubpattern", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticAmbiguousMacro", - "shortDescription": { - "text": "ambiguous-macro clang diagnostic" - }, - "fullDescription": { - "text": "-Wambiguous-macro clang diagnostic · Learn more", - "markdown": "-Wambiguous-macro clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wambiguous-macro)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticAmbiguousMacro", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.DependencyPropertyResolveError", - "shortDescription": { - "text": "Dependency property descriptor field missing" - }, - "fullDescription": { - "text": "Dependency property descriptor field missing or implementation does not comply with Microsoft style guide", - "markdown": "Dependency property descriptor field missing or implementation does not comply with Microsoft style guide" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Xaml.DependencyPropertyResolveError", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Code Notification", - "index": 5, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ParameterTypeCanBeEnumerable.Local", - "shortDescription": { - "text": "Parameter type can be IEnumerable<T> (private accessibility)" - }, - "fullDescription": { - "text": "Parameter can be declared with IEnumerable type but it is declared with more specific type (e.g. List) Learn more...", - "markdown": "Parameter can be declared with IEnumerable type but it is declared with more specific type (e.g. List) [Learn more...](https://www.jetbrains.com/help/rider/ParameterTypeCanBeEnumerable.Local.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ParameterTypeCanBeEnumerable.Local", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantAssignment", - "shortDescription": { - "text": "Assignment is not used" - }, - "fullDescription": { - "text": "Value assigned to a local variable or parameter is not used in any execution path Learn more...", - "markdown": "Value assigned to a local variable or parameter is not used in any execution path [Learn more...](https://www.jetbrains.com/help/rider/RedundantAssignment.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "RedundantAssignment", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCppcoreguidelinesUseDefaultMemberInit", - "shortDescription": { - "text": "cppcoreguidelines-use-default-member-init clang-tidy check" - }, - "fullDescription": { - "text": "cppcoreguidelines-use-default-member-init clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-use-default-member-init clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/use-default-member-init.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCppcoreguidelinesUseDefaultMemberInit", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RemoveUnnecessaryImportsFixable", - "shortDescription": { - "text": "RoslynAnalyzers " - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RemoveUnnecessaryImportsFixable", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyModernizeConcatNestedNamespaces", - "shortDescription": { - "text": "modernize-concat-nested-namespaces clang-tidy check" - }, - "fullDescription": { - "text": "modernize-concat-nested-namespaces clang-tidy check · Learn more", - "markdown": "modernize-concat-nested-namespaces clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/concat-nested-namespaces.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyModernizeConcatNestedNamespaces", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticC99Compat", - "shortDescription": { - "text": "c99-compat clang diagnostic" - }, - "fullDescription": { - "text": "-Wc99-compat clang diagnostic · Learn more", - "markdown": "-Wc99-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc99-compat)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticC99Compat", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCertMsc24C", - "shortDescription": { - "text": "cert-msc24-c clang-tidy check" - }, - "fullDescription": { - "text": "cert-msc24-c clang-tidy check · Learn more", - "markdown": "cert-msc24-c clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/msc24-c.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCertMsc24C", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMicrosoftUsingDecl", - "shortDescription": { - "text": "microsoft-using-decl clang diagnostic" - }, - "fullDescription": { - "text": "-Wmicrosoft-using-decl clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-using-decl clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-using-decl)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftUsingDecl", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyAbseilRedundantStrcatCalls", - "shortDescription": { - "text": "abseil-redundant-strcat-calls clang-tidy check" - }, - "fullDescription": { - "text": "abseil-redundant-strcat-calls clang-tidy check · Learn more", - "markdown": "abseil-redundant-strcat-calls clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/redundant-strcat-calls.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyAbseilRedundantStrcatCalls", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUninitialized", - "shortDescription": { - "text": "uninitialized clang diagnostic" - }, - "fullDescription": { - "text": "-Wuninitialized clang diagnostic · Learn more", - "markdown": "-Wuninitialized clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wuninitialized)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUninitialized", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.BurstForeachNotSupported", - "shortDescription": { - "text": "The 'foreach' construction is not supported" - }, - "fullDescription": { - "text": "The 'foreach' construction is not supported", - "markdown": "The 'foreach' construction is not supported" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.BurstForeachNotSupported", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity Burst Compiler Warnings", - "index": 57, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Html.PathError", - "shortDescription": { - "text": "Path error" - }, - "fullDescription": { - "text": "Path error", - "markdown": "Path error" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Html.PathError", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HTML/Potential Code Quality Issues", - "index": 54, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPacked", - "shortDescription": { - "text": "packed clang diagnostic" - }, - "fullDescription": { - "text": "-Wpacked clang diagnostic · Learn more", - "markdown": "-Wpacked clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpacked)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPacked", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ExplicitCallerInfoArgument", - "shortDescription": { - "text": "Explicit argument passed to parameter with caller info attribute" - }, - "fullDescription": { - "text": "Compiler generates correct value for parameters marked with [CallerMemberName], [CallerFilePath], [CallerLineNumber], or [CallerArgumentExpression] attributes", - "markdown": "Compiler generates correct value for parameters marked with \\[CallerMemberName\\], \\[CallerFilePath\\], \\[CallerLineNumber\\], or \\[CallerArgumentExpression\\] attributes" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "ExplicitCallerInfoArgument", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityRedundantInlineSpecifier", - "shortDescription": { - "text": "readability-redundant-inline-specifier clang-tidy check" - }, - "fullDescription": { - "text": "readability-redundant-inline-specifier clang-tidy check · Learn more", - "markdown": "readability-redundant-inline-specifier clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/redundant-inline-specifier.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityRedundantInlineSpecifier", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2235", - "shortDescription": { - "text": "RoslynAnalyzers Mark all non-serializable fields" - }, - "fullDescription": { - "text": "An instance field of a type that is not serializable is declared in a type that is serializable.", - "markdown": "An instance field of a type that is not serializable is declared in a type that is serializable." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2235", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2237", - "shortDescription": { - "text": "RoslynAnalyzers Mark ISerializable types with serializable" - }, - "fullDescription": { - "text": "To be recognized by the common language runtime as serializable, types must be marked by using the SerializableAttribute attribute even when the type uses a custom serialization routine through implementation of the ISerializable interface.", - "markdown": "To be recognized by the common language runtime as serializable, types must be marked by using the SerializableAttribute attribute even when the type uses a custom serialization routine through implementation of the ISerializable interface." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2237", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerOptinCplusplusUninitializedObject", - "shortDescription": { - "text": "optin.cplusplus.UninitializedObject clang static analyzer check" - }, - "fullDescription": { - "text": "optin.cplusplus.UninitializedObject clang static analyzer check · Learn more", - "markdown": "optin.cplusplus.UninitializedObject clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerOptinCplusplusUninitializedObject", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDelimitedEscapeSequenceExtension", - "shortDescription": { - "text": "delimited-escape-sequence-extension clang diagnostic" - }, - "fullDescription": { - "text": "-Wdelimited-escape-sequence-extension clang diagnostic · Learn more", - "markdown": "-Wdelimited-escape-sequence-extension clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdelimited-escape-sequence-extension)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDelimitedEscapeSequenceExtension", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8819", - "shortDescription": { - "text": "Nullability of reference types in return type doesn't match partial method declaration." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/nullable-warnings#mismatch-in-nullability-declaration)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8819", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppHidingFunction", - "shortDescription": { - "text": "Class member function hiding a non-virtual function from a base class" - }, - "fullDescription": { - "text": "Class member function hides a non-virtual function from a base class Learn more...", - "markdown": "Class member function hides a non-virtual function from a base class [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Res-reuse)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppHidingFunction", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBErrors", - "shortDescription": { - "text": "VB Compiler Errors" - }, - "fullDescription": { - "text": "VB Compiler Errors", - "markdown": "VB Compiler Errors" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "VBErrors", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Non configurable", - "index": 139, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "LoopCanBeConvertedToQuery", - "shortDescription": { - "text": "Loop can be converted into LINQ-expression" - }, - "fullDescription": { - "text": "A 'foreach' ('For Each' for VB.NET) or 'for' statement can be converted into a LINQ-expression Learn more...", - "markdown": "A 'foreach' ('For Each' for VB.NET) or 'for' statement can be converted into a LINQ-expression [Learn more...](https://www.jetbrains.com/help/rider/LoopCanBeConvertedToQuery.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "LoopCanBeConvertedToQuery", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCertMsc51Cpp", - "shortDescription": { - "text": "cert-msc51-cpp clang-tidy check" - }, - "fullDescription": { - "text": "cert-msc51-cpp clang-tidy check · Learn more", - "markdown": "cert-msc51-cpp clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/msc51-cpp.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyCertMsc51Cpp", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SymbolFromNotCopiedLocallyReferenceUsedWarning", - "shortDescription": { - "text": "Symbol from module that might be missing at runtime" - }, - "fullDescription": { - "text": "Highlights symbols used from a referenced module that is not copied locally Learn more...", - "markdown": "Highlights symbols used from a referenced module that is not copied locally [Learn more...](https://www.jetbrains.com/help/rider/SymbolFromNotCopiedLocallyReferenceUsedWarning.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "SymbolFromNotCopiedLocallyReferenceUsedWarning", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMaxTokens", - "shortDescription": { - "text": "max-tokens clang diagnostic" - }, - "fullDescription": { - "text": "-Wmax-tokens clang diagnostic · Learn more", - "markdown": "-Wmax-tokens clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmax-tokens)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMaxTokens", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticModuleFileConfigMismatch", - "shortDescription": { - "text": "module-file-config-mismatch clang diagnostic" - }, - "fullDescription": { - "text": "-Wmodule-file-config-mismatch clang diagnostic · Learn more", - "markdown": "-Wmodule-file-config-mismatch clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmodule-file-config-mismatch)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticModuleFileConfigMismatch", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppVirtualFunctionCallInsideCtor", - "shortDescription": { - "text": "Call to a virtual function inside a constructor/destructor is resolved at compile time" - }, - "fullDescription": { - "text": "Call to a virtual function inside a constructor/destructor is resolved at compile time Learn more...", - "markdown": "Call to a virtual function inside a constructor/destructor is resolved at compile time [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rc-ctor-virtual)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppVirtualFunctionCallInsideCtor", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticVoidPtrDereference", - "shortDescription": { - "text": "void-ptr-dereference clang diagnostic" - }, - "fullDescription": { - "text": "-Wvoid-ptr-dereference clang diagnostic · Learn more", - "markdown": "-Wvoid-ptr-dereference clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wvoid-ptr-dereference)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticVoidPtrDereference", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2241", - "shortDescription": { - "text": "RoslynAnalyzers Provide correct arguments to formatting methods" - }, - "fullDescription": { - "text": "The format argument that is passed to System.String.Format does not contain a format item that corresponds to each object argument, or vice versa.", - "markdown": "The format argument that is passed to System.String.Format does not contain a format item that corresponds to each object argument, or vice versa." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA2241", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.PropertyDrawerOnGUIBase", - "shortDescription": { - "text": "Avoid 'base.OnGUI()' in classes derived from 'PropertyDrawer'" - }, - "fullDescription": { - "text": "The default implementation for 'OnGUI' in 'PropertyDrawer' will print 'No GUI Implemented' in the Unity inspector. Learn more...", - "markdown": "The default implementation for 'OnGUI' in 'PropertyDrawer' will print 'No GUI Implemented' in the Unity inspector. [Learn more...](https://github.com/JetBrains/resharper-unity/wiki/base.OnGUI()-will-print-%22no-GUI-implemented%22-in-the-Unity-inspector)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.PropertyDrawerOnGUIBase", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2242", - "shortDescription": { - "text": "RoslynAnalyzers Test for NaN correctly" - }, - "fullDescription": { - "text": "This expression tests a value against Single.Nan or Double.Nan. Use Single.IsNan(Single) or Double.IsNan(Double) to test the value.", - "markdown": "This expression tests a value against Single.Nan or Double.Nan. Use Single.IsNan(Single) or Double.IsNan(Double) to test the value." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA2242", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityContainerContains", - "shortDescription": { - "text": "readability-container-contains clang-tidy check" - }, - "fullDescription": { - "text": "readability-container-contains clang-tidy check · Learn more", - "markdown": "readability-container-contains clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/container-contains.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityContainerContains", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2243", - "shortDescription": { - "text": "RoslynAnalyzers Attribute string literals should parse correctly" - }, - "fullDescription": { - "text": "The string literal parameter of an attribute does not parse correctly for a URL, a GUID, or a version.", - "markdown": "The string literal parameter of an attribute does not parse correctly for a URL, a GUID, or a version." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2243", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyAndroidCloexecInotifyInit", - "shortDescription": { - "text": "android-cloexec-inotify-init clang-tidy check" - }, - "fullDescription": { - "text": "android-cloexec-inotify-init clang-tidy check · Learn more", - "markdown": "android-cloexec-inotify-init clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/android/cloexec-inotify-init.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyAndroidCloexecInotifyInit", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2244", - "shortDescription": { - "text": "RoslynAnalyzers Do not duplicate indexed element initializations" - }, - "fullDescription": { - "text": "Indexed elements in objects initializers must initialize unique elements. A duplicate index might overwrite a previous element initialization.", - "markdown": "Indexed elements in objects initializers must initialize unique elements. A duplicate index might overwrite a previous element initialization." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA2244", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2245", - "shortDescription": { - "text": "RoslynAnalyzers Do not assign a property to itself" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA2245", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticInlineNewDelete", - "shortDescription": { - "text": "inline-new-delete clang diagnostic" - }, - "fullDescription": { - "text": "-Winline-new-delete clang diagnostic · Learn more", - "markdown": "-Winline-new-delete clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winline-new-delete)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticInlineNewDelete", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2246", - "shortDescription": { - "text": "RoslynAnalyzers Assigning symbol and its member in the same statement" - }, - "fullDescription": { - "text": "Assigning to a symbol and its member (field/property) in the same statement is not recommended. It is not clear if the member access was intended to use symbol's old value prior to the assignment or new value from the assignment in this statement. For clarity, consider splitting the assignments into separate statements.", - "markdown": "Assigning to a symbol and its member (field/property) in the same statement is not recommended. It is not clear if the member access was intended to use symbol's old value prior to the assignment or new value from the assignment in this statement. For clarity, consider splitting the assignments into separate statements." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA2246", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PossibleStructMemberModificationOfNonVariableStruct", - "shortDescription": { - "text": "Value assigned to a property of non-variable qualifier expression can be lost" - }, - "fullDescription": { - "text": "Value assigned to a property of non-variable qualifier expression can be lost if struct type will be substituted as generic type argument", - "markdown": "Value assigned to a property of non-variable qualifier expression can be lost if struct type will be substituted as generic type argument" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "PossibleStructMemberModificationOfNonVariableStruct", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2247", - "shortDescription": { - "text": "RoslynAnalyzers Argument passed to TaskCompletionSource constructor should be TaskCreationOptions enum instead of TaskContinuationOptions enum" - }, - "fullDescription": { - "text": "TaskCompletionSource has constructors that take TaskCreationOptions that control the underlying Task, and constructors that take object state that's stored in the task. Accidentally passing a TaskContinuationOptions instead of a TaskCreationOptions will result in the call treating the options as state.", - "markdown": "TaskCompletionSource has constructors that take TaskCreationOptions that control the underlying Task, and constructors that take object state that's stored in the task. Accidentally passing a TaskContinuationOptions instead of a TaskCreationOptions will result in the call treating the options as state." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2247", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyHicppInvalidAccessMoved", - "shortDescription": { - "text": "hicpp-invalid-access-moved clang-tidy check" - }, - "fullDescription": { - "text": "hicpp-invalid-access-moved clang-tidy check · Learn more", - "markdown": "hicpp-invalid-access-moved clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/invalid-access-moved.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyHicppInvalidAccessMoved", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2248", - "shortDescription": { - "text": "RoslynAnalyzers Provide correct 'enum' argument to 'Enum.HasFlag'" - }, - "fullDescription": { - "text": "'Enum.HasFlag' method expects the 'enum' argument to be of the same 'enum' type as the instance on which the method is invoked and that this 'enum' is marked with 'System.FlagsAttribute'. If these are different 'enum' types, an unhandled exception will be thrown at runtime. If the 'enum' type is not marked with 'System.FlagsAttribute' the call will always return 'false' at runtime.", - "markdown": "'Enum.HasFlag' method expects the 'enum' argument to be of the same 'enum' type as the instance on which the method is invoked and that this 'enum' is marked with 'System.FlagsAttribute'. If these are different 'enum' types, an unhandled exception will be thrown at runtime. If the 'enum' type is not marked with 'System.FlagsAttribute' the call will always return 'false' at runtime." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA2248", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "BadControlBracesLineBreaks", - "shortDescription": { - "text": "Incorrect line breaks (around statement braces)" - }, - "fullDescription": { - "text": "Around statement braces Learn more...", - "markdown": "Around statement braces [Learn more...](https://www.jetbrains.com/help/rider/BadControlBracesLineBreaks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "BadControlBracesLineBreaks", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Formatting", - "index": 24, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2249", - "shortDescription": { - "text": "RoslynAnalyzers Consider using 'string.Contains' instead of 'string.IndexOf'" - }, - "fullDescription": { - "text": "Calls to 'string.IndexOf' where the result is used to check for the presence/absence of a substring can be replaced by 'string.Contains'.", - "markdown": "Calls to 'string.IndexOf' where the result is used to check for the presence/absence of a substring can be replaced by 'string.Contains'." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA2249", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticInaccessibleBase", - "shortDescription": { - "text": "inaccessible-base clang diagnostic" - }, - "fullDescription": { - "text": "-Winaccessible-base clang diagnostic · Learn more", - "markdown": "-Winaccessible-base clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winaccessible-base)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticInaccessibleBase", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpMissingPluginDependency", - "shortDescription": { - "text": "Dependency for the plugin is missing in the project file" - }, - "fullDescription": { - "text": "Dependency for the plugin is missing in the project file", - "markdown": "Dependency for the plugin is missing in the project file" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpMissingPluginDependency", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unreal Build System", - "index": 141, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppConstValueFunctionReturnType", - "shortDescription": { - "text": "Function returns by const value" - }, - "fullDescription": { - "text": "Returning from a function by const value is usually not beneficial. Consider returning values as non-const to take advantage of move semantics. Learn more...", - "markdown": "Returning from a function by const value is usually not beneficial. Consider returning values as non-const to take advantage of move semantics. [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rf-return-const)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppConstValueFunctionReturnType", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Common Practices and Code Improvements", - "index": 16, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantAttributeSuffix", - "shortDescription": { - "text": "Redundant 'Attribute' suffix" - }, - "fullDescription": { - "text": "Redundant 'Attribute' suffix can be omitted when referencing attribute type Learn more...", - "markdown": "Redundant 'Attribute' suffix can be omitted when referencing attribute type [Learn more...](https://www.jetbrains.com/help/rider/RedundantAttributeSuffix.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantAttributeSuffix", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8825", - "shortDescription": { - "text": "Return value must be non-null because parameter mentioned in [NotNullIfNotNull] annotation is non-null." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/nullable-warnings#code-doesnt-match-attribute-declaration)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8825", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8824", - "shortDescription": { - "text": "Parameter must have a non-null value when exiting because parameter mentioned in [NotNullIfNotNull] annotation is non-null." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/nullable-warnings#code-doesnt-match-attribute-declaration)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8824", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppNonExceptionSafeResourceAcquisition", - "shortDescription": { - "text": "Non-safe resource acquisition" - }, - "fullDescription": { - "text": "Detects leak-prone resource acquisition/freeing constructs", - "markdown": "Detects leak-prone resource acquisition/freeing constructs" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppNonExceptionSafeResourceAcquisition", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerCplusplusPlacementNew", - "shortDescription": { - "text": "cplusplus.PlacementNew clang static analyzer check" - }, - "fullDescription": { - "text": "cplusplus.PlacementNew clang static analyzer check · Learn more", - "markdown": "cplusplus.PlacementNew clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerCplusplusPlacementNew", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConstantConditionalAccessQualifier", - "shortDescription": { - "text": "Conditional access qualifier expression is known to be null or not null" - }, - "fullDescription": { - "text": "Conditional access qualifier expression is known to be null or not null", - "markdown": "Conditional access qualifier expression is known to be null or not null" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "ConstantConditionalAccessQualifier", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerCoreStackAddressEscape", - "shortDescription": { - "text": "core.StackAddressEscape clang static analyzer check" - }, - "fullDescription": { - "text": "core.StackAddressEscape clang static analyzer check · Learn more", - "markdown": "core.StackAddressEscape clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerCoreStackAddressEscape", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyPerformanceTriviallyDestructible", - "shortDescription": { - "text": "performance-trivially-destructible clang-tidy check" - }, - "fullDescription": { - "text": "performance-trivially-destructible clang-tidy check · Learn more", - "markdown": "performance-trivially-destructible clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance/trivially-destructible.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyPerformanceTriviallyDestructible", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2250", - "shortDescription": { - "text": "RoslynAnalyzers Use 'ThrowIfCancellationRequested'" - }, - "fullDescription": { - "text": "'ThrowIfCancellationRequested' automatically checks whether the token has been canceled, and throws an 'OperationCanceledException' if it has.", - "markdown": "'ThrowIfCancellationRequested' automatically checks whether the token has been canceled, and throws an 'OperationCanceledException' if it has." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA2250", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2251", - "shortDescription": { - "text": "RoslynAnalyzers Use 'string.Equals'" - }, - "fullDescription": { - "text": "It is both clearer and likely faster to use 'string.Equals' instead of comparing the result of 'string.Compare' to zero.", - "markdown": "It is both clearer and likely faster to use 'string.Equals' instead of comparing the result of 'string.Compare' to zero." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA2251", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2252", - "shortDescription": { - "text": "RoslynAnalyzers This API requires opting into preview features" - }, - "fullDescription": { - "text": "An assembly has to opt into preview features before using them.", - "markdown": "An assembly has to opt into preview features before using them." - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "CA2252", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantLambdaSignatureParentheses", - "shortDescription": { - "text": "Redundant lambda signature parentheses" - }, - "fullDescription": { - "text": "When lambda signature contains single implicitly-typed parameter, signature parentheses can be omitted Learn more...", - "markdown": "When lambda signature contains single implicitly-typed parameter, signature parentheses can be omitted [Learn more...](https://www.jetbrains.com/help/rider/RedundantLambdaSignatureParentheses.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "RedundantLambdaSignatureParentheses", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2253", - "shortDescription": { - "text": "RoslynAnalyzers Named placeholders should not be numeric values" - }, - "fullDescription": { - "text": "Named placeholders in the logging message template should not be comprised of only numeric characters.", - "markdown": "Named placeholders in the logging message template should not be comprised of only numeric characters." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA2253", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppTooWideScopeInitStatement", - "shortDescription": { - "text": "Variable can be moved to init statement" - }, - "fullDescription": { - "text": "Don't introduce a variable before you need to use it Learn more...", - "markdown": "Don't introduce a variable before you need to use it [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Res-introduce)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppTooWideScopeInitStatement", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Common Practices and Code Improvements", - "index": 16, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2254", - "shortDescription": { - "text": "RoslynAnalyzers Template should be a static expression" - }, - "fullDescription": { - "text": "The logging message template should not vary between calls.", - "markdown": "The logging message template should not vary between calls." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA2254", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2255", - "shortDescription": { - "text": "RoslynAnalyzers The 'ModuleInitializer' attribute should not be used in libraries" - }, - "fullDescription": { - "text": "Module initializers are intended to be used by application code to ensure an application's components are initialized before the application code begins executing. If library code declares a method with the 'ModuleInitializerAttribute', it can interfere with application initialization and also lead to limitations in that application's trimming abilities. Instead of using methods marked with 'ModuleInitializerAttribute', the library should expose methods that can be used to initialize any components within the library and allow the application to invoke the method during application initialization.", - "markdown": "Module initializers are intended to be used by application code to ensure an application's components are initialized before the application code begins executing. If library code declares a method with the 'ModuleInitializerAttribute', it can interfere with application initialization and also lead to limitations in that application's trimming abilities. Instead of using methods marked with 'ModuleInitializerAttribute', the library should expose methods that can be used to initialize any components within the library and allow the application to invoke the method during application initialization." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2255", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneImplicitWideningOfMultiplicationResult", - "shortDescription": { - "text": "bugprone-implicit-widening-of-multiplication-result clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-implicit-widening-of-multiplication-result clang-tidy check · Learn more", - "markdown": "bugprone-implicit-widening-of-multiplication-result clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/implicit-widening-of-multiplication-result.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneImplicitWideningOfMultiplicationResult", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2256", - "shortDescription": { - "text": "RoslynAnalyzers All members declared in parent interfaces must have an implementation in a DynamicInterfaceCastableImplementation-attributed interface" - }, - "fullDescription": { - "text": "Types attributed with 'DynamicInterfaceCastableImplementationAttribute' act as an interface implementation for a type that implements the 'IDynamicInterfaceCastable' type. As a result, it must provide an implementation of all of the members defined in the inherited interfaces, because the type that implements 'IDynamicInterfaceCastable' will not provide them otherwise.", - "markdown": "Types attributed with 'DynamicInterfaceCastableImplementationAttribute' act as an interface implementation for a type that implements the 'IDynamicInterfaceCastable' type. As a result, it must provide an implementation of all of the members defined in the inherited interfaces, because the type that implements 'IDynamicInterfaceCastable' will not provide them otherwise." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2256", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2257", - "shortDescription": { - "text": "RoslynAnalyzers Members defined on an interface with the 'DynamicInterfaceCastableImplementationAttribute' should be 'static'" - }, - "fullDescription": { - "text": "Since a type that implements 'IDynamicInterfaceCastable' may not implement a dynamic interface in metadata, calls to an instance interface member that is not an explicit implementation defined on this type are likely to fail at runtime. Mark new interface members 'static' to avoid runtime errors.", - "markdown": "Since a type that implements 'IDynamicInterfaceCastable' may not implement a dynamic interface in metadata, calls to an instance interface member that is not an explicit implementation defined on this type are likely to fail at runtime. Mark new interface members 'static' to avoid runtime errors." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2257", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyHicppMultiwayPathsCovered", - "shortDescription": { - "text": "hicpp-multiway-paths-covered clang-tidy check" - }, - "fullDescription": { - "text": "hicpp-multiway-paths-covered clang-tidy check · Learn more", - "markdown": "hicpp-multiway-paths-covered clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/multiway-paths-covered.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyHicppMultiwayPathsCovered", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2258", - "shortDescription": { - "text": "RoslynAnalyzers Providing a 'DynamicInterfaceCastableImplementation' interface in Visual Basic is unsupported" - }, - "fullDescription": { - "text": "Providing a functional 'DynamicInterfaceCastableImplementationAttribute'-attributed interface requires the Default Interface Members feature, which is unsupported in Visual Basic.", - "markdown": "Providing a functional 'DynamicInterfaceCastableImplementationAttribute'-attributed interface requires the Default Interface Members feature, which is unsupported in Visual Basic." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2258", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2259", - "shortDescription": { - "text": "RoslynAnalyzers 'ThreadStatic' only affects static fields" - }, - "fullDescription": { - "text": "'ThreadStatic' only affects static fields. When applied to instance fields, it has no impact on behavior.", - "markdown": "'ThreadStatic' only affects static fields. When applied to instance fields, it has no impact on behavior." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2259", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticNullabilityCompleteness", - "shortDescription": { - "text": "nullability-completeness clang diagnostic" - }, - "fullDescription": { - "text": "-Wnullability-completeness clang diagnostic · Learn more", - "markdown": "-Wnullability-completeness clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnullability-completeness)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticNullabilityCompleteness", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CanSimplifyDictionaryLookupWithTryAdd", - "shortDescription": { - "text": "Dictionary lookup can be simplified with 'TryAdd'" - }, - "fullDescription": { - "text": "Dictionary lookup can be simplified with 'TryAdd' Learn more...", - "markdown": "Dictionary lookup can be simplified with 'TryAdd' [Learn more...](https://www.jetbrains.com/help/rider/CanSimplifyDictionaryLookupWithTryAdd.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CanSimplifyDictionaryLookupWithTryAdd", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerCplusplusMove", - "shortDescription": { - "text": "cplusplus.Move clang static analyzer check" - }, - "fullDescription": { - "text": "cplusplus.Move clang static analyzer check · Learn more", - "markdown": "cplusplus.Move clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerCplusplusMove", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticArcMaybeRepeatedUseOfWeak", - "shortDescription": { - "text": "arc-maybe-repeated-use-of-weak clang diagnostic" - }, - "fullDescription": { - "text": "-Warc-maybe-repeated-use-of-weak clang diagnostic · Learn more", - "markdown": "-Warc-maybe-repeated-use-of-weak clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#warc-maybe-repeated-use-of-weak)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticArcMaybeRepeatedUseOfWeak", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RequiredBaseTypesDirectConflict", - "shortDescription": { - "text": "Type specified in '[BaseTypeRequired]' attribute conflicts another type" - }, - "fullDescription": { - "text": "Type specified in '[BaseTypeRequired]' attribute conflicts with another type", - "markdown": "Type specified in '\\[BaseTypeRequired\\]' attribute conflicts with another type" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RequiredBaseTypesDirectConflict", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Constraints Violations", - "index": 80, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS0078", - "shortDescription": { - "text": "The 'l' suffix is easily confused with the digit '1'" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/s74dtt7k.aspx)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS0078", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2260", - "shortDescription": { - "text": "RoslynAnalyzers Use correct type parameter" - }, - "fullDescription": { - "text": "Generic math interfaces require the derived type itself to be used for the self recurring type parameter.", - "markdown": "Generic math interfaces require the derived type itself to be used for the self recurring type parameter." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2260", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppUnionMemberOfReferenceType", - "shortDescription": { - "text": "Union member of reference type" - }, - "fullDescription": { - "text": "Unions cannot contain non-static data members of reference types", - "markdown": "Unions cannot contain non-static data members of reference types" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppUnionMemberOfReferenceType", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Compiler Warnings", - "index": 75, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2261", - "shortDescription": { - "text": "RoslynAnalyzers Do not use ConfigureAwaitOptions.SuppressThrowing with Task<TResult>" - }, - "fullDescription": { - "text": "The ConfigureAwaitOptions.SuppressThrowing option is only supported with the non-generic Task, not a Task. To use it with a Task, first cast to the base Task.", - "markdown": "The ConfigureAwaitOptions.SuppressThrowing option is only supported with the non-generic Task, not a Task. To use it with a Task, first cast to the base Task." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2261", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnneededMemberFunction", - "shortDescription": { - "text": "unneeded-member-function clang diagnostic" - }, - "fullDescription": { - "text": "-Wunneeded-member-function clang diagnostic · Learn more", - "markdown": "-Wunneeded-member-function clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunneeded-member-function)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnneededMemberFunction", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2262", - "shortDescription": { - "text": "RoslynAnalyzers Set 'MaxResponseHeadersLength' properly" - }, - "fullDescription": { - "text": "The property 'MaxResponseHeadersLength' is measured in kilobytes, not in bytes. The provided value is multiplied by 1024, which might be greater than your intended maximum length.", - "markdown": "The property 'MaxResponseHeadersLength' is measured in kilobytes, not in bytes. The provided value is multiplied by 1024, which might be greater than your intended maximum length." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA2262", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2263", - "shortDescription": { - "text": "RoslynAnalyzers Prefer generic overload when type is known" - }, - "fullDescription": { - "text": "Using a generic overload is preferable to the 'System.Type' overload when the type is known, promoting cleaner and more type-safe code with improved compile-time checks.", - "markdown": "Using a generic overload is preferable to the 'System.Type' overload when the type is known, promoting cleaner and more type-safe code with improved compile-time checks." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA2263", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2264", - "shortDescription": { - "text": "RoslynAnalyzers Do not pass a non-nullable value to 'ArgumentNullException.ThrowIfNull'" - }, - "fullDescription": { - "text": "'ArgumentNullException.ThrowIfNull' throws when the passed argument is 'null'. Certain constructs like non-nullable structs, 'nameof()' and 'new' expressions are known to never be null, so 'ArgumentNullException.ThrowIfNull' will never throw.", - "markdown": "'ArgumentNullException.ThrowIfNull' throws when the passed argument is 'null'. Certain constructs like non-nullable structs, 'nameof()' and 'new' expressions are known to never be null, so 'ArgumentNullException.ThrowIfNull' will never throw." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2264", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2265", - "shortDescription": { - "text": "RoslynAnalyzers Do not compare Span<T> to 'null' or 'default'" - }, - "fullDescription": { - "text": "Comparing a span to 'null' or 'default' might not do what you intended. 'default' and the 'null' literal are implicitly converted to 'Span.Empty'. Remove the redundant comparison or make the code more explicit by using 'IsEmpty'.", - "markdown": "Comparing a span to 'null' or 'default' might not do what you intended. 'default' and the 'null' literal are implicitly converted to 'Span.Empty'. Remove the redundant comparison or make the code more explicit by using 'IsEmpty'." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2265", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppUseStdSize", - "shortDescription": { - "text": "std::size can be used" - }, - "fullDescription": { - "text": "std::size is a type safe alternative to C idiom for array size calculation", - "markdown": "std::size is a type safe alternative to C idiom for array size calculation" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppUseStdSize", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Common Practices and Code Improvements", - "index": 16, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticExplicitOwnershipType", - "shortDescription": { - "text": "explicit-ownership-type clang diagnostic" - }, - "fullDescription": { - "text": "-Wexplicit-ownership-type clang diagnostic · Learn more", - "markdown": "-Wexplicit-ownership-type clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wexplicit-ownership-type)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticExplicitOwnershipType", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticGnuArrayMemberParenInit", - "shortDescription": { - "text": "gnu-array-member-paren-init clang diagnostic" - }, - "fullDescription": { - "text": "-Wgnu-array-member-paren-init clang diagnostic · Learn more", - "markdown": "-Wgnu-array-member-paren-init clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-array-member-paren-init)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticGnuArrayMemberParenInit", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBStringLastIndexOfIsCultureSpecific.1", - "shortDescription": { - "text": "String.LastIndexOf is culture-specific (string.LastIndexOf(string) is culture-specific)" - }, - "fullDescription": { - "text": "$s$.LastIndexOf($sarg$)", - "markdown": "$s$.LastIndexOf($sarg$)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "VBStringLastIndexOfIsCultureSpecific.1", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBStringLastIndexOfIsCultureSpecific.2", - "shortDescription": { - "text": "String.LastIndexOf is culture-specific (string.LastIndexOf(string, int) is culture-specific)" - }, - "fullDescription": { - "text": "$s$.LastIndexOf($sarg$, $iarg1$)", - "markdown": "$s$.LastIndexOf($sarg$, $iarg1$)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "VBStringLastIndexOfIsCultureSpecific.2", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantMyClassQualifier", - "shortDescription": { - "text": "Redundant 'MyClass.' qualifier" - }, - "fullDescription": { - "text": "'MyClass.' qualifier is redundant and can be safely removed without changing code semantics.", - "markdown": "'MyClass.' qualifier is redundant and can be safely removed without changing code semantics." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantMyClassQualifier", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Redundancies in Code", - "index": 96, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBStringLastIndexOfIsCultureSpecific.3", - "shortDescription": { - "text": "String.LastIndexOf is culture-specific (string.LastIndexOf(string, int) is culture-specific)" - }, - "fullDescription": { - "text": "$s$.LastIndexOf($sarg$, $iarg1$, $iarg2$)", - "markdown": "$s$.LastIndexOf($sarg$, $iarg1$, $iarg2$)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "VBStringLastIndexOfIsCultureSpecific.3", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityAvoidConstParamsInDecls", - "shortDescription": { - "text": "readability-avoid-const-params-in-decls clang-tidy check" - }, - "fullDescription": { - "text": "readability-avoid-const-params-in-decls clang-tidy check · Learn more", - "markdown": "readability-avoid-const-params-in-decls clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/avoid-const-params-in-decls.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityAvoidConstParamsInDecls", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCompoundTokenSplit", - "shortDescription": { - "text": "compound-token-split clang diagnostic" - }, - "fullDescription": { - "text": "-Wcompound-token-split clang diagnostic · Learn more", - "markdown": "-Wcompound-token-split clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcompound-token-split)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCompoundTokenSplit", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "DuplicatedSwitchSectionBodies", - "shortDescription": { - "text": "Duplicated switch section bodies" - }, - "fullDescription": { - "text": "Duplicated switch section bodies. Consider merging them into a single section to improve readability and reduce code duplication.", - "markdown": "Duplicated switch section bodies. Consider merging them into a single section to improve readability and reduce code duplication." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "DuplicatedSwitchSectionBodies", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppMsExtDoubleUserConversionInCopyInit", - "shortDescription": { - "text": "More than one implicit conversion applied during copy-initialization. This is non-standard Microsoft C++ extension." - }, - "fullDescription": { - "text": "More than one implicit conversion applied during copy-initialization. This is non-standard Microsoft C++ extension.", - "markdown": "More than one implicit conversion applied during copy-initialization. This is non-standard Microsoft C++ extension." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppMsExtDoubleUserConversionInCopyInit", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerCplusplusNewDeleteLeaks", - "shortDescription": { - "text": "cplusplus.NewDeleteLeaks clang static analyzer check" - }, - "fullDescription": { - "text": "cplusplus.NewDeleteLeaks clang static analyzer check · Learn more", - "markdown": "cplusplus.NewDeleteLeaks clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerCplusplusNewDeleteLeaks", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppMultipleSpaces", - "shortDescription": { - "text": "Incorrect spacing (multiple spaces are prohibited)" - }, - "fullDescription": { - "text": "Multiple spaces are prohibited", - "markdown": "Multiple spaces are prohibited" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppMultipleSpaces", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Formatting", - "index": 28, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticAmbiguousMemberTemplate", - "shortDescription": { - "text": "ambiguous-member-template clang diagnostic" - }, - "fullDescription": { - "text": "-Wambiguous-member-template clang diagnostic · Learn more", - "markdown": "-Wambiguous-member-template clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wambiguous-member-template)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticAmbiguousMemberTemplate", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularHtml.Banana", - "shortDescription": { - "text": "'Banana in a box' [()] violation in Angular 2 binding" - }, - "fullDescription": { - "text": "Angular 2 requires parentheses inside brackets for two-direction bindings", - "markdown": "Angular 2 requires parentheses inside brackets for two-direction bindings" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "AngularHtml.Banana", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Angular 2 HTML/Potential Code Quality Issues", - "index": 144, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerOsxAPI", - "shortDescription": { - "text": "osx.API clang static analyzer check" - }, - "fullDescription": { - "text": "osx.API clang static analyzer check · Learn more", - "markdown": "osx.API clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerOsxAPI", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticModulesAmbiguousInternalLinkage", - "shortDescription": { - "text": "modules-ambiguous-internal-linkage clang diagnostic" - }, - "fullDescription": { - "text": "-Wmodules-ambiguous-internal-linkage clang diagnostic · Learn more", - "markdown": "-Wmodules-ambiguous-internal-linkage clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmodules-ambiguous-internal-linkage)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticModulesAmbiguousInternalLinkage", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnexpectedDirective", - "shortDescription": { - "text": "The directive is unknown and will be ignored" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "UnexpectedDirective", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "T4/T4", - "index": 116, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConstantNullCoalescingCondition", - "shortDescription": { - "text": "'??' condition is known to be null or not null" - }, - "fullDescription": { - "text": "Operand of '??' expression condition is known to be null or not null Learn more...", - "markdown": "Operand of '??' expression condition is known to be null or not null [Learn more...](https://www.jetbrains.com/help/rider/ConstantNullCoalescingCondition.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "ConstantNullCoalescingCondition", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8851", - "shortDescription": { - "text": "Record defined 'Equals' but not 'GetHashCode'" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8851", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticNullArithmetic", - "shortDescription": { - "text": "null-arithmetic clang diagnostic" - }, - "fullDescription": { - "text": "-Wnull-arithmetic clang diagnostic · Learn more", - "markdown": "-Wnull-arithmetic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnull-arithmetic)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticNullArithmetic", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneSizeofContainer", - "shortDescription": { - "text": "bugprone-sizeof-container clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-sizeof-container clang-tidy check · Learn more", - "markdown": "bugprone-sizeof-container clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/sizeof-container.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneSizeofContainer", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit.AttributeProducesTooManyTests", - "shortDescription": { - "text": "NUnit. Specified attribute values produce too many tests." - }, - "fullDescription": { - "text": "NUnit. Values of the attribute produce too many tests, which may lead NUnit test runner to 'Out of Memory'. Learn more...", - "markdown": "NUnit. Values of the attribute produce too many tests, which may lead NUnit test runner to 'Out of Memory'. [Learn more...](https://www.jetbrains.com/help/rider/NUnit.AttributeProducesTooManyTests.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "NUnit.AttributeProducesTooManyTests", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/NUnit", - "index": 26, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0320", - "shortDescription": { - "text": "RoslynAnalyzers Make anonymous function static" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0320", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Html.DeadCode", - "shortDescription": { - "text": "HTML Dead Code" - }, - "fullDescription": { - "text": "HTML Dead Code", - "markdown": "HTML Dead Code" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Html.DeadCode", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HTML/Potential Code Quality Issues", - "index": 54, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPreC11CompatPedantic", - "shortDescription": { - "text": "pre-c11-compat-pedantic clang diagnostic" - }, - "fullDescription": { - "text": "-Wpre-c11-compat-pedantic clang diagnostic · Learn more", - "markdown": "-Wpre-c11-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpre-c11-compat-pedantic)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPreC11CompatPedantic", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerNullabilityNullableDereferenced", - "shortDescription": { - "text": "nullability.NullableDereferenced clang static analyzer check" - }, - "fullDescription": { - "text": "nullability.NullableDereferenced clang static analyzer check · Learn more", - "markdown": "nullability.NullableDereferenced clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerNullabilityNullableDereferenced", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IteratorMethodResultIsIgnored", - "shortDescription": { - "text": "Return value of iterator is not used" - }, - "fullDescription": { - "text": "Return value of iterator is not used", - "markdown": "Return value of iterator is not used" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "IteratorMethodResultIsIgnored", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBUseMethodIsInstanceOfType", - "shortDescription": { - "text": "Use method IsInstanceOfType(..)" - }, - "fullDescription": { - "text": "$type$.IsAssignableFrom($expr$.GetType())", - "markdown": "$type$.IsAssignableFrom($expr$.GetType())" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBUseMethodIsInstanceOfType", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppBadIndent", - "shortDescription": { - "text": "Incorrect indent (redundant indent/outdent elsewhere)" - }, - "fullDescription": { - "text": "Redundant indent/outdent elsewhere", - "markdown": "Redundant indent/outdent elsewhere" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppBadIndent", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Formatting", - "index": 28, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.BindingWithoutContextNotResolved", - "shortDescription": { - "text": "Unresolved binding path when DataContext is unknown" - }, - "fullDescription": { - "text": "Unresolved binding path when DataContext for data binding is not specified", - "markdown": "Unresolved binding path when DataContext for data binding is not specified" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "Xaml.BindingWithoutContextNotResolved", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Code Notification", - "index": 5, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "BadDeclarationBracesLineBreaks", - "shortDescription": { - "text": "Incorrect line breaks (around declaration braces)" - }, - "fullDescription": { - "text": "Around declaration braces Learn more...", - "markdown": "Around declaration braces [Learn more...](https://www.jetbrains.com/help/rider/BadDeclarationBracesLineBreaks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "BadDeclarationBracesLineBreaks", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Formatting", - "index": 24, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMicrosoftAbstract", - "shortDescription": { - "text": "microsoft-abstract clang diagnostic" - }, - "fullDescription": { - "text": "-Wmicrosoft-abstract clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-abstract clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-abstract)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftAbstract", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8860", - "shortDescription": { - "text": "Types and aliases should not be named 'record'" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8860", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0330", - "shortDescription": { - "text": "RoslynAnalyzers Use 'System.Threading.Lock'" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0330", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EntityFramework.NPlusOne.IncompleteDataQuery", - "shortDescription": { - "text": "Query can return incomplete data for related entities" - }, - "fullDescription": { - "text": "Highlights problematic Entity Framework queries where navigational properties of the original entity can return incomplete data Learn more...", - "markdown": "Highlights problematic Entity Framework queries where navigational properties of the original entity can return incomplete data [Learn more...](https://www.jetbrains.com/help/rider/EntityFramework.NPlusOne.IncompleteDataQuery.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "EntityFramework.NPlusOne.IncompleteDataQuery", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Entity Framework", - "index": 37, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VbUnreachableCode", - "shortDescription": { - "text": "Unreachable code" - }, - "fullDescription": { - "text": "Code is unreachable", - "markdown": "Code is unreachable" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "VbUnreachableCode", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Redundancies in Code", - "index": 96, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMicrosoftExtraQualification", - "shortDescription": { - "text": "microsoft-extra-qualification clang diagnostic" - }, - "fullDescription": { - "text": "-Wmicrosoft-extra-qualification clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-extra-qualification clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-extra-qualification)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftExtraQualification", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppUseOfUndeclaredClass", - "shortDescription": { - "text": "Use of a class that has not been declared previously" - }, - "fullDescription": { - "text": "Use of a class that has not been declared previously", - "markdown": "Use of a class that has not been declared previously" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppUseOfUndeclaredClass", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Unreal Engine", - "index": 6, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RemoveToList.2", - "shortDescription": { - "text": "Remove ToList()" - }, - "fullDescription": { - "text": "$seq$.ToList().Count($x$ => $expr$)", - "markdown": "$seq$.ToList().Count($x$ =\\> $expr$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RemoveToList.2", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RemoveToList.1", - "shortDescription": { - "text": "Remove ToList()" - }, - "fullDescription": { - "text": "$seq$.ToList().ToArray()", - "markdown": "$seq$.ToList().ToArray()" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RemoveToList.1", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticEnumCompare", - "shortDescription": { - "text": "enum-compare clang diagnostic" - }, - "fullDescription": { - "text": "-Wenum-compare clang diagnostic · Learn more", - "markdown": "-Wenum-compare clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wenum-compare)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticEnumCompare", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppTooWideScope", - "shortDescription": { - "text": "Variable can be moved to inner scope" - }, - "fullDescription": { - "text": "Don't introduce a variable before you need to use it Learn more...", - "markdown": "Don't introduce a variable before you need to use it [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Res-introduce)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppTooWideScope", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Common Practices and Code Improvements", - "index": 16, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EntityNameCapturedOnly.Local", - "shortDescription": { - "text": "Entity is only used to capture its name (private accessibility)" - }, - "fullDescription": { - "text": "Local variable/parameter is only used to capture its name via 'nameof' expression", - "markdown": "Local variable/parameter is only used to capture its name via 'nameof' expression" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "EntityNameCapturedOnly.Local", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PossibleInfiniteInheritance", - "shortDescription": { - "text": "Possible infinite inheritance" - }, - "fullDescription": { - "text": "According to ECMA-335 part II (Metadata) paragraph 9.2: 'Generics and recursive inheritance graphs' Learn more...", - "markdown": "According to ECMA-335 part II (Metadata) paragraph 9.2: 'Generics and recursive inheritance graphs' [Learn more...](https://www.jetbrains.com/help/rider/PossibleInfiniteInheritance.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "PossibleInfiniteInheritance", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticFreeNonheapObject", - "shortDescription": { - "text": "free-nonheap-object clang diagnostic" - }, - "fullDescription": { - "text": "-Wfree-nonheap-object clang diagnostic · Learn more", - "markdown": "-Wfree-nonheap-object clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wfree-nonheap-object)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticFreeNonheapObject", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPreCpp17CompatPedantic", - "shortDescription": { - "text": "pre-c++17-compat-pedantic clang diagnostic" - }, - "fullDescription": { - "text": "-Wpre-c++17-compat-pedantic clang diagnostic · Learn more", - "markdown": "-Wpre-c++17-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpre-c-17-compat-pedantic)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPreCpp17CompatPedantic", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ShiftExpressionZeroLeftOperand", - "shortDescription": { - "text": "Shift expression with zero left operand equals zero" - }, - "fullDescription": { - "text": "Shift expression with zero left operand equals zero", - "markdown": "Shift expression with zero left operand equals zero" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "ShiftExpressionZeroLeftOperand", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCertErr61Cpp", - "shortDescription": { - "text": "cert-err61-cpp clang-tidy check" - }, - "fullDescription": { - "text": "cert-err61-cpp clang-tidy check · Learn more", - "markdown": "cert-err61-cpp clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/err61-cpp.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCertErr61Cpp", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticExitTimeDestructors", - "shortDescription": { - "text": "exit-time-destructors clang diagnostic" - }, - "fullDescription": { - "text": "-Wexit-time-destructors clang diagnostic · Learn more", - "markdown": "-Wexit-time-destructors clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wexit-time-destructors)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticExitTimeDestructors", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDebugCompressionUnavailable", - "shortDescription": { - "text": "debug-compression-unavailable clang diagnostic" - }, - "fullDescription": { - "text": "-Wdebug-compression-unavailable clang diagnostic · Learn more", - "markdown": "-Wdebug-compression-unavailable clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdebug-compression-unavailable)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDebugCompressionUnavailable", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticEncodeType", - "shortDescription": { - "text": "encode-type clang diagnostic" - }, - "fullDescription": { - "text": "-Wencode-type clang diagnostic · Learn more", - "markdown": "-Wencode-type clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wencode-type)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticEncodeType", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticGnuStringLiteralOperatorTemplate", - "shortDescription": { - "text": "gnu-string-literal-operator-template clang diagnostic" - }, - "fullDescription": { - "text": "-Wgnu-string-literal-operator-template clang diagnostic · Learn more", - "markdown": "-Wgnu-string-literal-operator-template clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-string-literal-operator-template)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticGnuStringLiteralOperatorTemplate", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppFunctionalStyleCast", - "shortDescription": { - "text": "Functional-style cast is used instead of a C++ cast" - }, - "fullDescription": { - "text": "Functional-style cast is used instead of a C++ cast Learn more...", - "markdown": "Functional-style cast is used instead of a C++ cast [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Res-casts-named)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppFunctionalStyleCast", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Common Practices and Code Improvements", - "index": 16, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MethodHasAsyncOverload", - "shortDescription": { - "text": "Method has async overload" - }, - "fullDescription": { - "text": "Method has async overload", - "markdown": "Method has async overload" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "MethodHasAsyncOverload", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "StringStartsWithIsCultureSpecific", - "shortDescription": { - "text": "String.StartsWith is culture-specific (string.StartsWith(string) is culture-specific)" - }, - "fullDescription": { - "text": "$s$.StartsWith($sarg$) Learn more...", - "markdown": "$s$.StartsWith($sarg$) [Learn more...](https://www.jetbrains.com/help/rider/StringStartsWithIsCultureSpecific.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "StringStartsWithIsCultureSpecific", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0340", - "shortDescription": { - "text": "RoslynAnalyzers Use unbound generic type" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0340", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyAbseilStrCatAppend", - "shortDescription": { - "text": "abseil-str-cat-append clang-tidy check" - }, - "fullDescription": { - "text": "abseil-str-cat-append clang-tidy check · Learn more", - "markdown": "abseil-str-cat-append clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/str-cat-append.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyAbseilStrCatAppend", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantExplicitNullableCreation", - "shortDescription": { - "text": "Redundant explicit nullable type creation" - }, - "fullDescription": { - "text": "Value type is implicitly convertible to its nullable form, therefore explicit nullable type creation is redundant", - "markdown": "Value type is implicitly convertible to its nullable form, therefore explicit nullable type creation is redundant" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantExplicitNullableCreation", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyHicppExceptionBaseclass", - "shortDescription": { - "text": "hicpp-exception-baseclass clang-tidy check" - }, - "fullDescription": { - "text": "hicpp-exception-baseclass clang-tidy check · Learn more", - "markdown": "hicpp-exception-baseclass clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/exception-baseclass.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyHicppExceptionBaseclass", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "InvokeAsExtensionMethod", - "shortDescription": { - "text": "Convert static method invocation into extension method call" - }, - "fullDescription": { - "text": "When extension method is invoked as static method, convert invocation into extension method syntax", - "markdown": "When extension method is invoked as static method, convert invocation into extension method syntax" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "InvokeAsExtensionMethod", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticGnuUnionCast", - "shortDescription": { - "text": "gnu-union-cast clang diagnostic" - }, - "fullDescription": { - "text": "-Wgnu-union-cast clang diagnostic · Learn more", - "markdown": "-Wgnu-union-cast clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-union-cast)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticGnuUnionCast", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AsyncIteratorInvocationWithoutAwaitForeach", - "shortDescription": { - "text": "Async iterator invocation without 'await foreach'" - }, - "fullDescription": { - "text": "Because the result of asynchronous iterator call is not being iterated, execution of the current method continues before the call is completed. Consider using the 'await foreach' over the result of the call.", - "markdown": "Because the result of asynchronous iterator call is not being iterated, execution of the current method continues before the call is completed. Consider using the 'await foreach' over the result of the call." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "AsyncIteratorInvocationWithoutAwaitForeach", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8847", - "shortDescription": { - "text": "The switch expression does not handle some null inputs (it is not exhaustive). However, a pattern with a 'when' clause might successfully match this value." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/nullable-warnings#exhaustive-switch-expression)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8847", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8846", - "shortDescription": { - "text": "The switch expression does not handle all possible values of its input type (it is not exhaustive). However, a pattern with a 'when' clause might successfully match this value." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8846", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticEmptyInitStmt", - "shortDescription": { - "text": "empty-init-stmt clang diagnostic" - }, - "fullDescription": { - "text": "-Wempty-init-stmt clang diagnostic · Learn more", - "markdown": "-Wempty-init-stmt clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wempty-init-stmt)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticEmptyInitStmt", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseNullPropagation", - "shortDescription": { - "text": "Replace if statement with null-propagating code" - }, - "fullDescription": { - "text": "Replaces if statement with null-propagating code using ?. operator Learn more...", - "markdown": "Replaces if statement with null-propagating code using ?. operator [Learn more...](https://www.jetbrains.com/help/rider/UseNullPropagation.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UseNullPropagation", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MustUseReturnValue", - "shortDescription": { - "text": "Return value of [MustUseReturnValue] annotated method is not used" - }, - "fullDescription": { - "text": "Return value of method annotated with [{0}] attribute is not used Learn more...", - "markdown": "Return value of method annotated with \\[{0}\\] attribute is not used [Learn more...](https://www.jetbrains.com/help/rider/MustUseReturnValue.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "MustUseReturnValue", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBReplaceWithOfType.2", - "shortDescription": { - "text": "Replace with OfType<T>() (replace with OfType(Of ..)())" - }, - "fullDescription": { - "text": "$seq$.Where(Function ($x$) TypeOf $x$ Is $T$).Select(Function ($y$) DirectCast($y$, $T$))", - "markdown": "$seq$.Where(Function ($x$) TypeOf $x$ Is $T$).Select(Function ($y$) DirectCast($y$, $T$))" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBReplaceWithOfType.2", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBReplaceWithOfType.1", - "shortDescription": { - "text": "Replace with OfType<T>() (replace with OfType(Of ..)())" - }, - "fullDescription": { - "text": "$seq$.Where(Function ($x$) TypeOf $x$ Is $T$).Select(Function ($y$) TryCast($y$, $T$))", - "markdown": "$seq$.Where(Function ($x$) TypeOf $x$ Is $T$).Select(Function ($y$) TryCast($y$, $T$))" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBReplaceWithOfType.1", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyObjcDeallocInCategory", - "shortDescription": { - "text": "objc-dealloc-in-category clang-tidy check" - }, - "fullDescription": { - "text": "objc-dealloc-in-category clang-tidy check · Learn more", - "markdown": "objc-dealloc-in-category clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/objc/dealloc-in-category.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyObjcDeallocInCategory", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnguardedAvailability", - "shortDescription": { - "text": "unguarded-availability clang diagnostic" - }, - "fullDescription": { - "text": "-Wunguarded-availability clang diagnostic · Learn more", - "markdown": "-Wunguarded-availability clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunguarded-availability)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnguardedAvailability", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneIncorrectRoundings", - "shortDescription": { - "text": "bugprone-incorrect-roundings clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-incorrect-roundings clang-tidy check · Learn more", - "markdown": "bugprone-incorrect-roundings clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/incorrect-roundings.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneIncorrectRoundings", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticNewlineEof", - "shortDescription": { - "text": "newline-eof clang diagnostic" - }, - "fullDescription": { - "text": "-Wnewline-eof clang diagnostic · Learn more", - "markdown": "-Wnewline-eof clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnewline-eof)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticNewlineEof", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.RoutedEventResolveError", - "shortDescription": { - "text": "Routed event descriptor field missing" - }, - "fullDescription": { - "text": "Routed event descriptor field missing or implementation does not comply with Microsoft style guide", - "markdown": "Routed event descriptor field missing or implementation does not comply with Microsoft style guide" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Xaml.RoutedEventResolveError", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Code Notification", - "index": 5, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityMagicNumbers", - "shortDescription": { - "text": "readability-magic-numbers clang-tidy check" - }, - "fullDescription": { - "text": "readability-magic-numbers clang-tidy check · Learn more", - "markdown": "readability-magic-numbers clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/magic-numbers.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityMagicNumbers", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA5350", - "shortDescription": { - "text": "RoslynAnalyzers Do Not Use Weak Cryptographic Algorithms" - }, - "fullDescription": { - "text": "Cryptographic algorithms degrade over time as attacks become for advances to attacker get access to more computation. Depending on the type and application of this cryptographic algorithm, further degradation of the cryptographic strength of it may allow attackers to read enciphered messages, tamper with enciphered  messages, forge digital signatures, tamper with hashed content, or otherwise compromise any cryptosystem based on this algorithm. Replace encryption uses with the AES algorithm (AES-256, AES-192 and AES-128 are acceptable) with a key length greater than or equal to 128 bits. Replace hashing uses with a hashing function in the SHA-2 family, such as SHA-2 512, SHA-2 384, or SHA-2 256.", - "markdown": "Cryptographic algorithms degrade over time as attacks become for advances to attacker get access to more computation. Depending on the type and application of this cryptographic algorithm, further degradation of the cryptographic strength of it may allow attackers to read enciphered messages, tamper with enciphered  messages, forge digital signatures, tamper with hashed content, or otherwise compromise any cryptosystem based on this algorithm. Replace encryption uses with the AES algorithm (AES-256, AES-192 and AES-128 are acceptable) with a key length greater than or equal to 128 bits. Replace hashing uses with a hashing function in the SHA-2 family, such as SHA-2 512, SHA-2 384, or SHA-2 256." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA5350", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AnnotationRedundancyInHierarchy", - "shortDescription": { - "text": "Annotation duplicate in hierarchy" - }, - "fullDescription": { - "text": "There is base member that has the same nullness annotation", - "markdown": "There is base member that has the same nullness annotation" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "AnnotationRedundancyInHierarchy", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8892", - "shortDescription": { - "text": "Asynchronous 'Main' method will not be used as an entry point because a synchronous entry point was found." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/warning-waves#cs8892---method-will-not-be-used-as-an-entry-point-because-a-synchronous-entry-point-method-was-found)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8892", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA5351", - "shortDescription": { - "text": "RoslynAnalyzers Do Not Use Broken Cryptographic Algorithms" - }, - "fullDescription": { - "text": "An attack making it computationally feasible to break this algorithm exists. This allows attackers to break the cryptographic guarantees it is designed to provide. Depending on the type and application of this cryptographic algorithm, this may allow attackers to read enciphered messages, tamper with enciphered  messages, forge digital signatures, tamper with hashed content, or otherwise compromise any cryptosystem based on this algorithm. Replace encryption uses with the AES algorithm (AES-256, AES-192 and AES-128 are acceptable) with a key length greater than or equal to 128 bits. Replace hashing uses with a hashing function in the SHA-2 family, such as SHA512, SHA384, or SHA256. Replace digital signature uses with RSA with a key length greater than or equal to 2048-bits, or ECDSA with a key length greater than or equal to 256 bits.", - "markdown": "An attack making it computationally feasible to break this algorithm exists. This allows attackers to break the cryptographic guarantees it is designed to provide. Depending on the type and application of this cryptographic algorithm, this may allow attackers to read enciphered messages, tamper with enciphered  messages, forge digital signatures, tamper with hashed content, or otherwise compromise any cryptosystem based on this algorithm. Replace encryption uses with the AES algorithm (AES-256, AES-192 and AES-128 are acceptable) with a key length greater than or equal to 128 bits. Replace hashing uses with a hashing function in the SHA-2 family, such as SHA512, SHA384, or SHA256. Replace digital signature uses with RSA with a key length greater than or equal to 2048-bits, or ECDSA with a key length greater than or equal to 256 bits." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA5351", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticTautologicalUndefinedCompare", - "shortDescription": { - "text": "tautological-undefined-compare clang diagnostic" - }, - "fullDescription": { - "text": "-Wtautological-undefined-compare clang diagnostic · Learn more", - "markdown": "-Wtautological-undefined-compare clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wtautological-undefined-compare)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticTautologicalUndefinedCompare", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "BaseMethodCallWithDefaultParameter", - "shortDescription": { - "text": "Call to base member with implicit default parameters" - }, - "fullDescription": { - "text": "Call to base member with implicit default parameters", - "markdown": "Call to base member with implicit default parameters" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "BaseMethodCallWithDefaultParameter", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA5358", - "shortDescription": { - "text": "RoslynAnalyzers Review cipher mode usage with cryptography experts" - }, - "fullDescription": { - "text": "These cipher modes might be vulnerable to attacks. Consider using recommended modes (CBC, CTS).", - "markdown": "These cipher modes might be vulnerable to attacks. Consider using recommended modes (CBC, CTS)." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA5358", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AsyncVoidLambda", - "shortDescription": { - "text": "Avoid using 'async' lambda when delegate type returns 'void'" - }, - "fullDescription": { - "text": "Check the usage of 'async' lambda expression: any exceptions unhandled by the lambda might lead to the process crash Learn more...", - "markdown": "Check the usage of 'async' lambda expression: any exceptions unhandled by the lambda might lead to the process crash [Learn more...](https://www.jetbrains.com/help/rider/AsyncVoidLambda.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "AsyncVoidLambda", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.BurstTypeofExpression", - "shortDescription": { - "text": "Typeof is prohibited in Burst" - }, - "fullDescription": { - "text": "Typeof is prohibited in Burst", - "markdown": "Typeof is prohibited in Burst" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.BurstTypeofExpression", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity Burst Compiler Warnings", - "index": 57, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.RedundantUpdateSourceTriggerAttribute", - "shortDescription": { - "text": "UpdateSourceTrigger=Default is redundant" - }, - "fullDescription": { - "text": "UpdateSourceTrigger=Default is redundant", - "markdown": "UpdateSourceTrigger=Default is redundant" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Xaml.RedundantUpdateSourceTriggerAttribute", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Redundancies in Code", - "index": 77, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA5359", - "shortDescription": { - "text": "RoslynAnalyzers Do Not Disable Certificate Validation" - }, - "fullDescription": { - "text": "A certificate can help authenticate the identity of the server. Clients should validate the server certificate to ensure requests are sent to the intended server. If the ServerCertificateValidationCallback always returns 'true', any certificate will pass validation.", - "markdown": "A certificate can help authenticate the identity of the server. Clients should validate the server certificate to ensure requests are sent to the intended server. If the ServerCertificateValidationCallback always returns 'true', any certificate will pass validation." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA5359", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ThreadStaticAtInstanceField", - "shortDescription": { - "text": "[ThreadStatic] does not work with instance fields" - }, - "fullDescription": { - "text": "[ThreadStatic] does nothing with instance fields Learn more...", - "markdown": "\\[ThreadStatic\\] does nothing with instance fields [Learn more...](https://www.jetbrains.com/help/rider/ThreadStaticAtInstanceField.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "ThreadStaticAtInstanceField", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Html.TagNotClosed", - "shortDescription": { - "text": "Unclosed tag" - }, - "fullDescription": { - "text": "Unclosed tag in HTML and related technologies", - "markdown": "Unclosed tag in HTML and related technologies" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "Html.TagNotClosed", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HTML/Potential Code Quality Issues", - "index": 54, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppThisArgMemberFuncDelegateCtorIsUnsuportedByDotNetCore", - "shortDescription": { - "text": "Delegate constructors with a member pointer parameter are unsupported by .NET Core" - }, - "fullDescription": { - "text": "Delegate constructors with a member pointer parameter are unsupported by .NET Core. Use a pointer to e.g. static function instead.", - "markdown": "Delegate constructors with a member pointer parameter are unsupported by .NET Core. Use a pointer to e.g. static function instead." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppThisArgMemberFuncDelegateCtorIsUnsuportedByDotNetCore", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/.NET Core", - "index": 145, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityIsolateDeclaration", - "shortDescription": { - "text": "readability-isolate-declaration clang-tidy check" - }, - "fullDescription": { - "text": "readability-isolate-declaration clang-tidy check · Learn more", - "markdown": "readability-isolate-declaration clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/isolate-declaration.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityIsolateDeclaration", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyMiscNonCopyableObjects", - "shortDescription": { - "text": "misc-non-copyable-objects clang-tidy check" - }, - "fullDescription": { - "text": "misc-non-copyable-objects clang-tidy check · Learn more", - "markdown": "misc-non-copyable-objects clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/non-copyable-objects.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyMiscNonCopyableObjects", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticTautologicalUnsignedZeroCompare", - "shortDescription": { - "text": "tautological-unsigned-zero-compare clang diagnostic" - }, - "fullDescription": { - "text": "-Wtautological-unsigned-zero-compare clang diagnostic · Learn more", - "markdown": "-Wtautological-unsigned-zero-compare clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wtautological-unsigned-zero-compare)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticTautologicalUnsignedZeroCompare", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticAttributeWarning", - "shortDescription": { - "text": "attribute-warning clang diagnostic" - }, - "fullDescription": { - "text": "-Wattribute-warning clang diagnostic · Learn more", - "markdown": "-Wattribute-warning clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wattribute-warning)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticAttributeWarning", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyLlvmlibcRestrictSystemLibcHeaders", - "shortDescription": { - "text": "llvmlibc-restrict-system-libc-headers clang-tidy check" - }, - "fullDescription": { - "text": "llvmlibc-restrict-system-libc-headers clang-tidy check · Learn more", - "markdown": "llvmlibc-restrict-system-libc-headers clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/llvmlibc/restrict-system-libc-headers.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyLlvmlibcRestrictSystemLibcHeaders", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantBaseQualifier", - "shortDescription": { - "text": "Redundant 'base.' qualifier" - }, - "fullDescription": { - "text": "'base.' qualifier is redundant and can be safely removed without changing code semantics", - "markdown": "'base.' qualifier is redundant and can be safely removed without changing code semantics" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "RedundantBaseQualifier", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyMiscUniqueptrResetRelease", - "shortDescription": { - "text": "misc-uniqueptr-reset-release clang-tidy check" - }, - "fullDescription": { - "text": "misc-uniqueptr-reset-release clang-tidy check · Learn more", - "markdown": "misc-uniqueptr-reset-release clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/uniqueptr-reset-release.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyMiscUniqueptrResetRelease", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppPointerConversionDropsQualifiers", - "shortDescription": { - "text": "Implicit conversion to pointer type with loss of qualifiers" - }, - "fullDescription": { - "text": "Implicit conversion to pointer type with loss of qualifiers", - "markdown": "Implicit conversion to pointer type with loss of qualifiers" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppPointerConversionDropsQualifiers", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA5361", - "shortDescription": { - "text": "RoslynAnalyzers Do Not Disable SChannel Use of Strong Crypto" - }, - "fullDescription": { - "text": "Starting with the .NET Framework 4.6, the System.Net.ServicePointManager and System.Net.Security.SslStream classes are recommended to use new protocols. The old ones have protocol weaknesses and are not supported. Setting Switch.System.Net.DontEnableSchUseStrongCrypto with true will use the old weak crypto check and opt out of the protocol migration.", - "markdown": "Starting with the .NET Framework 4.6, the System.Net.ServicePointManager and System.Net.Security.SslStream classes are recommended to use new protocols. The old ones have protocol weaknesses and are not supported. Setting Switch.System.Net.DontEnableSchUseStrongCrypto with true will use the old weak crypto check and opt out of the protocol migration." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA5361", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantAttributeUsageProperty", - "shortDescription": { - "text": "Redundant [AttributeUsage] attribute property assignment" - }, - "fullDescription": { - "text": "Application of [AttributeUsage] attribute has property assignment to its default value", - "markdown": "Application of \\[AttributeUsage\\] attribute has property assignment to its default value" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RedundantAttributeUsageProperty", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticFunctionDefInObjcContainer", - "shortDescription": { - "text": "function-def-in-objc-container clang diagnostic" - }, - "fullDescription": { - "text": "-Wfunction-def-in-objc-container clang diagnostic · Learn more", - "markdown": "-Wfunction-def-in-objc-container clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wfunction-def-in-objc-container)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticFunctionDefInObjcContainer", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA5360", - "shortDescription": { - "text": "RoslynAnalyzers Do Not Call Dangerous Methods In Deserialization" - }, - "fullDescription": { - "text": "Insecure Deserialization is a vulnerability which occurs when untrusted data is used to abuse the logic of an application, inflict a Denial-of-Service (DoS) attack, or even execute arbitrary code upon it being deserialized. It’s frequently possible for malicious users to abuse these deserialization features when the application is deserializing untrusted data which is under their control. Specifically, invoke dangerous methods in the process of deserialization. Successful insecure deserialization attacks could allow an attacker to carry out attacks such as DoS attacks, authentication bypasses, and remote code execution.", - "markdown": "Insecure Deserialization is a vulnerability which occurs when untrusted data is used to abuse the logic of an application, inflict a Denial-of-Service (DoS) attack, or even execute arbitrary code upon it being deserialized. It's frequently possible for malicious users to abuse these deserialization features when the application is deserializing untrusted data which is under their control. Specifically, invoke dangerous methods in the process of deserialization. Successful insecure deserialization attacks could allow an attacker to carry out attacks such as DoS attacks, authentication bypasses, and remote code execution." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA5360", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA5363", - "shortDescription": { - "text": "RoslynAnalyzers Do Not Disable Request Validation" - }, - "fullDescription": { - "text": "Request validation is a feature in ASP.NET that examines HTTP requests and determines whether they contain potentially dangerous content. This check adds protection from markup or code in the URL query string, cookies, or posted form values that might have been added for malicious purposes. So, it is generally desirable and should be left enabled for defense in depth.", - "markdown": "Request validation is a feature in ASP.NET that examines HTTP requests and determines whether they contain potentially dangerous content. This check adds protection from markup or code in the URL query string, cookies, or posted form values that might have been added for malicious purposes. So, it is generally desirable and should be left enabled for defense in depth." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA5363", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA5362", - "shortDescription": { - "text": "RoslynAnalyzers Potential reference cycle in deserialized object graph" - }, - "fullDescription": { - "text": "Review code that processes untrusted deserialized data for handling of unexpected reference cycles. An unexpected reference cycle should not cause the code to enter an infinite loop. Otherwise, an unexpected reference cycle can allow an attacker to DOS or exhaust the memory of the process when deserializing untrusted data.", - "markdown": "Review code that processes untrusted deserialized data for handling of unexpected reference cycles. An unexpected reference cycle should not cause the code to enter an infinite loop. Otherwise, an unexpected reference cycle can allow an attacker to DOS or exhaust the memory of the process when deserializing untrusted data." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA5362", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA5365", - "shortDescription": { - "text": "RoslynAnalyzers Do Not Disable HTTP Header Checking" - }, - "fullDescription": { - "text": "HTTP header checking enables encoding of the carriage return and newline characters, \\r and \\n, that are found in response headers. This encoding can help to avoid injection attacks that exploit an application that echoes untrusted data contained by the header.", - "markdown": "HTTP header checking enables encoding of the carriage return and newline characters, \\\\r and \\\\n, that are found in response headers. This encoding can help to avoid injection attacks that exploit an application that echoes untrusted data contained by the header." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA5365", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA5364", - "shortDescription": { - "text": "RoslynAnalyzers Do Not Use Deprecated Security Protocols" - }, - "fullDescription": { - "text": "Using a deprecated security protocol rather than the system default is risky.", - "markdown": "Using a deprecated security protocol rather than the system default is risky." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA5364", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppRedundantBlankLines", - "shortDescription": { - "text": "Incorrect blank lines (blank lines are redundant elsewhere)" - }, - "fullDescription": { - "text": "Blank lines are redundant elsewhere", - "markdown": "Blank lines are redundant elsewhere" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppRedundantBlankLines", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Formatting", - "index": 28, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA5367", - "shortDescription": { - "text": "RoslynAnalyzers Do Not Serialize Types With Pointer Fields" - }, - "fullDescription": { - "text": "Pointers are not \"type safe\" in the sense that you cannot guarantee the correctness of the memory they point at. So, serializing types with pointer fields is dangerous, as it may allow an attacker to control the pointer.", - "markdown": "Pointers are not \"type safe\" in the sense that you cannot guarantee the correctness of the memory they point at. So, serializing types with pointer fields is dangerous, as it may allow an attacker to control the pointer." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA5367", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA5366", - "shortDescription": { - "text": "RoslynAnalyzers Use XmlReader for 'DataSet.ReadXml()'" - }, - "fullDescription": { - "text": "Processing XML from untrusted data may load dangerous external references, which should be restricted by using an XmlReader with a secure resolver or with DTD processing disabled.", - "markdown": "Processing XML from untrusted data may load dangerous external references, which should be restricted by using an XmlReader with a secure resolver or with DTD processing disabled." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA5366", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA5369", - "shortDescription": { - "text": "RoslynAnalyzers Use XmlReader for 'XmlSerializer.Deserialize()'" - }, - "fullDescription": { - "text": "Processing XML from untrusted data may load dangerous external references, which should be restricted by using an XmlReader with a secure resolver or with DTD processing disabled.", - "markdown": "Processing XML from untrusted data may load dangerous external references, which should be restricted by using an XmlReader with a secure resolver or with DTD processing disabled." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA5369", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA5368", - "shortDescription": { - "text": "RoslynAnalyzers Set ViewStateUserKey For Classes Derived From Page" - }, - "fullDescription": { - "text": "Setting the ViewStateUserKey property can help you prevent attacks on your application by allowing you to assign an identifier to the view-state variable for individual users so that they cannot use the variable to generate an attack. Otherwise, there will be cross-site request forgery vulnerabilities.", - "markdown": "Setting the ViewStateUserKey property can help you prevent attacks on your application by allowing you to assign an identifier to the view-state variable for individual users so that they cannot use the variable to generate an attack. Otherwise, there will be cross-site request forgery vulnerabilities." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA5368", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "FSharpRedundantOpen", - "shortDescription": { - "text": "Redundant 'open' directive" - }, - "fullDescription": { - "text": "Open directive is not required by the code and can be safely removed.", - "markdown": "Open directive is not required by the code and can be safely removed." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "FSharpRedundantOpen", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "F#/Redundancies in Code", - "index": 73, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit1011", - "shortDescription": { - "text": "RoslynAnalyzers The TestCaseSource argument does not specify an existing member" - }, - "fullDescription": { - "text": "The TestCaseSource argument does not specify an existing member. This will lead to an error at run-time.", - "markdown": "The TestCaseSource argument does not specify an existing member. This will lead to an error at run-time." - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "NUnit1011", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0306", - "shortDescription": { - "text": "RoslynAnalyzers Simplify collection initialization" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0306", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0305", - "shortDescription": { - "text": "RoslynAnalyzers Simplify collection initialization" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0305", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit1010", - "shortDescription": { - "text": "RoslynAnalyzers One may not specify ParallelScope.Fixtures on a test method" - }, - "fullDescription": { - "text": "One may not specify ParallelScope.Fixtures on a test method.", - "markdown": "One may not specify ParallelScope.Fixtures on a test method." - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "NUnit1010", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit1013", - "shortDescription": { - "text": "RoslynAnalyzers The async test method must have a non-generic Task return type when no result is expected" - }, - "fullDescription": { - "text": "The async test method must have a non-generic Task return type when no result is expected.", - "markdown": "The async test method must have a non-generic Task return type when no result is expected." - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "NUnit1013", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0304", - "shortDescription": { - "text": "RoslynAnalyzers Simplify collection initialization" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0304", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0303", - "shortDescription": { - "text": "RoslynAnalyzers Simplify collection initialization" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0303", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit1012", - "shortDescription": { - "text": "RoslynAnalyzers The async test method must have a non-void return type" - }, - "fullDescription": { - "text": "The async test method must have a non-void return type.", - "markdown": "The async test method must have a non-void return type." - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "NUnit1012", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit1015", - "shortDescription": { - "text": "RoslynAnalyzers The source type does not implement I(Async)Enumerable" - }, - "fullDescription": { - "text": "The source type must implement I(Async)Enumerable in order to provide test cases.", - "markdown": "The source type must implement I(Async)Enumerable in order to provide test cases." - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "NUnit1015", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit1014", - "shortDescription": { - "text": "RoslynAnalyzers The async test method must have a Task<T> return type when a result is expected" - }, - "fullDescription": { - "text": "The async test method must have a Task return type when a result is expected.", - "markdown": "The async test method must have a Task return type when a result is expected." - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "NUnit1014", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit1017", - "shortDescription": { - "text": "RoslynAnalyzers The specified source is not static" - }, - "fullDescription": { - "text": "The specified source must be static.", - "markdown": "The specified source must be static." - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "NUnit1017", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit1016", - "shortDescription": { - "text": "RoslynAnalyzers The source type does not have a default constructor" - }, - "fullDescription": { - "text": "The source type must have a default constructor in order to provide test cases.", - "markdown": "The source type must have a default constructor in order to provide test cases." - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "NUnit1016", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit1019", - "shortDescription": { - "text": "RoslynAnalyzers The source specified by the TestCaseSource does not return an I(Async)Enumerable or a type that implements I(Async)Enumerable" - }, - "fullDescription": { - "text": "The source specified by the TestCaseSource must return an I(Async)Enumerable or a type that implements I(Async)Enumerable.", - "markdown": "The source specified by the TestCaseSource must return an I(Async)Enumerable or a type that implements I(Async)Enumerable." - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "NUnit1019", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit1018", - "shortDescription": { - "text": "RoslynAnalyzers The number of parameters provided by the TestCaseSource does not match the number of parameters in the target method" - }, - "fullDescription": { - "text": "The number of parameters provided by the TestCaseSource must match the number of parameters in the target method.", - "markdown": "The number of parameters provided by the TestCaseSource must match the number of parameters in the target method." - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "NUnit1018", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyModernizeUseDefaultMemberInit", - "shortDescription": { - "text": "modernize-use-default-member-init clang-tidy check" - }, - "fullDescription": { - "text": "modernize-use-default-member-init clang-tidy check · Learn more", - "markdown": "modernize-use-default-member-init clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-default-member-init.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyModernizeUseDefaultMemberInit", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantIsBeforeRelationalPattern", - "shortDescription": { - "text": "Redundant 'is'" - }, - "fullDescription": { - "text": "Suggest to replace `x is > 42` to `x > 42` (if x is of type int)", - "markdown": "Suggest to replace \\`x is \\> 42\\` to \\`x \\> 42\\` (if x is of type int)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RedundantIsBeforeRelationalPattern", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppRedundantSpace", - "shortDescription": { - "text": "Incorrect spacing (space is redundant elsewhere)" - }, - "fullDescription": { - "text": "Space is redundant elsewhere", - "markdown": "Space is redundant elsewhere" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppRedundantSpace", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Formatting", - "index": 28, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.BurstAccessingManagedIndexer", - "shortDescription": { - "text": "Accessing managed indexers is not supported" - }, - "fullDescription": { - "text": "Accessing managed indexers is not supported", - "markdown": "Accessing managed indexers is not supported" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.BurstAccessingManagedIndexer", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity Burst Compiler Warnings", - "index": 57, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA5370", - "shortDescription": { - "text": "RoslynAnalyzers Use XmlReader for XmlValidatingReader constructor" - }, - "fullDescription": { - "text": "Processing XML from untrusted data may load dangerous external references, which should be restricted by using an XmlReader with a secure resolver or with DTD processing disabled.", - "markdown": "Processing XML from untrusted data may load dangerous external references, which should be restricted by using an XmlReader with a secure resolver or with DTD processing disabled." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA5370", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.MissingGridIndex", - "shortDescription": { - "text": "Missing grid column/row setter for non-first child" - }, - "fullDescription": { - "text": "Missing grid column/row setter for non-first child inside non-trivial grid", - "markdown": "Missing grid column/row setter for non-first child inside non-trivial grid" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Xaml.MissingGridIndex", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Potential Code Quality Issues", - "index": 45, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA5372", - "shortDescription": { - "text": "RoslynAnalyzers Use XmlReader for XPathDocument constructor" - }, - "fullDescription": { - "text": "Processing XML from untrusted data may load dangerous external references, which should be restricted by using an XmlReader with a secure resolver or with DTD processing disabled.", - "markdown": "Processing XML from untrusted data may load dangerous external references, which should be restricted by using an XmlReader with a secure resolver or with DTD processing disabled." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA5372", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA5371", - "shortDescription": { - "text": "RoslynAnalyzers Use XmlReader for 'XmlSchema.Read()'" - }, - "fullDescription": { - "text": "Processing XML from untrusted data may load dangerous external references, which should be restricted by using an XmlReader with a secure resolver or with DTD processing disabled.", - "markdown": "Processing XML from untrusted data may load dangerous external references, which should be restricted by using an XmlReader with a secure resolver or with DTD processing disabled." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA5371", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA5374", - "shortDescription": { - "text": "RoslynAnalyzers Do Not Use XslTransform" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA5374", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA5373", - "shortDescription": { - "text": "RoslynAnalyzers Do not use obsolete key derivation function" - }, - "fullDescription": { - "text": "Password-based key derivation should use PBKDF2 with SHA-2. Avoid using PasswordDeriveBytes since it generates a PBKDF1 key. Avoid using Rfc2898DeriveBytes.CryptDeriveKey since it doesn't use the iteration count or salt.", - "markdown": "Password-based key derivation should use PBKDF2 with SHA-2. Avoid using PasswordDeriveBytes since it generates a PBKDF1 key. Avoid using Rfc2898DeriveBytes.CryptDeriveKey since it doesn't use the iteration count or salt." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA5373", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA5376", - "shortDescription": { - "text": "RoslynAnalyzers Use SharedAccessProtocol HttpsOnly" - }, - "fullDescription": { - "text": "HTTPS encrypts network traffic. Use HttpsOnly, rather than HttpOrHttps, to ensure network traffic is always encrypted to help prevent disclosure of sensitive data.", - "markdown": "HTTPS encrypts network traffic. Use HttpsOnly, rather than HttpOrHttps, to ensure network traffic is always encrypted to help prevent disclosure of sensitive data." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA5376", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA5375", - "shortDescription": { - "text": "RoslynAnalyzers Do Not Use Account Shared Access Signature" - }, - "fullDescription": { - "text": "Shared Access Signatures(SAS) are a vital part of the security model for any application using Azure Storage, they should provide limited and safe permissions to your storage account to clients that don't have the account key. All of the operations available via a service SAS are also available via an account SAS, that is, account SAS is too powerful. So it is recommended to use Service SAS to delegate access more carefully.", - "markdown": "Shared Access Signatures(SAS) are a vital part of the security model for any application using Azure Storage, they should provide limited and safe permissions to your storage account to clients that don't have the account key. All of the operations available via a service SAS are also available via an account SAS, that is, account SAS is too powerful. So it is recommended to use Service SAS to delegate access more carefully." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA5375", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA5378", - "shortDescription": { - "text": "RoslynAnalyzers Do not disable ServicePointManagerSecurityProtocols" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA5378", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0302", - "shortDescription": { - "text": "RoslynAnalyzers Simplify collection initialization" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0302", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA5377", - "shortDescription": { - "text": "RoslynAnalyzers Use Container Level Access Policy" - }, - "fullDescription": { - "text": "No access policy identifier is specified, making tokens non-revocable.", - "markdown": "No access policy identifier is specified, making tokens non-revocable." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA5377", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0301", - "shortDescription": { - "text": "RoslynAnalyzers Simplify collection initialization" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0301", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0300", - "shortDescription": { - "text": "RoslynAnalyzers Simplify collection initialization" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0300", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA5379", - "shortDescription": { - "text": "RoslynAnalyzers Ensure Key Derivation Function algorithm is sufficiently strong" - }, - "fullDescription": { - "text": "Some implementations of the Rfc2898DeriveBytes class allow for a hash algorithm to be specified in a constructor parameter or overwritten in the HashAlgorithm property. If a hash algorithm is specified, then it should be SHA-256 or higher.", - "markdown": "Some implementations of the Rfc2898DeriveBytes class allow for a hash algorithm to be specified in a constructor parameter or overwritten in the HashAlgorithm property. If a hash algorithm is specified, then it should be SHA-256 or higher." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA5379", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MemberCanBeProtected.Global", - "shortDescription": { - "text": "Member can be made protected (non-private accessibility)" - }, - "fullDescription": { - "text": "Member can be made protected Learn more...", - "markdown": "Member can be made protected [Learn more...](https://www.jetbrains.com/help/rider/MemberCanBeProtected.Global.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "MemberCanBeProtected.Global", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit.TestCaseResultPropertyDuplicatesExpectedResult", - "shortDescription": { - "text": "NUnit. Test case Result property duplicates ExpectedResult." - }, - "fullDescription": { - "text": "NUnit. Test case Result property duplicates specified ExpectedResult. Learn more...", - "markdown": "NUnit. Test case Result property duplicates specified ExpectedResult. [Learn more...](https://www.jetbrains.com/help/rider/NUnit.TestCaseResultPropertyDuplicatesExpectedResult.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NUnit.TestCaseResultPropertyDuplicatesExpectedResult", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/NUnit", - "index": 26, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit1002", - "shortDescription": { - "text": "RoslynAnalyzers The TestCaseSource should use nameof operator to specify target" - }, - "fullDescription": { - "text": "The TestCaseSource should use nameof operator to specify target.", - "markdown": "The TestCaseSource should use nameof operator to specify target." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NUnit1002", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCtu", - "shortDescription": { - "text": "ctu clang diagnostic" - }, - "fullDescription": { - "text": "-Wctu clang diagnostic · Learn more", - "markdown": "-Wctu clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wctu)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCtu", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUninitializedConstReference", - "shortDescription": { - "text": "uninitialized-const-reference clang diagnostic" - }, - "fullDescription": { - "text": "-Wuninitialized-const-reference clang diagnostic · Learn more", - "markdown": "-Wuninitialized-const-reference clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wuninitialized-const-reference)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUninitializedConstReference", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit1001", - "shortDescription": { - "text": "RoslynAnalyzers The individual arguments provided by a TestCaseAttribute must match the type of the corresponding parameter of the method" - }, - "fullDescription": { - "text": "The individual arguments provided by a TestCaseAttribute must match the type of the corresponding parameter of the method.", - "markdown": "The individual arguments provided by a TestCaseAttribute must match the type of the corresponding parameter of the method." - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "NUnit1001", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit1004", - "shortDescription": { - "text": "RoslynAnalyzers The TestCaseAttribute provided too many arguments" - }, - "fullDescription": { - "text": "The number of arguments provided by a TestCaseAttribute must match the number of parameters of the method.", - "markdown": "The number of arguments provided by a TestCaseAttribute must match the number of parameters of the method." - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "NUnit1004", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit1003", - "shortDescription": { - "text": "RoslynAnalyzers The TestCaseAttribute provided too few arguments" - }, - "fullDescription": { - "text": "The number of arguments provided by a TestCaseAttribute must match the number of parameters of the method.", - "markdown": "The number of arguments provided by a TestCaseAttribute must match the number of parameters of the method." - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "NUnit1003", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit1006", - "shortDescription": { - "text": "RoslynAnalyzers ExpectedResult must not be specified when the method returns void" - }, - "fullDescription": { - "text": "ExpectedResult must not be specified when the method returns void. This will lead to an error at run-time.", - "markdown": "ExpectedResult must not be specified when the method returns void. This will lead to an error at run-time." - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "NUnit1006", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit1005", - "shortDescription": { - "text": "RoslynAnalyzers The type of the value specified via ExpectedResult must match the return type of the method" - }, - "fullDescription": { - "text": "The type of the value specified via ExpectedResult must match the return type of the method. Otherwise, this will lead to an error at run-time.", - "markdown": "The type of the value specified via ExpectedResult must match the return type of the method. Otherwise, this will lead to an error at run-time." - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "NUnit1005", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit1008", - "shortDescription": { - "text": "RoslynAnalyzers Specifying ParallelScope.Self on assembly level has no effect" - }, - "fullDescription": { - "text": "Specifying ParallelScope.Self on assembly level has no effect.", - "markdown": "Specifying ParallelScope.Self on assembly level has no effect." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NUnit1008", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit1007", - "shortDescription": { - "text": "RoslynAnalyzers The method has non-void return type, but no result is expected in ExpectedResult" - }, - "fullDescription": { - "text": "The method has non-void return type, but no result is expected in ExpectedResult.", - "markdown": "The method has non-void return type, but no result is expected in ExpectedResult." - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "NUnit1007", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit1009", - "shortDescription": { - "text": "RoslynAnalyzers One may not specify ParallelScope.Children on a non-parameterized test method" - }, - "fullDescription": { - "text": "One may not specify ParallelScope.Children on a non-parameterized test method.", - "markdown": "One may not specify ParallelScope.Children on a non-parameterized test method." - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "NUnit1009", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MissingLinebreak", - "shortDescription": { - "text": "Incorrect line breaks (line break is missing elsewhere)" - }, - "fullDescription": { - "text": "Line break is missing elsewhere Learn more...", - "markdown": "Line break is missing elsewhere [Learn more...](https://www.jetbrains.com/help/rider/MissingLinebreak.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "MissingLinebreak", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Formatting", - "index": 24, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCppcoreguidelinesCCopyAssignmentSignature", - "shortDescription": { - "text": "cppcoreguidelines-c-copy-assignment-signature clang-tidy check" - }, - "fullDescription": { - "text": "cppcoreguidelines-c-copy-assignment-signature clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-c-copy-assignment-signature clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/c-copy-assignment-signature.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCppcoreguidelinesCCopyAssignmentSignature", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EventNeverSubscribedTo.Global", - "shortDescription": { - "text": "Event is never subscribed to (non-private accessibility)" - }, - "fullDescription": { - "text": "Event is never subscribed to Learn more...", - "markdown": "Event is never subscribed to [Learn more...](https://www.jetbrains.com/help/rider/EventNeverSubscribedTo.Global.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "EventNeverSubscribedTo.Global", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA5381", - "shortDescription": { - "text": "RoslynAnalyzers Ensure Certificates Are Not Added To Root Store" - }, - "fullDescription": { - "text": "By default, the Trusted Root Certification Authorities certificate store is configured with a set of public CAs that has met the requirements of the Microsoft Root Certificate Program. Since all trusted root CAs can issue certificates for any domain, an attacker can pick a weak or coercible CA that you install by yourself to target for an attack - and a single vulnerable, malicious or coercible CA undermines the security of the entire system. To make matters worse, these attacks can go unnoticed quite easily.", - "markdown": "By default, the Trusted Root Certification Authorities certificate store is configured with a set of public CAs that has met the requirements of the Microsoft Root Certificate Program. Since all trusted root CAs can issue certificates for any domain, an attacker can pick a weak or coercible CA that you install by yourself to target for an attack - and a single vulnerable, malicious or coercible CA undermines the security of the entire system. To make matters worse, these attacks can go unnoticed quite easily." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA5381", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticLinkerWarnings", - "shortDescription": { - "text": "linker-warnings clang diagnostic" - }, - "fullDescription": { - "text": "-Wlinker-warnings clang diagnostic · Learn more", - "markdown": "-Wlinker-warnings clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wlinker-warnings)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticLinkerWarnings", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA5380", - "shortDescription": { - "text": "RoslynAnalyzers Do Not Add Certificates To Root Store" - }, - "fullDescription": { - "text": "By default, the Trusted Root Certification Authorities certificate store is configured with a set of public CAs that has met the requirements of the Microsoft Root Certificate Program. Since all trusted root CAs can issue certificates for any domain, an attacker can pick a weak or coercible CA that you install by yourself to target for an attack - and a single vulnerable, malicious or coercible CA undermines the security of the entire system. To make matters worse, these attacks can go unnoticed quite easily.", - "markdown": "By default, the Trusted Root Certification Authorities certificate store is configured with a set of public CAs that has met the requirements of the Microsoft Root Certificate Program. Since all trusted root CAs can issue certificates for any domain, an attacker can pick a weak or coercible CA that you install by yourself to target for an attack - and a single vulnerable, malicious or coercible CA undermines the security of the entire system. To make matters worse, these attacks can go unnoticed quite easily." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA5380", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA5383", - "shortDescription": { - "text": "RoslynAnalyzers Ensure Use Secure Cookies In ASP.NET Core" - }, - "fullDescription": { - "text": "Applications available over HTTPS must use secure cookies.", - "markdown": "Applications available over HTTPS must use secure cookies." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA5383", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA5382", - "shortDescription": { - "text": "RoslynAnalyzers Use Secure Cookies In ASP.NET Core" - }, - "fullDescription": { - "text": "Applications available over HTTPS must use secure cookies.", - "markdown": "Applications available over HTTPS must use secure cookies." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA5382", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA5385", - "shortDescription": { - "text": "RoslynAnalyzers Use Rivest-Shamir-Adleman (RSA) Algorithm With Sufficient Key Size" - }, - "fullDescription": { - "text": "Encryption algorithms are vulnerable to brute force attacks when too small a key size is used.", - "markdown": "Encryption algorithms are vulnerable to brute force attacks when too small a key size is used." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA5385", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppBoostFormatTooManyArgs", - "shortDescription": { - "text": "Too many arguments in a call to boost::format" - }, - "fullDescription": { - "text": "Too many arguments in a call to boost::format. Some of the arguments are not used.", - "markdown": "Too many arguments in a call to boost::format. Some of the arguments are not used." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppBoostFormatTooManyArgs", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA5384", - "shortDescription": { - "text": "RoslynAnalyzers Do Not Use Digital Signature Algorithm (DSA)" - }, - "fullDescription": { - "text": "DSA is too weak to use.", - "markdown": "DSA is too weak to use." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA5384", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA5387", - "shortDescription": { - "text": "RoslynAnalyzers Do Not Use Weak Key Derivation Function With Insufficient Iteration Count" - }, - "fullDescription": { - "text": "When deriving cryptographic keys from user-provided inputs such as password, use sufficient iteration count (at least 100k).", - "markdown": "When deriving cryptographic keys from user-provided inputs such as password, use sufficient iteration count (at least 100k)." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA5387", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMultiGpu", - "shortDescription": { - "text": "multi-gpu clang diagnostic" - }, - "fullDescription": { - "text": "-Wmulti-gpu clang diagnostic · Learn more", - "markdown": "-Wmulti-gpu clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmulti-gpu)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMultiGpu", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA5386", - "shortDescription": { - "text": "RoslynAnalyzers Avoid hardcoding SecurityProtocolType value" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA5386", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA5389", - "shortDescription": { - "text": "RoslynAnalyzers Do Not Add Archive Item's Path To The Target File System Path" - }, - "fullDescription": { - "text": "When extracting files from an archive and using the archive item's path, check if the path is safe. Archive path can be relative and can lead to file system access outside of the expected file system target path, leading to malicious config changes and remote code execution via lay-and-wait technique.", - "markdown": "When extracting files from an archive and using the archive item's path, check if the path is safe. Archive path can be relative and can lead to file system access outside of the expected file system target path, leading to malicious config changes and remote code execution via lay-and-wait technique." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA5389", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnusedParameter.Global", - "shortDescription": { - "text": "Unused parameter (non-private accessibility)" - }, - "fullDescription": { - "text": "Parameter is never used Learn more...", - "markdown": "Parameter is never used [Learn more...](https://www.jetbrains.com/help/rider/UnusedParameter.Global.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "UnusedParameter.Global", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA5388", - "shortDescription": { - "text": "RoslynAnalyzers Ensure Sufficient Iteration Count When Using Weak Key Derivation Function" - }, - "fullDescription": { - "text": "When deriving cryptographic keys from user-provided inputs such as password, use sufficient iteration count (at least 100k).", - "markdown": "When deriving cryptographic keys from user-provided inputs such as password, use sufficient iteration count (at least 100k)." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA5388", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit1033", - "shortDescription": { - "text": "RoslynAnalyzers The Write methods on TestContext will be marked as Obsolete and eventually removed" - }, - "fullDescription": { - "text": "Direct Write calls should be replaced with Out.Write.", - "markdown": "Direct Write calls should be replaced with Out.Write." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NUnit1033", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit1032", - "shortDescription": { - "text": "RoslynAnalyzers An IDisposable field/property should be Disposed in a TearDown method" - }, - "fullDescription": { - "text": "An IDisposable field/property should be Disposed in a TearDown method.", - "markdown": "An IDisposable field/property should be Disposed in a TearDown method." - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "NUnit1032", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA5390", - "shortDescription": { - "text": "RoslynAnalyzers Do not hard-code encryption key" - }, - "fullDescription": { - "text": "SymmetricAlgorithm's .Key property, or a method's rgbKey parameter, should never be a hard-coded value.", - "markdown": "SymmetricAlgorithm's .Key property, or a method's rgbKey parameter, should never be a hard-coded value." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA5390", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPredefinedIdentifierOutsideFunction", - "shortDescription": { - "text": "predefined-identifier-outside-function clang diagnostic" - }, - "fullDescription": { - "text": "-Wpredefined-identifier-outside-function clang diagnostic · Learn more", - "markdown": "-Wpredefined-identifier-outside-function clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpredefined-identifier-outside-function)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPredefinedIdentifierOutsideFunction", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA5392", - "shortDescription": { - "text": "RoslynAnalyzers Use DefaultDllImportSearchPaths attribute for P/Invokes" - }, - "fullDescription": { - "text": "By default, P/Invokes using DllImportAttribute probe a number of directories, including the current working directory for the library to load. This can be a security issue for certain applications, leading to DLL hijacking.", - "markdown": "By default, P/Invokes using DllImportAttribute probe a number of directories, including the current working directory for the library to load. This can be a security issue for certain applications, leading to DLL hijacking." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA5392", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA5391", - "shortDescription": { - "text": "RoslynAnalyzers Use antiforgery tokens in ASP.NET Core MVC controllers" - }, - "fullDescription": { - "text": "Handling a POST, PUT, PATCH, or DELETE request without validating an antiforgery token may be vulnerable to cross-site request forgery attacks. A cross-site request forgery attack can send malicious requests from an authenticated user to your ASP.NET Core MVC controller.", - "markdown": "Handling a POST, PUT, PATCH, or DELETE request without validating an antiforgery token may be vulnerable to cross-site request forgery attacks. A cross-site request forgery attack can send malicious requests from an authenticated user to your ASP.NET Core MVC controller." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA5391", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA5394", - "shortDescription": { - "text": "RoslynAnalyzers Do not use insecure randomness" - }, - "fullDescription": { - "text": "Using a cryptographically weak pseudo-random number generator may allow an attacker to predict what security-sensitive value will be generated. Use a cryptographically strong random number generator if an unpredictable value is required, or ensure that weak pseudo-random numbers aren't used in a security-sensitive manner.", - "markdown": "Using a cryptographically weak pseudo-random number generator may allow an attacker to predict what security-sensitive value will be generated. Use a cryptographically strong random number generator if an unpredictable value is required, or ensure that weak pseudo-random numbers aren't used in a security-sensitive manner." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA5394", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA5393", - "shortDescription": { - "text": "RoslynAnalyzers Do not use unsafe DllImportSearchPath value" - }, - "fullDescription": { - "text": "There could be a malicious DLL in the default DLL search directories. Or, depending on where your application is run from, there could be a malicious DLL in the application's directory. Use a DllImportSearchPath value that specifies an explicit search path instead. The DllImportSearchPath flags that this rule looks for can be configured in .editorconfig.", - "markdown": "There could be a malicious DLL in the default DLL search directories. Or, depending on where your application is run from, there could be a malicious DLL in the application's directory. Use a DllImportSearchPath value that specifies an explicit search path instead. The DllImportSearchPath flags that this rule looks for can be configured in .editorconfig." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA5393", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConditionIsAlwaysTrueOrFalseAccordingToNullableAPIContract", - "shortDescription": { - "text": "Expression is always 'true' or 'false' according to nullable reference types' annotations" - }, - "fullDescription": { - "text": "Expression is always 'true' or 'false' according to nullable reference types' annotations Learn more...", - "markdown": "Expression is always 'true' or 'false' according to nullable reference types' annotations [Learn more...](https://www.jetbrains.com/help/rider/ConditionIsAlwaysTrueOrFalseAccordingToNullableAPIContract.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "ConditionIsAlwaysTrueOrFalseAccordingToNullableAPIContract", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA5396", - "shortDescription": { - "text": "RoslynAnalyzers Set HttpOnly to true for HttpCookie" - }, - "fullDescription": { - "text": "As a defense in depth measure, ensure security sensitive HTTP cookies are marked as HttpOnly. This indicates web browsers should disallow scripts from accessing the cookies. Injected malicious scripts are a common way of stealing cookies.", - "markdown": "As a defense in depth measure, ensure security sensitive HTTP cookies are marked as HttpOnly. This indicates web browsers should disallow scripts from accessing the cookies. Injected malicious scripts are a common way of stealing cookies." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA5396", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA5395", - "shortDescription": { - "text": "RoslynAnalyzers Miss HttpVerb attribute for action methods" - }, - "fullDescription": { - "text": "All the methods that create, edit, delete, or otherwise modify data do so in the [HttpPost] overload of the method, which needs to be protected with the anti forgery attribute from request forgery. Performing a GET operation should be a safe operation that has no side effects and doesn't modify your persisted data.", - "markdown": "All the methods that create, edit, delete, or otherwise modify data do so in the \\[HttpPost\\] overload of the method, which needs to be protected with the anti forgery attribute from request forgery. Performing a GET operation should be a safe operation that has no side effects and doesn't modify your persisted data." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA5395", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA5398", - "shortDescription": { - "text": "RoslynAnalyzers Avoid hardcoded SslProtocols values" - }, - "fullDescription": { - "text": "Current Transport Layer Security protocol versions may become deprecated if vulnerabilities are found. Avoid hardcoding SslProtocols values to keep your application secure. Use 'None' to let the Operating System choose a version.", - "markdown": "Current Transport Layer Security protocol versions may become deprecated if vulnerabilities are found. Avoid hardcoding SslProtocols values to keep your application secure. Use 'None' to let the Operating System choose a version." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA5398", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantLambdaParameterType", - "shortDescription": { - "text": "Redundant lambda expression parameter type specification" - }, - "fullDescription": { - "text": "Lambda expression explicit parameter type specification is redundant Learn more...", - "markdown": "Lambda expression explicit parameter type specification is redundant [Learn more...](https://www.jetbrains.com/help/rider/RedundantLambdaParameterType.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "RedundantLambdaParameterType", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA5397", - "shortDescription": { - "text": "RoslynAnalyzers Do not use deprecated SslProtocols values" - }, - "fullDescription": { - "text": "Older protocol versions of Transport Layer Security (TLS) are less secure than TLS 1.2 and TLS 1.3, and are more likely to have new vulnerabilities. Avoid older protocol versions to minimize risk.", - "markdown": "Older protocol versions of Transport Layer Security (TLS) are less secure than TLS 1.2 and TLS 1.3, and are more likely to have new vulnerabilities. Avoid older protocol versions to minimize risk." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA5397", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA5399", - "shortDescription": { - "text": "RoslynAnalyzers HttpClients should enable certificate revocation list checks" - }, - "fullDescription": { - "text": "Using HttpClient without providing a platform specific handler (WinHttpHandler or CurlHandler or HttpClientHandler) where the CheckCertificateRevocationList property is set to true, will allow revoked certificates to be accepted by the HttpClient as valid.", - "markdown": "Using HttpClient without providing a platform specific handler (WinHttpHandler or CurlHandler or HttpClientHandler) where the CheckCertificateRevocationList property is set to true, will allow revoked certificates to be accepted by the HttpClient as valid." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA5399", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticArcUnsafeRetainedAssign", - "shortDescription": { - "text": "arc-unsafe-retained-assign clang diagnostic" - }, - "fullDescription": { - "text": "-Warc-unsafe-retained-assign clang diagnostic · Learn more", - "markdown": "-Warc-unsafe-retained-assign clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#warc-unsafe-retained-assign)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticArcUnsafeRetainedAssign", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit1031", - "shortDescription": { - "text": "RoslynAnalyzers The individual arguments provided by a ValuesAttribute must match the type of the corresponding parameter of the method" - }, - "fullDescription": { - "text": "The individual arguments provided by a ValuesAttribute must match the type of the corresponding parameter of the method.", - "markdown": "The individual arguments provided by a ValuesAttribute must match the type of the corresponding parameter of the method." - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "NUnit1031", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit1030", - "shortDescription": { - "text": "RoslynAnalyzers The type of parameter provided by the TestCaseSource does not match the type of the parameter in the Test method" - }, - "fullDescription": { - "text": "The type of parameters provided by the TestCaseSource must match the type of parameters in the Test method.", - "markdown": "The type of parameters provided by the TestCaseSource must match the type of parameters in the Test method." - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "NUnit1030", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit1022", - "shortDescription": { - "text": "RoslynAnalyzers The specified source is not static" - }, - "fullDescription": { - "text": "The specified source must be static.", - "markdown": "The specified source must be static." - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "NUnit1022", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit1021", - "shortDescription": { - "text": "RoslynAnalyzers The ValueSource should use nameof operator to specify target" - }, - "fullDescription": { - "text": "The ValueSource should use nameof operator to specify target.", - "markdown": "The ValueSource should use nameof operator to specify target." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NUnit1021", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit1024", - "shortDescription": { - "text": "RoslynAnalyzers The source specified by the ValueSource does not return an I(Async)Enumerable or a type that implements I(Async)Enumerable" - }, - "fullDescription": { - "text": "The source specified by the ValueSource must return an I(Async)Enumerable or a type that implements I(Async)Enumerable.", - "markdown": "The source specified by the ValueSource must return an I(Async)Enumerable or a type that implements I(Async)Enumerable." - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "NUnit1024", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit1023", - "shortDescription": { - "text": "RoslynAnalyzers The target method expects parameters which cannot be supplied by the ValueSource" - }, - "fullDescription": { - "text": "The target method expects parameters which cannot be supplied by the ValueSource.", - "markdown": "The target method expects parameters which cannot be supplied by the ValueSource." - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "NUnit1023", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit1026", - "shortDescription": { - "text": "RoslynAnalyzers The test or setup/teardown method is not public" - }, - "fullDescription": { - "text": "The test or setup/teardown method is not public.", - "markdown": "The test or setup/teardown method is not public." - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "NUnit1026", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit1025", - "shortDescription": { - "text": "RoslynAnalyzers The ValueSource argument does not specify an existing member" - }, - "fullDescription": { - "text": "The ValueSource argument does not specify an existing member. This will lead to an error at run-time.", - "markdown": "The ValueSource argument does not specify an existing member. This will lead to an error at run-time." - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "NUnit1025", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit1028", - "shortDescription": { - "text": "RoslynAnalyzers The non-test method is public" - }, - "fullDescription": { - "text": "A fixture should not contain any public non-test methods.", - "markdown": "A fixture should not contain any public non-test methods." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "NUnit1028", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit1027", - "shortDescription": { - "text": "RoslynAnalyzers The test method has parameters, but no arguments are supplied by attributes" - }, - "fullDescription": { - "text": "The test method has parameters, but no arguments are supplied by attributes.", - "markdown": "The test method has parameters, but no arguments are supplied by attributes." - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "NUnit1027", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit1029", - "shortDescription": { - "text": "RoslynAnalyzers The number of parameters provided by the TestCaseSource does not match the number of parameters in the Test method" - }, - "fullDescription": { - "text": "The number of parameters provided by the TestCaseSource must match the number of parameters in the Test method.", - "markdown": "The number of parameters provided by the TestCaseSource must match the number of parameters in the Test method." - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "NUnit1029", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticC11Extensions", - "shortDescription": { - "text": "c11-extensions clang diagnostic" - }, - "fullDescription": { - "text": "-Wc11-extensions clang diagnostic · Learn more", - "markdown": "-Wc11-extensions clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc11-extensions)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticC11Extensions", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "LoopVariableIsNeverChangedInsideLoop", - "shortDescription": { - "text": "Loop control variable is never changed inside loop" - }, - "fullDescription": { - "text": "Loop control variable is never changed inside loop Learn more...", - "markdown": "Loop control variable is never changed inside loop [Learn more...](https://www.jetbrains.com/help/rider/LoopVariableIsNeverChangedInsideLoop.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "LoopVariableIsNeverChangedInsideLoop", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EntityFramework.NPlusOne.Query", - "shortDescription": { - "text": "Possible multiple queries to the database for related entities (N+1 problem)" - }, - "fullDescription": { - "text": "Highlights problematic Entity Framework queries where navigational properties of the original entity can cause unnecessary multiple SQL queries to the database (N+1 problem) Learn more...", - "markdown": "Highlights problematic Entity Framework queries where navigational properties of the original entity can cause unnecessary multiple SQL queries to the database (N+1 problem) [Learn more...](https://www.jetbrains.com/help/rider/EntityFramework.NPlusOne.Query.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "EntityFramework.NPlusOne.Query", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Entity Framework", - "index": 37, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticC23Compat", - "shortDescription": { - "text": "c23-compat clang diagnostic" - }, - "fullDescription": { - "text": "-Wc23-compat clang diagnostic · Learn more", - "markdown": "-Wc23-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc23-compat)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticC23Compat", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1727", - "shortDescription": { - "text": "RoslynAnalyzers Use PascalCase for named placeholders" - }, - "fullDescription": { - "text": "Use PascalCase for named placeholders in the logging message template.", - "markdown": "Use PascalCase for named placeholders in the logging message template." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1727", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticNullCharacter", - "shortDescription": { - "text": "null-character clang diagnostic" - }, - "fullDescription": { - "text": "-Wnull-character clang diagnostic · Learn more", - "markdown": "-Wnull-character clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnull-character)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticNullCharacter", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBPossibleMistakenCallToGetType.1", - "shortDescription": { - "text": "Possible mistaken call to GetType()" - }, - "fullDescription": { - "text": "$type$.IsInstanceOfType($expr$.GetType())", - "markdown": "$type$.IsInstanceOfType($expr$.GetType())" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "VBPossibleMistakenCallToGetType.1", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticTautologicalCompare", - "shortDescription": { - "text": "tautological-compare clang diagnostic" - }, - "fullDescription": { - "text": "-Wtautological-compare clang diagnostic · Learn more", - "markdown": "-Wtautological-compare clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wtautological-compare)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticTautologicalCompare", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1725", - "shortDescription": { - "text": "RoslynAnalyzers Parameter names should match base declaration" - }, - "fullDescription": { - "text": "Consistent naming of parameters in an override hierarchy increases the usability of the method overrides. A parameter name in a derived method that differs from the name in the base declaration can cause confusion about whether the method is an override of the base method or a new overload of the method.", - "markdown": "Consistent naming of parameters in an override hierarchy increases the usability of the method overrides. A parameter name in a derived method that differs from the name in the base declaration can cause confusion about whether the method is an override of the base method or a new overload of the method." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1725", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1724", - "shortDescription": { - "text": "RoslynAnalyzers Type names should not match namespaces" - }, - "fullDescription": { - "text": "Type names should not match the names of namespaces that are defined in the .NET Framework class library. Violating this rule can reduce the usability of the library.", - "markdown": "Type names should not match the names of namespaces that are defined in the .NET Framework class library. Violating this rule can reduce the usability of the library." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1724", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppUEBlueprintCallableFunctionUnused", - "shortDescription": { - "text": "BlueprintCallable function is never used in Blueprint or C++ code" - }, - "fullDescription": { - "text": "BlueprintCallable function is never used in Blueprint or C++ code", - "markdown": "BlueprintCallable function is never used in Blueprint or C++ code" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppUEBlueprintCallableFunctionUnused", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Unreal Engine", - "index": 6, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBPossibleMistakenCallToGetType.2", - "shortDescription": { - "text": "Possible mistaken call to GetType()" - }, - "fullDescription": { - "text": "$type$.GetType()", - "markdown": "$type$.GetType()" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "VBPossibleMistakenCallToGetType.2", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1721", - "shortDescription": { - "text": "RoslynAnalyzers Property names should not match get methods" - }, - "fullDescription": { - "text": "The name of a public or protected member starts with \"\"Get\"\" and otherwise matches the name of a public or protected property. \"\"Get\"\" methods and properties should have names that clearly distinguish their function.", - "markdown": "The name of a public or protected member starts with \"\"Get\"\" and otherwise matches the name of a public or protected property. \"\"Get\"\" methods and properties should have names that clearly distinguish their function." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1721", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1720", - "shortDescription": { - "text": "RoslynAnalyzers Identifier contains type name" - }, - "fullDescription": { - "text": "Names of parameters and members are better used to communicate their meaning than to describe their type, which is expected to be provided by development tools. For names of members, if a data type name must be used, use a language-independent name instead of a language-specific one.", - "markdown": "Names of parameters and members are better used to communicate their meaning than to describe their type, which is expected to be provided by development tools. For names of members, if a data type name must be used, use a language-independent name instead of a language-specific one." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1720", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit1020", - "shortDescription": { - "text": "RoslynAnalyzers The TestCaseSource provides parameters to a source - field or property - that expects no parameters" - }, - "fullDescription": { - "text": "The TestCaseSource must not provide any parameters when the source is a field or a property.", - "markdown": "The TestCaseSource must not provide any parameters when the source is a field or a property." - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "NUnit1020", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticModuleImportInExternC", - "shortDescription": { - "text": "module-import-in-extern-c clang diagnostic" - }, - "fullDescription": { - "text": "-Wmodule-import-in-extern-c clang diagnostic · Learn more", - "markdown": "-Wmodule-import-in-extern-c clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmodule-import-in-extern-c)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticModuleImportInExternC", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticOpenaccSelfIfPotentialConflict", - "shortDescription": { - "text": "openacc-self-if-potential-conflict clang diagnostic" - }, - "fullDescription": { - "text": "-Wopenacc-self-if-potential-conflict clang diagnostic · Learn more", - "markdown": "-Wopenacc-self-if-potential-conflict clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wopenacc-self-if-potential-conflict)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticOpenaccSelfIfPotentialConflict", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MissingHeadTag", - "shortDescription": { - "text": "Important tags or attributes missing (missing <head>)" - }, - "fullDescription": { - "text": "<([)html(]) $attr1$>$cont$", - "markdown": "\\<(\\[)html(\\]) $attr1$\\>$cont$" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "MissingHeadTag", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HTML/Common Practices and Code Improvements", - "index": 74, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ArrangeDefaultValueWhenTypeEvident", - "shortDescription": { - "text": "Use preferred style of default value expression when type is evident" - }, - "fullDescription": { - "text": "Add or remove explicit type specification in default value expression when type is evident from the usage Learn more...", - "markdown": "Add or remove explicit type specification in default value expression when type is evident from the usage [Learn more...](https://www.jetbrains.com/help/rider/ArrangeDefaultValueWhenTypeEvident.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ArrangeDefaultValueWhenTypeEvident", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Syntax Style", - "index": 21, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceAsyncWithTaskReturn", - "shortDescription": { - "text": "Replace 'async' code with 'Task'-return" - }, - "fullDescription": { - "text": "Replace 'async' method or anonymous function with ordinary non-'async' code that returns 'Task'/'ValueTask' value instead of awaiting it. This changes the exception handling semantics of the code.", - "markdown": "Replace 'async' method or anonymous function with ordinary non-'async' code that returns 'Task'/'ValueTask' value instead of awaiting it. This changes the exception handling semantics of the code." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceAsyncWithTaskReturn", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppRedundantInlineSpecifier", - "shortDescription": { - "text": "Redundant 'inline' specifier" - }, - "fullDescription": { - "text": "The 'inline' specifier on a function definition is redundant", - "markdown": "The 'inline' specifier on a function definition is redundant" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppRedundantInlineSpecifier", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Redundancies in Code", - "index": 34, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppUE4ProbableMemoryIssuesWithUObject", - "shortDescription": { - "text": "Non-UProperty object member can be destroyed during garbage collection, resulting in a stale pointer" - }, - "fullDescription": { - "text": "Non-UProperty object member can be destroyed during garbage collection, resulting in a stale pointer", - "markdown": "Non-UProperty object member can be destroyed during garbage collection, resulting in a stale pointer" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppUE4ProbableMemoryIssuesWithUObject", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Unreal Engine", - "index": 6, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyMiscUnconventionalAssignOperator", - "shortDescription": { - "text": "misc-unconventional-assign-operator clang-tidy check" - }, - "fullDescription": { - "text": "misc-unconventional-assign-operator clang-tidy check · Learn more", - "markdown": "misc-unconventional-assign-operator clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/unconventional-assign-operator.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyMiscUnconventionalAssignOperator", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppRedundantElseKeywordInsideCompoundStatement", - "shortDescription": { - "text": "Redundant 'else' keyword inside compound statement" - }, - "fullDescription": { - "text": "Redundant 'else' keyword inside compound statement", - "markdown": "Redundant 'else' keyword inside compound statement" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppRedundantElseKeywordInsideCompoundStatement", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Redundancies in Code", - "index": 34, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCFStringLiteral", - "shortDescription": { - "text": "CFString-literal clang diagnostic" - }, - "fullDescription": { - "text": "-WCFString-literal clang diagnostic · Learn more", - "markdown": "-WCFString-literal clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wCFString-literal)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCFStringLiteral", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1716", - "shortDescription": { - "text": "RoslynAnalyzers Identifiers should not match keywords" - }, - "fullDescription": { - "text": "A namespace name or a type name matches a reserved keyword in a programming language. Identifiers for namespaces and types should not match keywords that are defined by languages that target the common language runtime.", - "markdown": "A namespace name or a type name matches a reserved keyword in a programming language. Identifiers for namespaces and types should not match keywords that are defined by languages that target the common language runtime." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1716", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit.IncorrectArgumentType", - "shortDescription": { - "text": "NUnit. Incompatible argument type or incorrect argument value." - }, - "fullDescription": { - "text": "Argument value in the [TestCase] attribute is incorrect or is not compatible with the test method parameter type Learn more...", - "markdown": "Argument value in the \\[TestCase\\] attribute is incorrect or is not compatible with the test method parameter type [Learn more...](https://www.jetbrains.com/help/rider/NUnit.IncorrectArgumentType.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NUnit.IncorrectArgumentType", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/NUnit", - "index": 26, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1715", - "shortDescription": { - "text": "RoslynAnalyzers Identifiers should have correct prefix" - }, - "fullDescription": { - "text": "The name of an externally visible interface does not start with an uppercase \"\"I\"\". The name of a generic type parameter on an externally visible type or method does not start with an uppercase \"\"T\"\".", - "markdown": "The name of an externally visible interface does not start with an uppercase \"\"I\"\". The name of a generic type parameter on an externally visible type or method does not start with an uppercase \"\"T\"\"." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1715", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1713", - "shortDescription": { - "text": "RoslynAnalyzers Events should not have 'Before' or 'After' prefix" - }, - "fullDescription": { - "text": "Event names should describe the action that raises the event. To name related events that are raised in a specific sequence, use the present or past tense to indicate the relative position in the sequence of actions. For example, when naming a pair of events that is raised when closing a resource, you might name it 'Closing' and 'Closed', instead of 'BeforeClose' and 'AfterClose'.", - "markdown": "Event names should describe the action that raises the event. To name related events that are raised in a specific sequence, use the present or past tense to indicate the relative position in the sequence of actions. For example, when naming a pair of events that is raised when closing a resource, you might name it 'Closing' and 'Closed', instead of 'BeforeClose' and 'AfterClose'." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1713", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1712", - "shortDescription": { - "text": "RoslynAnalyzers Do not prefix enum values with type name" - }, - "fullDescription": { - "text": "An enumeration's values should not start with the type name of the enumeration.", - "markdown": "An enumeration's values should not start with the type name of the enumeration." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1712", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1711", - "shortDescription": { - "text": "RoslynAnalyzers Identifiers should not have incorrect suffix" - }, - "fullDescription": { - "text": "By convention, only the names of types that extend certain base types or that implement certain interfaces, or types that are derived from these types, should end with specific reserved suffixes. Other type names should not use these reserved suffixes.", - "markdown": "By convention, only the names of types that extend certain base types or that implement certain interfaces, or types that are derived from these types, should end with specific reserved suffixes. Other type names should not use these reserved suffixes." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1711", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1710", - "shortDescription": { - "text": "RoslynAnalyzers Identifiers should have correct suffix" - }, - "fullDescription": { - "text": "By convention, the names of types that extend certain base types or that implement certain interfaces, or types that are derived from these types, have a suffix that is associated with the base type or interface.", - "markdown": "By convention, the names of types that extend certain base types or that implement certain interfaces, or types that are derived from these types, have a suffix that is associated with the base type or interface." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1710", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UsePatternMatching", - "shortDescription": { - "text": "Convert 'as' expression type check and the following null check into pattern matching" - }, - "fullDescription": { - "text": "Replace variable for 'as' expression type check and the following check for it being not null with C# 7.0 pattern matching expression Learn more...", - "markdown": "Replace variable for 'as' expression type check and the following check for it being not null with C# 7.0 pattern matching expression [Learn more...](https://www.jetbrains.com/help/rider/UsePatternMatching.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UsePatternMatching", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppTemplateParameterShadowing", - "shortDescription": { - "text": "Redeclaration of a template parameter from an outer scope" - }, - "fullDescription": { - "text": "A template parameter from an outer scope is shadowed by a declaration with the same name", - "markdown": "A template parameter from an outer scope is shadowed by a declaration with the same name" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppTemplateParameterShadowing", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Compiler Warnings", - "index": 75, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticZeroLengthArray", - "shortDescription": { - "text": "zero-length-array clang diagnostic" - }, - "fullDescription": { - "text": "-Wzero-length-array clang diagnostic · Learn more", - "markdown": "-Wzero-length-array clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wzero-length-array)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticZeroLengthArray", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1124FadeOut", - "shortDescription": { - "text": "RoslynAnalyzers Inline local variable" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1124FadeOut", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityRedundantMemberInit", - "shortDescription": { - "text": "readability-redundant-member-init clang-tidy check" - }, - "fullDescription": { - "text": "readability-redundant-member-init clang-tidy check · Learn more", - "markdown": "readability-redundant-member-init clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/redundant-member-init.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityRedundantMemberInit", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1708", - "shortDescription": { - "text": "RoslynAnalyzers Identifiers should differ by more than case" - }, - "fullDescription": { - "text": "Identifiers for namespaces, types, members, and parameters cannot differ only by case because languages that target the common language runtime are not required to be case-sensitive.", - "markdown": "Identifiers for namespaces, types, members, and parameters cannot differ only by case because languages that target the common language runtime are not required to be case-sensitive." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1708", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1707", - "shortDescription": { - "text": "RoslynAnalyzers Identifiers should not contain underscores" - }, - "fullDescription": { - "text": "By convention, identifier names do not contain the underscore (_) character. This rule checks namespaces, types, members, and parameters.", - "markdown": "By convention, identifier names do not contain the underscore (_) character. This rule checks namespaces, types, members, and parameters." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1707", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneFoldInitType", - "shortDescription": { - "text": "bugprone-fold-init-type clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-fold-init-type clang-tidy check · Learn more", - "markdown": "bugprone-fold-init-type clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/fold-init-type.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneFoldInitType", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit.AsyncMethodMustBeTask", - "shortDescription": { - "text": "NUnit. Async test method must return Task or Task<T>" - }, - "fullDescription": { - "text": "NUnit supports only async test methods that return Task or Task Learn more...", - "markdown": "NUnit supports only async test methods that return Task or Task [Learn more...](https://www.jetbrains.com/help/rider/NUnit.AsyncMethodMustBeTask.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NUnit.AsyncMethodMustBeTask", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/NUnit", - "index": 26, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1700", - "shortDescription": { - "text": "RoslynAnalyzers Do not name enum values 'Reserved'" - }, - "fullDescription": { - "text": "This rule assumes that an enumeration member that has a name that contains \"reserved\" is not currently used but is a placeholder to be renamed or removed in a future version. Renaming or removing a member is a breaking change.", - "markdown": "This rule assumes that an enumeration member that has a name that contains \"reserved\" is not currently used but is a placeholder to be renamed or removed in a future version. Renaming or removing a member is a breaking change." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1700", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityStaticDefinitionInAnonymousNamespace", - "shortDescription": { - "text": "readability-static-definition-in-anonymous-namespace clang-tidy check" - }, - "fullDescription": { - "text": "readability-static-definition-in-anonymous-namespace clang-tidy check · Learn more", - "markdown": "readability-static-definition-in-anonymous-namespace clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/static-definition-in-anonymous-namespace.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityStaticDefinitionInAnonymousNamespace", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneInaccurateErase", - "shortDescription": { - "text": "bugprone-inaccurate-erase clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-inaccurate-erase clang-tidy check · Learn more", - "markdown": "bugprone-inaccurate-erase clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/inaccurate-erase.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneInaccurateErase", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticAutoDeclExtensions", - "shortDescription": { - "text": "auto-decl-extensions clang diagnostic" - }, - "fullDescription": { - "text": "-Wauto-decl-extensions clang diagnostic · Learn more", - "markdown": "-Wauto-decl-extensions clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wauto-decl-extensions)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticAutoDeclExtensions", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMismatchedReturnTypes", - "shortDescription": { - "text": "mismatched-return-types clang diagnostic" - }, - "fullDescription": { - "text": "-Wmismatched-return-types clang diagnostic · Learn more", - "markdown": "-Wmismatched-return-types clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmismatched-return-types)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMismatchedReturnTypes", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS1042", - "shortDescription": { - "text": "RoslynAnalyzers Implementations of this interface are not allowed" - }, - "fullDescription": { - "text": "The author of this interface has deprecated implementing this interface.", - "markdown": "The author of this interface has deprecated implementing this interface." - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "RS1042", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS1040", - "shortDescription": { - "text": "RoslynAnalyzers This call to 'SemanticModel.GetDeclaredSymbol()' will always return 'null'" - }, - "fullDescription": { - "text": "Calling 'SemanticModel.GetDeclaredSymbol' with an argument of type 'FieldDeclarationSyntax' or 'EventFieldDeclarationSyntax' will always return 'null'. Call 'GetDeclaredSymbol' with the variable declarators from the field instead.", - "markdown": "Calling 'SemanticModel.GetDeclaredSymbol' with an argument of type 'FieldDeclarationSyntax' or 'EventFieldDeclarationSyntax' will always return 'null'. Call 'GetDeclaredSymbol' with the variable declarators from the field instead." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS1040", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS1041", - "shortDescription": { - "text": "RoslynAnalyzers Compiler extensions should be implemented in assemblies targeting netstandard2.0" - }, - "fullDescription": { - "text": "Types which implement compiler extension points should only be declared in assemblies targeting netstandard2.0. More specific target frameworks are only available in a subset of supported compilation scenarios, so targeting them may cause the feature to behave unpredictably.", - "markdown": "Types which implement compiler extension points should only be declared in assemblies targeting netstandard2.0. More specific target frameworks are only available in a subset of supported compilation scenarios, so targeting them may cause the feature to behave unpredictably." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS1041", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticIdiomaticParentheses", - "shortDescription": { - "text": "idiomatic-parentheses clang diagnostic" - }, - "fullDescription": { - "text": "-Widiomatic-parentheses clang diagnostic · Learn more", - "markdown": "-Widiomatic-parentheses clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#widiomatic-parentheses)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticIdiomaticParentheses", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerCoreBitwiseShift", - "shortDescription": { - "text": "core.BitwiseShift clang static analyzer check" - }, - "fullDescription": { - "text": "core.BitwiseShift clang static analyzer check · Learn more", - "markdown": "core.BitwiseShift clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerCoreBitwiseShift", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppTemplateParameterNeverUsed", - "shortDescription": { - "text": "Template parameter is never used" - }, - "fullDescription": { - "text": "A template parameter is never used", - "markdown": "A template parameter is never used" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppTemplateParameterNeverUsed", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS1039", - "shortDescription": { - "text": "RoslynAnalyzers This call to 'SemanticModel.GetDeclaredSymbol()' will always return 'null'" - }, - "fullDescription": { - "text": "Calling 'SemanticModel.GetDeclaredSymbol' with on certain types inheriting from 'SyntaxNode', for example 'GlobalStatementSyntax' and 'IncompleteMemberSyntax' will always return 'null'.", - "markdown": "Calling 'SemanticModel.GetDeclaredSymbol' with on certain types inheriting from 'SyntaxNode', for example 'GlobalStatementSyntax' and 'IncompleteMemberSyntax' will always return 'null'." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS1039", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1819", - "shortDescription": { - "text": "RoslynAnalyzers Properties should not return arrays" - }, - "fullDescription": { - "text": "Arrays that are returned by properties are not write-protected, even when the property is read-only. To keep the array tamper-proof, the property must return a copy of the array. Typically, users will not understand the adverse performance implications of calling such a property.", - "markdown": "Arrays that are returned by properties are not write-protected, even when the property is read-only. To keep the array tamper-proof, the property must return a copy of the array. Typically, users will not understand the adverse performance implications of calling such a property." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1819", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS1037", - "shortDescription": { - "text": "RoslynAnalyzers Add \"CompilationEnd\" custom tag to compilation end diagnostic descriptor" - }, - "fullDescription": { - "text": "'DiagnosticDescriptor' assigned to field is used to report a compilation end diagnostic, but the 'DiagnosticDescriptor' constructor used to initialize it does not pass in the required custom tag \"CompilationEnd\". See documentation for 'WellKnownDiagnosticTags.CompilationEnd' for details.", - "markdown": "'DiagnosticDescriptor' assigned to field is used to report a compilation end diagnostic, but the 'DiagnosticDescriptor' constructor used to initialize it does not pass in the required custom tag \"CompilationEnd\". See documentation for 'WellKnownDiagnosticTags.CompilationEnd' for details." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS1037", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticLargeByValueCopy", - "shortDescription": { - "text": "large-by-value-copy clang diagnostic" - }, - "fullDescription": { - "text": "-Wlarge-by-value-copy clang diagnostic · Learn more", - "markdown": "-Wlarge-by-value-copy clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wlarge-by-value-copy)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticLargeByValueCopy", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS1038", - "shortDescription": { - "text": "RoslynAnalyzers Compiler extensions should be implemented in assemblies with compiler-provided references" - }, - "fullDescription": { - "text": "Types which implement compiler extension points should not be declared in assemblies that contain references to assemblies which are not provided by all compilation scenarios. Doing so may cause the feature to behave unpredictably.", - "markdown": "Types which implement compiler extension points should not be declared in assemblies that contain references to assemblies which are not provided by all compilation scenarios. Doing so may cause the feature to behave unpredictably." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS1038", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS1035", - "shortDescription": { - "text": "RoslynAnalyzers Do not use APIs banned for analyzers" - }, - "fullDescription": { - "text": "The symbol has been marked as banned for use in analyzers, and an alternate should be used instead.", - "markdown": "The symbol has been marked as banned for use in analyzers, and an alternate should be used instead." - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "RS1035", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1816", - "shortDescription": { - "text": "RoslynAnalyzers Dispose methods should call SuppressFinalize" - }, - "fullDescription": { - "text": "A method that is an implementation of Dispose does not call GC.SuppressFinalize; or a method that is not an implementation of Dispose calls GC.SuppressFinalize; or a method calls GC.SuppressFinalize and passes something other than this (Me in Visual Basic).", - "markdown": "A method that is an implementation of Dispose does not call GC.SuppressFinalize; or a method that is not an implementation of Dispose calls GC.SuppressFinalize; or a method calls GC.SuppressFinalize and passes something other than this (Me in Visual Basic)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1816", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS1036", - "shortDescription": { - "text": "RoslynAnalyzers Specify analyzer banned API enforcement setting" - }, - "fullDescription": { - "text": "A project containing analyzers or source generators should specify the property 'true'.", - "markdown": "A project containing analyzers or source generators should specify the property 'true'." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS1036", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1815", - "shortDescription": { - "text": "RoslynAnalyzers Override equals and operator equals on value types" - }, - "fullDescription": { - "text": "For value types, the inherited implementation of Equals uses the Reflection library and compares the contents of all fields. Reflection is computationally expensive, and comparing every field for equality might be unnecessary. If you expect users to compare or sort instances, or to use instances as hash table keys, your value type should implement Equals.", - "markdown": "For value types, the inherited implementation of Equals uses the Reflection library and compares the contents of all fields. Reflection is computationally expensive, and comparing every field for equality might be unnecessary. If you expect users to compare or sort instances, or to use instances as hash table keys, your value type should implement Equals." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1815", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS1033", - "shortDescription": { - "text": "RoslynAnalyzers Define diagnostic description correctly" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS1033", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS1034", - "shortDescription": { - "text": "RoslynAnalyzers Prefer 'IsKind' for checking syntax kinds" - }, - "fullDescription": { - "text": "Prefer 'syntax.IsKind(kind)' to 'syntax.Kind() == kind' when checking syntax kinds. Code using 'IsKind' is slightly more efficient at runtime, so consistent use of this form where applicable helps improve performance in complex analysis scenarios.", - "markdown": "Prefer 'syntax.IsKind(kind)' to 'syntax.Kind() == kind' when checking syntax kinds. Code using 'IsKind' is slightly more efficient at runtime, so consistent use of this form where applicable helps improve performance in complex analysis scenarios." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS1034", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1814", - "shortDescription": { - "text": "RoslynAnalyzers Prefer jagged arrays over multidimensional" - }, - "fullDescription": { - "text": "A jagged array is an array whose elements are arrays. The arrays that make up the elements can be of different sizes, leading to less wasted space for some sets of data.", - "markdown": "A jagged array is an array whose elements are arrays. The arrays that make up the elements can be of different sizes, leading to less wasted space for some sets of data." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1814", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1813", - "shortDescription": { - "text": "RoslynAnalyzers Avoid unsealed attributes" - }, - "fullDescription": { - "text": "The .NET Framework class library provides methods for retrieving custom attributes. By default, these methods search the attribute inheritance hierarchy. Sealing the attribute eliminates the search through the inheritance hierarchy and can improve performance.", - "markdown": "The .NET Framework class library provides methods for retrieving custom attributes. By default, these methods search the attribute inheritance hierarchy. Sealing the attribute eliminates the search through the inheritance hierarchy and can improve performance." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1813", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1812", - "shortDescription": { - "text": "RoslynAnalyzers Avoid uninstantiated internal classes" - }, - "fullDescription": { - "text": "An instance of an assembly-level type is not created by code in the assembly.", - "markdown": "An instance of an assembly-level type is not created by code in the assembly." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1812", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1810", - "shortDescription": { - "text": "RoslynAnalyzers Initialize reference type static fields inline" - }, - "fullDescription": { - "text": "A reference type declares an explicit static constructor. To fix a violation of this rule, initialize all static data when it is declared and remove the static constructor.", - "markdown": "A reference type declares an explicit static constructor. To fix a violation of this rule, initialize all static data when it is declared and remove the static constructor." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1810", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "InconsistentNaming", - "shortDescription": { - "text": "Inconsistent Naming" - }, - "fullDescription": { - "text": "Name doesn't match naming style defined for this kind of symbol Learn more...", - "markdown": "Name doesn't match naming style defined for this kind of symbol [Learn more...](https://www.jetbrains.com/help/rider/InconsistentNaming.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "InconsistentNaming", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Constraints Violations", - "index": 80, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnevaluatedExpression", - "shortDescription": { - "text": "unevaluated-expression clang diagnostic" - }, - "fullDescription": { - "text": "-Wunevaluated-expression clang diagnostic · Learn more", - "markdown": "-Wunevaluated-expression clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunevaluated-expression)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnevaluatedExpression", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppMultiCharacterWideLiteral", - "shortDescription": { - "text": "Multi-character wide character literal" - }, - "fullDescription": { - "text": "Multi-character wide character literal", - "markdown": "Multi-character wide character literal" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppMultiCharacterWideLiteral", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticAnalyzerIncompatiblePlugin", - "shortDescription": { - "text": "analyzer-incompatible-plugin clang diagnostic" - }, - "fullDescription": { - "text": "-Wanalyzer-incompatible-plugin clang diagnostic · Learn more", - "markdown": "-Wanalyzer-incompatible-plugin clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wanalyzer-incompatible-plugin)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticAnalyzerIncompatiblePlugin", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBReplaceWithOfType.LastOrDefault.1", - "shortDescription": { - "text": "Replace with OfType<T>().LastOrDefault() (replace with OfType(Of ..)().LastOrDefault())" - }, - "fullDescription": { - "text": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).LastOrDefault(Function ($y$) $y$ IsNot Nothing)", - "markdown": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).LastOrDefault(Function ($y$) $y$ IsNot Nothing)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBReplaceWithOfType.LastOrDefault.1", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBReplaceWithOfType.LastOrDefault.2", - "shortDescription": { - "text": "Replace with OfType<T>().LastOrDefault() (replace with OfType(Of ..)().LastOrDefault(..))" - }, - "fullDescription": { - "text": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).LastOrDefault(Function ($y$) $y$ IsNot Nothing AndAlso $expr$)", - "markdown": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).LastOrDefault(Function ($y$) $y$ IsNot Nothing AndAlso $expr$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBReplaceWithOfType.LastOrDefault.2", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPropertyAccessDotSyntax", - "shortDescription": { - "text": "property-access-dot-syntax clang diagnostic" - }, - "fullDescription": { - "text": "-Wproperty-access-dot-syntax clang diagnostic · Learn more", - "markdown": "-Wproperty-access-dot-syntax clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wproperty-access-dot-syntax)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPropertyAccessDotSyntax", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.Entities.MustBeSurroundedWithRefRwRo", - "shortDescription": { - "text": "SystemApi.Query<...> type parameters must be Aspect, RefRO, or RefRW" - }, - "fullDescription": { - "text": "SystemApi.Query<...> type parameters must be Aspect, RefRO, or RefRW", - "markdown": "SystemApi.Query\\<...\\> type parameters must be Aspect, RefRO, or RefRW" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.Entities.MustBeSurroundedWithRefRwRo", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "StringLastIndexOfIsCultureSpecific.3", - "shortDescription": { - "text": "String.LastIndexOf is culture-specific (string.LastIndexOf(string, int) is culture-specific)" - }, - "fullDescription": { - "text": "$s$.LastIndexOf($sarg$, $iarg1$, $iarg2$) Learn more...", - "markdown": "$s$.LastIndexOf($sarg$, $iarg1$, $iarg2$) [Learn more...](https://www.jetbrains.com/help/rider/StringLastIndexOfIsCultureSpecific.3.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "StringLastIndexOfIsCultureSpecific.3", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1806", - "shortDescription": { - "text": "RoslynAnalyzers Do not ignore method results" - }, - "fullDescription": { - "text": "A new object is created but never used; or a method that creates and returns a new string is called and the new string is never used; or a COM or P/Invoke method returns an HRESULT or error code that is never used.", - "markdown": "A new object is created but never used; or a method that creates and returns a new string is called and the new string is never used; or a COM or P/Invoke method returns an HRESULT or error code that is never used." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1806", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "StringLastIndexOfIsCultureSpecific.2", - "shortDescription": { - "text": "String.LastIndexOf is culture-specific (string.LastIndexOf(string, int) is culture-specific)" - }, - "fullDescription": { - "text": "$s$.LastIndexOf($sarg$, $iarg1$) Learn more...", - "markdown": "$s$.LastIndexOf($sarg$, $iarg1$) [Learn more...](https://www.jetbrains.com/help/rider/StringLastIndexOfIsCultureSpecific.2.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "StringLastIndexOfIsCultureSpecific.2", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Razor.LayoutNotResolved", - "shortDescription": { - "text": "Unknown Razor layout" - }, - "fullDescription": { - "text": "Unknown Razor layout", - "markdown": "Unknown Razor layout" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "Razor.LayoutNotResolved", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Razor/Potential Code Quality Issues", - "index": 93, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1805", - "shortDescription": { - "text": "RoslynAnalyzers Do not initialize unnecessarily" - }, - "fullDescription": { - "text": "The .NET runtime initializes all fields of reference types to their default values before running the constructor. In most cases, explicitly initializing a field to its default value in a constructor is redundant, adding maintenance costs and potentially degrading performance (such as with increased assembly size), and the explicit initialization can be removed. In some cases, such as with static readonly fields that permanently retain their default value, consider instead changing them to be constants or properties.", - "markdown": "The .NET runtime initializes all fields of reference types to their default values before running the constructor. In most cases, explicitly initializing a field to its default value in a constructor is redundant, adding maintenance costs and potentially degrading performance (such as with increased assembly size), and the explicit initialization can be removed. In some cases, such as with static readonly fields that permanently retain their default value, consider instead changing them to be constants or properties." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1805", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1802", - "shortDescription": { - "text": "RoslynAnalyzers Use literals where appropriate" - }, - "fullDescription": { - "text": "A field is declared static and read-only (Shared and ReadOnly in Visual Basic), and is initialized by using a value that is computable at compile time. Because the value that is assigned to the targeted field is computable at compile time, change the declaration to a const (Const in Visual Basic) field so that the value is computed at compile time instead of at runtime.", - "markdown": "A field is declared static and read-only (Shared and ReadOnly in Visual Basic), and is initialized by using a value that is computable at compile time. Because the value that is assigned to the targeted field is computable at compile time, change the declaration to a const (Const in Visual Basic) field so that the value is computed at compile time instead of at runtime." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1802", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantNullableTypeMark", - "shortDescription": { - "text": "Type check for nullable type is equal to underlying type check" - }, - "fullDescription": { - "text": "Type check for nullable type in 'is' expression is equal to underlying type check", - "markdown": "Type check for nullable type in 'is' expression is equal to underlying type check" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantNullableTypeMark", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticHipOnly", - "shortDescription": { - "text": "hip-only clang diagnostic" - }, - "fullDescription": { - "text": "-Whip-only clang diagnostic · Learn more", - "markdown": "-Whip-only clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#whip-only)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticHipOnly", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "StringLastIndexOfIsCultureSpecific.1", - "shortDescription": { - "text": "String.LastIndexOf is culture-specific (string.LastIndexOf(string) is culture-specific)" - }, - "fullDescription": { - "text": "$s$.LastIndexOf($sarg$) Learn more...", - "markdown": "$s$.LastIndexOf($sarg$) [Learn more...](https://www.jetbrains.com/help/rider/StringLastIndexOfIsCultureSpecific.1.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "StringLastIndexOfIsCultureSpecific.1", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticSwitchBool", - "shortDescription": { - "text": "switch-bool clang diagnostic" - }, - "fullDescription": { - "text": "-Wswitch-bool clang diagnostic · Learn more", - "markdown": "-Wswitch-bool clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wswitch-bool)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticSwitchBool", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "FSharpRedundantAttributeParens", - "shortDescription": { - "text": "Redundant attribute parentheses argument" - }, - "fullDescription": { - "text": "Parentheses are redundant if attribute has no arguments.", - "markdown": "Parentheses are redundant if attribute has no arguments." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "FSharpRedundantAttributeParens", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "F#/Redundancies in Code", - "index": 73, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticBitwiseInsteadOfLogical", - "shortDescription": { - "text": "bitwise-instead-of-logical clang diagnostic" - }, - "fullDescription": { - "text": "-Wbitwise-instead-of-logical clang diagnostic · Learn more", - "markdown": "-Wbitwise-instead-of-logical clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wbitwise-instead-of-logical)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticBitwiseInsteadOfLogical", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPedanticMacros", - "shortDescription": { - "text": "pedantic-macros clang diagnostic" - }, - "fullDescription": { - "text": "-Wpedantic-macros clang diagnostic · Learn more", - "markdown": "-Wpedantic-macros clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpedantic-macros)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPedanticMacros", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyHicppSignedBitwise", - "shortDescription": { - "text": "hicpp-signed-bitwise clang-tidy check" - }, - "fullDescription": { - "text": "hicpp-signed-bitwise clang-tidy check · Learn more", - "markdown": "hicpp-signed-bitwise clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/signed-bitwise.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyHicppSignedBitwise", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticInvalidUtf8", - "shortDescription": { - "text": "invalid-utf8 clang diagnostic" - }, - "fullDescription": { - "text": "-Winvalid-utf8 clang diagnostic · Learn more", - "markdown": "-Winvalid-utf8 clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winvalid-utf8)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticInvalidUtf8", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppNonInlineVariableDefinitionInHeaderFile", - "shortDescription": { - "text": "Non-inline variable definition in a header file" - }, - "fullDescription": { - "text": "A variable definition in a header file that will lead to a multiple definition linkage error Learn more...", - "markdown": "A variable definition in a header file that will lead to a multiple definition linkage error [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rs-inline)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppNonInlineVariableDefinitionInHeaderFile", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnusedLabel", - "shortDescription": { - "text": "unused-label clang diagnostic" - }, - "fullDescription": { - "text": "-Wunused-label clang diagnostic · Learn more", - "markdown": "-Wunused-label clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunused-label)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnusedLabel", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.GridDefinitionsCanBeConvertedToAttribute", - "shortDescription": { - "text": "Grid columns/rows definitions can be converted to attribute" - }, - "fullDescription": { - "text": "Grid columns/rows definitions can be converted to attribute", - "markdown": "Grid columns/rows definitions can be converted to attribute" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "Xaml.GridDefinitionsCanBeConvertedToAttribute", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Code Notification", - "index": 5, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS9216", - "shortDescription": { - "text": "A value of type 'System.Threading.Lock' converted to a different type will use likely unintended monitor-based locking in 'lock' statement" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS9216", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerUnixCstringCStringModeling", - "shortDescription": { - "text": "unix.cstring.CStringModeling clang static analyzer check" - }, - "fullDescription": { - "text": "unix.cstring.CStringModeling clang static analyzer check · Learn more", - "markdown": "unix.cstring.CStringModeling clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerUnixCstringCStringModeling", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticImportPreprocessorDirectivePedantic", - "shortDescription": { - "text": "import-preprocessor-directive-pedantic clang diagnostic" - }, - "fullDescription": { - "text": "-Wimport-preprocessor-directive-pedantic clang diagnostic · Learn more", - "markdown": "-Wimport-preprocessor-directive-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wimport-preprocessor-directive-pedantic)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticImportPreprocessorDirectivePedantic", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppMsExtCopyElisionInCopyInitDeclarator", - "shortDescription": { - "text": "Call of deleted copy constructor elided during copy-initialization. This is non-standard Microsoft C++ extension." - }, - "fullDescription": { - "text": "Call of deleted copy constructor elided during copy-initialization. This is non-standard Microsoft C++ extension.", - "markdown": "Call of deleted copy constructor elided during copy-initialization. This is non-standard Microsoft C++ extension." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppMsExtCopyElisionInCopyInitDeclarator", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ResourceNotResolved", - "shortDescription": { - "text": "Cannot resolve resource" - }, - "fullDescription": { - "text": "Cannot resolve resource", - "markdown": "Cannot resolve resource" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "ResourceNotResolved", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBWarnings__BC42016", - "shortDescription": { - "text": "Runtime errors might occur when converting X to Y" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/56k670kt.aspx)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "VBWarnings__BC42016", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Compiler Warnings", - "index": 110, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyMiscUseInternalLinkage", - "shortDescription": { - "text": "misc-use-internal-linkage clang-tidy check" - }, - "fullDescription": { - "text": "misc-use-internal-linkage clang-tidy check · Learn more", - "markdown": "misc-use-internal-linkage clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/use-internal-linkage.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyMiscUseInternalLinkage", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticConstantConversion", - "shortDescription": { - "text": "constant-conversion clang diagnostic" - }, - "fullDescription": { - "text": "-Wconstant-conversion clang diagnostic · Learn more", - "markdown": "-Wconstant-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wconstant-conversion)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticConstantConversion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticExternCCompat", - "shortDescription": { - "text": "extern-c-compat clang diagnostic" - }, - "fullDescription": { - "text": "-Wextern-c-compat clang diagnostic · Learn more", - "markdown": "-Wextern-c-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wextern-c-compat)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticExternCCompat", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnguardedAvailabilityNew", - "shortDescription": { - "text": "unguarded-availability-new clang diagnostic" - }, - "fullDescription": { - "text": "-Wunguarded-availability-new clang diagnostic · Learn more", - "markdown": "-Wunguarded-availability-new clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunguarded-availability-new)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnguardedAvailabilityNew", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS9200", - "shortDescription": { - "text": "A default value is specified for 'ref readonly' parameter, but 'ref readonly' should be used only for references. Consider declaring the parameter as 'in'." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/ref-modifiers-errors#reference-variable-restrictions)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS9200", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUndefinedInternalType", - "shortDescription": { - "text": "undefined-internal-type clang diagnostic" - }, - "fullDescription": { - "text": "-Wundefined-internal-type clang diagnostic · Learn more", - "markdown": "-Wundefined-internal-type clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wundefined-internal-type)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUndefinedInternalType", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticIgnoredAttributes", - "shortDescription": { - "text": "ignored-attributes clang diagnostic" - }, - "fullDescription": { - "text": "-Wignored-attributes clang diagnostic · Learn more", - "markdown": "-Wignored-attributes clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wignored-attributes)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticIgnoredAttributes", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyLlvmlibcInlineFunctionDecl", - "shortDescription": { - "text": "llvmlibc-inline-function-decl clang-tidy check" - }, - "fullDescription": { - "text": "llvmlibc-inline-function-decl clang-tidy check · Learn more", - "markdown": "llvmlibc-inline-function-decl clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/llvmlibc/inline-function-decl.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyLlvmlibcInlineFunctionDecl", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS9204", - "shortDescription": { - "text": "Type is for evaluation purposes only and is subject to change or removal in future updates. Suppress this diagnostic to proceed." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS9204", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp23Extensions", - "shortDescription": { - "text": "c++23-extensions clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++23-extensions clang diagnostic · Learn more", - "markdown": "-Wc++23-extensions clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-23-extensions)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp23Extensions", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppRedefinitionOfDefaultArgumentInOverrideFunction", - "shortDescription": { - "text": "Override function redefines a default parameter argument" - }, - "fullDescription": { - "text": "An override function redefines a default parameter argument, previously defined in a base function Learn more...", - "markdown": "An override function redefines a default parameter argument, previously defined in a base function [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rh-virtual-default-arg)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppRedefinitionOfDefaultArgumentInOverrideFunction", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS9208", - "shortDescription": { - "text": "Collection expression may incur unexpected heap allocations" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS9208", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS9209", - "shortDescription": { - "text": "Collection expression may incur unexpected heap allocations due to the use of '..' spreads" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS9209", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerCplusplusVirtualCallModeling", - "shortDescription": { - "text": "cplusplus.VirtualCallModeling clang static analyzer check" - }, - "fullDescription": { - "text": "cplusplus.VirtualCallModeling clang static analyzer check · Learn more", - "markdown": "cplusplus.VirtualCallModeling clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerCplusplusVirtualCallModeling", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerValistUnterminated", - "shortDescription": { - "text": "valist.Unterminated clang static analyzer check" - }, - "fullDescription": { - "text": "valist.Unterminated clang static analyzer check · Learn more", - "markdown": "valist.Unterminated clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerValistUnterminated", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Asp.ThemeNotResolved", - "shortDescription": { - "text": "Unknown theme" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "Asp.ThemeNotResolved", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Aspx/Potential Code Quality Issues", - "index": 64, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerValistCopyToSelf", - "shortDescription": { - "text": "valist.CopyToSelf clang static analyzer check" - }, - "fullDescription": { - "text": "valist.CopyToSelf clang static analyzer check · Learn more", - "markdown": "valist.CopyToSelf clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerValistCopyToSelf", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBWarnings__BC42025", - "shortDescription": { - "text": "Access of shared member through an instance" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/y6t76186.aspx)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "VBWarnings__BC42025", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Compiler Warnings", - "index": 110, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticNonVirtualDtor", - "shortDescription": { - "text": "non-virtual-dtor clang diagnostic" - }, - "fullDescription": { - "text": "-Wnon-virtual-dtor clang diagnostic · Learn more", - "markdown": "-Wnon-virtual-dtor clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnon-virtual-dtor)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticNonVirtualDtor", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticFixedPointOverflow", - "shortDescription": { - "text": "fixed-point-overflow clang diagnostic" - }, - "fullDescription": { - "text": "-Wfixed-point-overflow clang diagnostic · Learn more", - "markdown": "-Wfixed-point-overflow clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wfixed-point-overflow)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticFixedPointOverflow", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerUnixBlockInCriticalSection", - "shortDescription": { - "text": "unix.BlockInCriticalSection clang static analyzer check" - }, - "fullDescription": { - "text": "unix.BlockInCriticalSection clang static analyzer check · Learn more", - "markdown": "unix.BlockInCriticalSection clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerUnixBlockInCriticalSection", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyObjcAssertEquals", - "shortDescription": { - "text": "objc-assert-equals clang-tidy check" - }, - "fullDescription": { - "text": "objc-assert-equals clang-tidy check · Learn more", - "markdown": "objc-assert-equals clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/objc/assert-equals.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyObjcAssertEquals", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerOsxCocoaObjCGenerics", - "shortDescription": { - "text": "osx.cocoa.ObjCGenerics clang static analyzer check" - }, - "fullDescription": { - "text": "osx.cocoa.ObjCGenerics clang static analyzer check · Learn more", - "markdown": "osx.cocoa.ObjCGenerics clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerOsxCocoaObjCGenerics", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMissingSysroot", - "shortDescription": { - "text": "missing-sysroot clang diagnostic" - }, - "fullDescription": { - "text": "-Wmissing-sysroot clang diagnostic · Learn more", - "markdown": "-Wmissing-sysroot clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmissing-sysroot)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMissingSysroot", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneNoEscape", - "shortDescription": { - "text": "bugprone-no-escape clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-no-escape clang-tidy check · Learn more", - "markdown": "bugprone-no-escape clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/no-escape.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneNoEscape", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp11CompatPedantic", - "shortDescription": { - "text": "c++11-compat-pedantic clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++11-compat-pedantic clang diagnostic · Learn more", - "markdown": "-Wc++11-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-11-compat-pedantic)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp11CompatPedantic", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.XamlUnknownDeviceFamilyTypeHighlighting", - "shortDescription": { - "text": "Unknown DeviceFamily" - }, - "fullDescription": { - "text": "Unknown DeviceFamily", - "markdown": "Unknown DeviceFamily" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Xaml.XamlUnknownDeviceFamilyTypeHighlighting", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Potential Code Quality Issues", - "index": 45, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticReservedUserDefinedLiteral", - "shortDescription": { - "text": "reserved-user-defined-literal clang diagnostic" - }, - "fullDescription": { - "text": "-Wreserved-user-defined-literal clang diagnostic · Learn more", - "markdown": "-Wreserved-user-defined-literal clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wreserved-user-defined-literal)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticReservedUserDefinedLiteral", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.DecimalParsingIsCultureDependent", - "shortDescription": { - "text": "Decimal numbers parsed depending on current machine culture" - }, - "fullDescription": { - "text": "Decimal numbers parsed depending on current machine culture", - "markdown": "Decimal numbers parsed depending on current machine culture" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Xaml.DecimalParsingIsCultureDependent", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Code Notification", - "index": 5, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS9264", - "shortDescription": { - "text": "Non-nullable backing field is uninitialized." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS9264", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.InvalidType", - "shortDescription": { - "text": "Object/markup extension of invalid type" - }, - "fullDescription": { - "text": "Object/markup extension of invalid type", - "markdown": "Object/markup extension of invalid type" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "Xaml.InvalidType", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Code Notification", - "index": 5, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS1010", - "shortDescription": { - "text": "RoslynAnalyzers Create code actions should have a unique EquivalenceKey for FixAll occurrences support" - }, - "fullDescription": { - "text": "A CodeFixProvider that intends to support fix all occurrences must classify the registered code actions into equivalence classes by assigning it an explicit, non-null equivalence key which is unique for each kind of code action created by this fixer. This enables the FixAllProvider to fix all diagnostics in the required scope by applying code actions from this fixer that are in the equivalence class of the trigger code action.", - "markdown": "A CodeFixProvider that intends to support fix all occurrences must classify the registered code actions into equivalence classes by assigning it an explicit, non-null equivalence key which is unique for each kind of code action created by this fixer. This enables the FixAllProvider to fix all diagnostics in the required scope by applying code actions from this fixer that are in the equivalence class of the trigger code action." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS1010", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyModernizeUseEmplace", - "shortDescription": { - "text": "modernize-use-emplace clang-tidy check" - }, - "fullDescription": { - "text": "modernize-use-emplace clang-tidy check · Learn more", - "markdown": "modernize-use-emplace clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-emplace.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyModernizeUseEmplace", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticBitwiseOpParentheses", - "shortDescription": { - "text": "bitwise-op-parentheses clang diagnostic" - }, - "fullDescription": { - "text": "-Wbitwise-op-parentheses clang diagnostic · Learn more", - "markdown": "-Wbitwise-op-parentheses clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wbitwise-op-parentheses)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticBitwiseOpParentheses", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyModernizeRawStringLiteral", - "shortDescription": { - "text": "modernize-raw-string-literal clang-tidy check" - }, - "fullDescription": { - "text": "modernize-raw-string-literal clang-tidy check · Learn more", - "markdown": "modernize-raw-string-literal clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/raw-string-literal.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyModernizeRawStringLiteral", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS1006", - "shortDescription": { - "text": "RoslynAnalyzers Invalid type argument for DiagnosticAnalyzer's Register method" - }, - "fullDescription": { - "text": "DiagnosticAnalyzer's language-specific Register methods, such as RegisterSyntaxNodeAction, RegisterCodeBlockStartAction and RegisterCodeBlockEndAction, expect a language-specific 'SyntaxKind' type argument for it's 'TLanguageKindEnumName' type parameter. Otherwise, the registered analyzer action can never be invoked during analysis.", - "markdown": "DiagnosticAnalyzer's language-specific Register methods, such as RegisterSyntaxNodeAction, RegisterCodeBlockStartAction and RegisterCodeBlockEndAction, expect a language-specific 'SyntaxKind' type argument for it's 'TLanguageKindEnumName' type parameter. Otherwise, the registered analyzer action can never be invoked during analysis." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS1006", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS1007", - "shortDescription": { - "text": "RoslynAnalyzers Provide localizable arguments to diagnostic descriptor constructor" - }, - "fullDescription": { - "text": "If your diagnostic analyzer and it's reported diagnostics need to be localizable, then the supported DiagnosticDescriptors used for constructing the diagnostics must also be localizable. If so, then localizable argument(s) must be provided for parameter 'title' (and optionally 'description') to the diagnostic descriptor constructor to ensure that the descriptor is localizable.", - "markdown": "If your diagnostic analyzer and it's reported diagnostics need to be localizable, then the supported DiagnosticDescriptors used for constructing the diagnostics must also be localizable. If so, then localizable argument(s) must be provided for parameter 'title' (and optionally 'description') to the diagnostic descriptor constructor to ensure that the descriptor is localizable." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS1007", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS1004", - "shortDescription": { - "text": "RoslynAnalyzers Recommend adding language support to diagnostic analyzer" - }, - "fullDescription": { - "text": "Diagnostic analyzer is marked as supporting only one language, but the analyzer assembly doesn't seem to refer to any language specific CodeAnalysis assemblies, and so is likely to work for more than one language. Consider adding an additional language argument to DiagnosticAnalyzerAttribute.", - "markdown": "Diagnostic analyzer is marked as supporting only one language, but the analyzer assembly doesn't seem to refer to any language specific CodeAnalysis assemblies, and so is likely to work for more than one language. Consider adding an additional language argument to DiagnosticAnalyzerAttribute." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS1004", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "DisposeOnUsingVariable", - "shortDescription": { - "text": "Disposal of a variable already captured by the 'using' statement" - }, - "fullDescription": { - "text": "Do not dispose a variable captured by the 'using' statement because its disposed state may not be obvious elsewhere Learn more...", - "markdown": "Do not dispose a variable captured by the 'using' statement because its disposed state may not be obvious elsewhere [Learn more...](https://www.jetbrains.com/help/rider/DisposeOnUsingVariable.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "DisposeOnUsingVariable", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS1005", - "shortDescription": { - "text": "RoslynAnalyzers ReportDiagnostic invoked with an unsupported DiagnosticDescriptor" - }, - "fullDescription": { - "text": "ReportDiagnostic should only be invoked with supported DiagnosticDescriptors that are returned from DiagnosticAnalyzer.SupportedDiagnostics property. Otherwise, the reported diagnostic will be filtered out by the analysis engine.", - "markdown": "ReportDiagnostic should only be invoked with supported DiagnosticDescriptors that are returned from DiagnosticAnalyzer.SupportedDiagnostics property. Otherwise, the reported diagnostic will be filtered out by the analysis engine." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS1005", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS1002", - "shortDescription": { - "text": "RoslynAnalyzers Missing kind argument when registering an analyzer action" - }, - "fullDescription": { - "text": "You must specify at least one syntax, symbol or operation kind when registering a syntax, symbol, or operation analyzer action respectively. Otherwise, the registered action will never be invoked during analysis.", - "markdown": "You must specify at least one syntax, symbol or operation kind when registering a syntax, symbol, or operation analyzer action respectively. Otherwise, the registered action will never be invoked during analysis." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS1002", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS1003", - "shortDescription": { - "text": "RoslynAnalyzers Unsupported SymbolKind argument when registering a symbol analyzer action" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS1003", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticWasmExceptionSpec", - "shortDescription": { - "text": "wasm-exception-spec clang diagnostic" - }, - "fullDescription": { - "text": "-Wwasm-exception-spec clang diagnostic · Learn more", - "markdown": "-Wwasm-exception-spec clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wwasm-exception-spec)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticWasmExceptionSpec", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS1001", - "shortDescription": { - "text": "RoslynAnalyzers Missing diagnostic analyzer attribute" - }, - "fullDescription": { - "text": "Non-abstract sub-types of DiagnosticAnalyzer should be marked with DiagnosticAnalyzerAttribute(s). The argument to this attribute(s), if any, determine the supported languages for the analyzer. Analyzer types without this attribute will be ignored by the analysis engine.", - "markdown": "Non-abstract sub-types of DiagnosticAnalyzer should be marked with DiagnosticAnalyzerAttribute(s). The argument to this attribute(s), if any, determine the supported languages for the analyzer. Analyzer types without this attribute will be ignored by the analysis engine." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS1001", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticExtraSemi", - "shortDescription": { - "text": "extra-semi clang diagnostic" - }, - "fullDescription": { - "text": "-Wextra-semi clang diagnostic · Learn more", - "markdown": "-Wextra-semi clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wextra-semi)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticExtraSemi", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UselessBinaryOperation", - "shortDescription": { - "text": "Useless arithmetical operation" - }, - "fullDescription": { - "text": "Useless arithmetical operation", - "markdown": "Useless arithmetical operation" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "UselessBinaryOperation", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PreferConcreteValueOverDefault", - "shortDescription": { - "text": "Prefer using concrete value over 'default' or 'new()'" - }, - "fullDescription": { - "text": "Prefer using concrete value (such as 'false' or '0') over generic expression like 'default' or 'new()'", - "markdown": "Prefer using concrete value (such as 'false' or '0') over generic expression like 'default' or 'new()'" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "PreferConcreteValueOverDefault", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMismatchedParameterTypes", - "shortDescription": { - "text": "mismatched-parameter-types clang diagnostic" - }, - "fullDescription": { - "text": "-Wmismatched-parameter-types clang diagnostic · Learn more", - "markdown": "-Wmismatched-parameter-types clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmismatched-parameter-types)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMismatchedParameterTypes", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS1008", - "shortDescription": { - "text": "RoslynAnalyzers Avoid storing per-compilation data into the fields of a diagnostic analyzer" - }, - "fullDescription": { - "text": "Instance of a diagnostic analyzer might outlive the lifetime of compilation. Hence, storing per-compilation data, such as symbols, into the fields of a diagnostic analyzer might cause stale compilations to stay alive and cause memory leaks. Instead, you should store this data on a separate type instantiated in a compilation start action, registered using 'AnalysisContext.RegisterCompilationStartAction' API. An instance of this type will be created per-compilation and it won't outlive compilation's lifetime, hence avoiding memory leaks.", - "markdown": "Instance of a diagnostic analyzer might outlive the lifetime of compilation. Hence, storing per-compilation data, such as symbols, into the fields of a diagnostic analyzer might cause stale compilations to stay alive and cause memory leaks. Instead, you should store this data on a separate type instantiated in a compilation start action, registered using 'AnalysisContext.RegisterCompilationStartAction' API. An instance of this type will be created per-compilation and it won't outlive compilation's lifetime, hence avoiding memory leaks." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS1008", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "WithExpressionModifiesAllMembers", - "shortDescription": { - "text": "'with' expression modifies all accessible instance members" - }, - "fullDescription": { - "text": "'with' expression modifies all accessible instance members. Unless it is an unintentional mistake, it should make more sense to create an entirely new instance.", - "markdown": "'with' expression modifies all accessible instance members. Unless it is an unintentional mistake, it should make more sense to create an entirely new instance." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "WithExpressionModifiesAllMembers", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS1009", - "shortDescription": { - "text": "RoslynAnalyzers Only internal implementations of this interface are allowed" - }, - "fullDescription": { - "text": "The author of this interface did not intend to have third party implementations of this interface and reserves the right to change it. Implementing this interface could therefore result in a source or binary compatibility issue with a future version of this interface.", - "markdown": "The author of this interface did not intend to have third party implementations of this interface and reserves the right to change it. Implementing this interface could therefore result in a source or binary compatibility issue with a future version of this interface." - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "RS1009", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS9256", - "shortDescription": { - "text": "Partial property declarations have signature differences." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS9256", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS1020", - "shortDescription": { - "text": "RoslynAnalyzers Category for analyzers must be from the specified values" - }, - "fullDescription": { - "text": "Category for analyzers must be from the specified values.", - "markdown": "Category for analyzers must be from the specified values." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS1020", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS1021", - "shortDescription": { - "text": "RoslynAnalyzers Invalid entry in analyzer category and diagnostic ID range specification file" - }, - "fullDescription": { - "text": "Invalid entry in analyzer category and diagnostic ID range specification file.", - "markdown": "Invalid entry in analyzer category and diagnostic ID range specification file." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS1021", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS9258", - "shortDescription": { - "text": "In language version preview, the 'field' keyword binds to a synthesized backing field for the property" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS9258", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppBadMemberAccessSpaces", - "shortDescription": { - "text": "Incorrect spacing (around member access symbols)" - }, - "fullDescription": { - "text": "Around member access symbols", - "markdown": "Around member access symbols" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppBadMemberAccessSpaces", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Formatting", - "index": 28, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyHicppMoveConstArg", - "shortDescription": { - "text": "hicpp-move-const-arg clang-tidy check" - }, - "fullDescription": { - "text": "hicpp-move-const-arg clang-tidy check · Learn more", - "markdown": "hicpp-move-const-arg clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/move-const-arg.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyHicppMoveConstArg", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS1017", - "shortDescription": { - "text": "RoslynAnalyzers DiagnosticId for analyzers must be a non-null constant" - }, - "fullDescription": { - "text": "DiagnosticId for analyzers must be a non-null constant.", - "markdown": "DiagnosticId for analyzers must be a non-null constant." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS1017", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticOverloadedVirtual", - "shortDescription": { - "text": "overloaded-virtual clang diagnostic" - }, - "fullDescription": { - "text": "-Woverloaded-virtual clang diagnostic · Learn more", - "markdown": "-Woverloaded-virtual clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#woverloaded-virtual)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticOverloadedVirtual", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS1018", - "shortDescription": { - "text": "RoslynAnalyzers DiagnosticId for analyzers must be in specified format" - }, - "fullDescription": { - "text": "DiagnosticId for analyzers must be in specified format.", - "markdown": "DiagnosticId for analyzers must be in specified format." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS1018", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticTentativeDefinitionArray", - "shortDescription": { - "text": "tentative-definition-array clang diagnostic" - }, - "fullDescription": { - "text": "-Wtentative-definition-array clang diagnostic · Learn more", - "markdown": "-Wtentative-definition-array clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wtentative-definition-array)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticTentativeDefinitionArray", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS1015", - "shortDescription": { - "text": "RoslynAnalyzers Provide non-null 'helpLinkUri' value to diagnostic descriptor constructor" - }, - "fullDescription": { - "text": "The 'helpLinkUri' value is used to show information when this diagnostic in the error list. Every analyzer should have a helpLinkUri specified which points to a help page that does not change over time.", - "markdown": "The 'helpLinkUri' value is used to show information when this diagnostic in the error list. Every analyzer should have a helpLinkUri specified which points to a help page that does not change over time." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS1015", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS1016", - "shortDescription": { - "text": "RoslynAnalyzers Code fix providers should provide FixAll support" - }, - "fullDescription": { - "text": "A CodeFixProvider should provide FixAll support to enable users to fix multiple instances of the underlying diagnostic with a single code fix. See documentation at https://github.com/dotnet/roslyn/blob/main/docs/analyzers/FixAllProvider.md for further details.", - "markdown": "A CodeFixProvider should provide FixAll support to enable users to fix multiple instances of the underlying diagnostic with a single code fix. See documentation at https://github.com/dotnet/roslyn/blob/main/docs/analyzers/FixAllProvider.md for further details." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS1016", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppBoostFormatLegacyCode", - "shortDescription": { - "text": "Outdated format directive in boost::format" - }, - "fullDescription": { - "text": "A format string of boost::format contains a legacy printf-like code; type specifier is not taken into account", - "markdown": "A format string of boost::format contains a legacy printf-like code; type specifier is not taken into account" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppBoostFormatLegacyCode", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS1013", - "shortDescription": { - "text": "RoslynAnalyzers Start action has no registered non-end actions" - }, - "fullDescription": { - "text": "An analyzer start action enables performing stateful analysis over a given code unit, such as a code block, compilation, etc. Careful design is necessary to achieve efficient analyzer execution without memory leaks. Use the following guidelines for writing such analyzers: 1. Define a new scope for the registered start action, possibly with a private nested type for analyzing each code unit. 2. If required, define and initialize state in the start action. 3. Register at least one non-end action that refers to this state in the start action. If no such action is necessary, consider replacing the start action with a non-start action. For example, a CodeBlockStartAction with no registered actions or only a registered CodeBlockEndAction should be replaced with a CodeBlockAction. 4. If required, register an end action to report diagnostics based on the final state.", - "markdown": "An analyzer start action enables performing stateful analysis over a given code unit, such as a code block, compilation, etc. Careful design is necessary to achieve efficient analyzer execution without memory leaks. Use the following guidelines for writing such analyzers: 1. Define a new scope for the registered start action, possibly with a private nested type for analyzing each code unit. 2. If required, define and initialize state in the start action. 3. Register at least one non-end action that refers to this state in the start action. If no such action is necessary, consider replacing the start action with a non-start action. For example, a CodeBlockStartAction with no registered actions or only a registered CodeBlockEndAction should be replaced with a CodeBlockAction. 4. If required, register an end action to report diagnostics based on the final state." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS1013", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NullCoalescingConditionIsAlwaysNotNullAccordingToAPIContract", - "shortDescription": { - "text": "'??' condition is never null according to nullable reference types' annotations" - }, - "fullDescription": { - "text": "'??' condition is never null according to nullable reference types' annotations", - "markdown": "'??' condition is never null according to nullable reference types' annotations" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NullCoalescingConditionIsAlwaysNotNullAccordingToAPIContract", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS1014", - "shortDescription": { - "text": "RoslynAnalyzers Do not ignore values returned by methods on immutable objects" - }, - "fullDescription": { - "text": "Many objects exposed by Roslyn are immutable. The return value from a method invocation on these objects should not be ignored.", - "markdown": "Many objects exposed by Roslyn are immutable. The return value from a method invocation on these objects should not be ignored." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS1014", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.OverloadsCollision", - "shortDescription": { - "text": "Multiple overloads with same arguments count found" - }, - "fullDescription": { - "text": "Multiple overloads with same arguments count found", - "markdown": "Multiple overloads with same arguments count found" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Xaml.OverloadsCollision", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Code Notification", - "index": 5, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS1011", - "shortDescription": { - "text": "RoslynAnalyzers Use code actions that have a unique EquivalenceKey for FixAll occurrences support" - }, - "fullDescription": { - "text": "A CodeFixProvider that intends to support fix all occurrences must classify the registered code actions into equivalence classes by assigning it an explicit, non-null equivalence key which is unique for each kind of code action created by this fixer. This enables the FixAllProvider to fix all diagnostics in the required scope by applying code actions from this fixer that are in the equivalence class of the trigger code action.", - "markdown": "A CodeFixProvider that intends to support fix all occurrences must classify the registered code actions into equivalence classes by assigning it an explicit, non-null equivalence key which is unique for each kind of code action created by this fixer. This enables the FixAllProvider to fix all diagnostics in the required scope by applying code actions from this fixer that are in the equivalence class of the trigger code action." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS1011", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCastFunctionTypeMismatch", - "shortDescription": { - "text": "cast-function-type-mismatch clang diagnostic" - }, - "fullDescription": { - "text": "-Wcast-function-type-mismatch clang diagnostic · Learn more", - "markdown": "-Wcast-function-type-mismatch clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcast-function-type-mismatch)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCastFunctionTypeMismatch", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticStaticSelfInit", - "shortDescription": { - "text": "static-self-init clang diagnostic" - }, - "fullDescription": { - "text": "-Wstatic-self-init clang diagnostic · Learn more", - "markdown": "-Wstatic-self-init clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wstatic-self-init)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticStaticSelfInit", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS1012", - "shortDescription": { - "text": "RoslynAnalyzers Start action has no registered actions" - }, - "fullDescription": { - "text": "An analyzer start action enables performing stateful analysis over a given code unit, such as a code block, compilation, etc. Careful design is necessary to achieve efficient analyzer execution without memory leaks. Use the following guidelines for writing such analyzers: 1. Define a new scope for the registered start action, possibly with a private nested type for analyzing each code unit. 2. If required, define and initialize state in the start action. 3. Register at least one non-end action that refers to this state in the start action. If no such action is necessary, consider replacing the start action with a non-start action. For example, a CodeBlockStartAction with no registered actions or only a registered CodeBlockEndAction should be replaced with a CodeBlockAction. 4. If required, register an end action to report diagnostics based on the final state.", - "markdown": "An analyzer start action enables performing stateful analysis over a given code unit, such as a code block, compilation, etc. Careful design is necessary to achieve efficient analyzer execution without memory leaks. Use the following guidelines for writing such analyzers: 1. Define a new scope for the registered start action, possibly with a private nested type for analyzing each code unit. 2. If required, define and initialize state in the start action. 3. Register at least one non-end action that refers to this state in the start action. If no such action is necessary, consider replacing the start action with a non-start action. For example, a CodeBlockStartAction with no registered actions or only a registered CodeBlockEndAction should be replaced with a CodeBlockAction. 4. If required, register an end action to report diagnostics based on the final state." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS1012", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityBracesAroundStatements", - "shortDescription": { - "text": "readability-braces-around-statements clang-tidy check" - }, - "fullDescription": { - "text": "readability-braces-around-statements clang-tidy check · Learn more", - "markdown": "readability-braces-around-statements clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/braces-around-statements.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityBracesAroundStatements", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS1019", - "shortDescription": { - "text": "RoslynAnalyzers DiagnosticId must be unique across analyzers" - }, - "fullDescription": { - "text": "DiagnosticId must be unique across analyzers.", - "markdown": "DiagnosticId must be unique across analyzers." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS1019", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VariableHidesOuterVariable", - "shortDescription": { - "text": "Variable in local function hides variable from outer scope" - }, - "fullDescription": { - "text": "Variable in local function hides variable from outer scope", - "markdown": "Variable in local function hides variable from outer scope" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "VariableHidesOuterVariable", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMemsetTransposedArgs", - "shortDescription": { - "text": "memset-transposed-args clang diagnostic" - }, - "fullDescription": { - "text": "-Wmemset-transposed-args clang diagnostic · Learn more", - "markdown": "-Wmemset-transposed-args clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmemset-transposed-args)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMemsetTransposedArgs", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS1031", - "shortDescription": { - "text": "RoslynAnalyzers Define diagnostic title correctly" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS1031", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS1032", - "shortDescription": { - "text": "RoslynAnalyzers Define diagnostic message correctly" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS1032", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS1030", - "shortDescription": { - "text": "RoslynAnalyzers Do not invoke Compilation.GetSemanticModel() method within a diagnostic analyzer" - }, - "fullDescription": { - "text": "'GetSemanticModel' is an expensive method to invoke within a diagnostic analyzer because it creates a completely new semantic model, which does not share compilation data with the compiler or other analyzers. This incurs an additional performance cost during semantic analysis. Instead, consider registering a different analyzer action which allows used of a shared 'SemanticModel', such as 'RegisterOperationAction', 'RegisterSyntaxNodeAction', or 'RegisterSemanticModelAction'.", - "markdown": "'GetSemanticModel' is an expensive method to invoke within a diagnostic analyzer because it creates a completely new semantic model, which does not share compilation data with the compiler or other analyzers. This incurs an additional performance cost during semantic analysis. Instead, consider registering a different analyzer action which allows used of a shared 'SemanticModel', such as 'RegisterOperationAction', 'RegisterSyntaxNodeAction', or 'RegisterSemanticModelAction'." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS1030", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticSizeofArrayDiv", - "shortDescription": { - "text": "sizeof-array-div clang diagnostic" - }, - "fullDescription": { - "text": "-Wsizeof-array-div clang diagnostic · Learn more", - "markdown": "-Wsizeof-array-div clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wsizeof-array-div)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticSizeofArrayDiv", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppUnreachableCode", - "shortDescription": { - "text": "Unreachable code" - }, - "fullDescription": { - "text": "Unreachable code", - "markdown": "Unreachable code" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppUnreachableCode", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Redundancies in Code", - "index": 34, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS1028", - "shortDescription": { - "text": "RoslynAnalyzers Provide non-null 'customTags' value to diagnostic descriptor constructor" - }, - "fullDescription": { - "text": "The 'customTags' value is used as a way to enable specific actions and filters on diagnostic descriptors based on the specific values of the tags. Every Roslyn analyzer should have at least one tag from the 'WellKnownDiagnosticTags' class.", - "markdown": "The 'customTags' value is used as a way to enable specific actions and filters on diagnostic descriptors based on the specific values of the tags. Every Roslyn analyzer should have at least one tag from the 'WellKnownDiagnosticTags' class." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS1028", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyHicppUndelegatedConstructor", - "shortDescription": { - "text": "hicpp-undelegated-constructor clang-tidy check" - }, - "fullDescription": { - "text": "hicpp-undelegated-constructor clang-tidy check · Learn more", - "markdown": "hicpp-undelegated-constructor clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/undelegated-constructor.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyHicppUndelegatedConstructor", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS1029", - "shortDescription": { - "text": "RoslynAnalyzers Do not use reserved diagnostic IDs" - }, - "fullDescription": { - "text": "DiagnosticId for analyzers should not use reserved IDs.", - "markdown": "DiagnosticId for analyzers should not use reserved IDs." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS1029", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Razor.SectionNotResolved", - "shortDescription": { - "text": "Unknown Razor section" - }, - "fullDescription": { - "text": "Unknown Razor section", - "markdown": "Unknown Razor section" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "Razor.SectionNotResolved", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Razor/Potential Code Quality Issues", - "index": 93, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS1026", - "shortDescription": { - "text": "RoslynAnalyzers Enable concurrent execution" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS1026", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS1027", - "shortDescription": { - "text": "RoslynAnalyzers Types marked with DiagnosticAnalyzerAttribute(s) should inherit from DiagnosticAnalyzer" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS1027", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS1024", - "shortDescription": { - "text": "RoslynAnalyzers Symbols should be compared for equality" - }, - "fullDescription": { - "text": "Symbols should be compared for equality, not identity. Use an overload accepting an 'IEqualityComparer' and pass 'SymbolEqualityComparer'.", - "markdown": "Symbols should be compared for equality, not identity. Use an overload accepting an 'IEqualityComparer' and pass 'SymbolEqualityComparer'." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS1024", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.StaticResourceNotResolved", - "shortDescription": { - "text": "Static resource not resolved" - }, - "fullDescription": { - "text": "Static resource not resolved", - "markdown": "Static resource not resolved" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Xaml.StaticResourceNotResolved", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Code Notification", - "index": 5, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS1025", - "shortDescription": { - "text": "RoslynAnalyzers Configure generated code analysis" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS1025", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS1022", - "shortDescription": { - "text": "RoslynAnalyzers Do not use types from Workspaces assembly in an analyzer" - }, - "fullDescription": { - "text": "Diagnostic analyzer types should not use types from Workspaces assemblies. Workspaces assemblies are only available when the analyzer executes in Visual Studio IDE live analysis, but are not available during command line build. Referencing types from Workspaces assemblies will lead to runtime exception during analyzer execution in command line build.", - "markdown": "Diagnostic analyzer types should not use types from Workspaces assemblies. Workspaces assemblies are only available when the analyzer executes in Visual Studio IDE live analysis, but are not available during command line build. Referencing types from Workspaces assemblies will lead to runtime exception during analyzer execution in command line build." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS1022", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS1023", - "shortDescription": { - "text": "RoslynAnalyzers Upgrade MSBuildWorkspace" - }, - "fullDescription": { - "text": "MSBuildWorkspace has moved to the Microsoft.CodeAnalysis.Workspaces.MSBuild NuGet package and there are breaking API changes.", - "markdown": "MSBuildWorkspace has moved to the Microsoft.CodeAnalysis.Workspaces.MSBuild NuGet package and there are breaking API changes." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS1023", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Mvc.PartialViewNotResolved", - "shortDescription": { - "text": "MVC (unknown partial view)" - }, - "fullDescription": { - "text": "Unknown ASP.NET MVC Partial View", - "markdown": "Unknown ASP.NET MVC Partial View" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Mvc.PartialViewNotResolved", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Aspx/Potential Code Quality Issues", - "index": 64, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.UnexpectedElement", - "shortDescription": { - "text": "Unexpected element error" - }, - "fullDescription": { - "text": "Unexpected element error", - "markdown": "Unexpected element error" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "Xaml.UnexpectedElement", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Potential Code Quality Issues", - "index": 45, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SuspiciousParameterNameInArgumentNullException", - "shortDescription": { - "text": "Suspicious parameter name in ArgumentNullException" - }, - "fullDescription": { - "text": "Argument name does not match the parameter that was checked", - "markdown": "Argument name does not match the parameter that was checked" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "SuspiciousParameterNameInArgumentNullException", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBReplaceWithOfType.Count.2", - "shortDescription": { - "text": "Replace with OfType<T>().Count() (replace with OfType(Of ..)().Count(..))" - }, - "fullDescription": { - "text": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).Count(Function ($y$) $y$ IsNot Nothing AndAlso $expr$)", - "markdown": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).Count(Function ($y$) $y$ IsNot Nothing AndAlso $expr$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBReplaceWithOfType.Count.2", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticSelfAssignOverloaded", - "shortDescription": { - "text": "self-assign-overloaded clang diagnostic" - }, - "fullDescription": { - "text": "-Wself-assign-overloaded clang diagnostic · Learn more", - "markdown": "-Wself-assign-overloaded clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wself-assign-overloaded)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticSelfAssignOverloaded", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBReplaceWithOfType.Count.1", - "shortDescription": { - "text": "Replace with OfType<T>().Count() (replace with OfType(Of ..)().Count())" - }, - "fullDescription": { - "text": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).Count(Function ($y$) $y$ IsNot Nothing)", - "markdown": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).Count(Function ($y$) $y$ IsNot Nothing)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBReplaceWithOfType.Count.1", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerCoreStackAddrEscapeBase", - "shortDescription": { - "text": "core.StackAddrEscapeBase clang static analyzer check" - }, - "fullDescription": { - "text": "core.StackAddrEscapeBase clang static analyzer check · Learn more", - "markdown": "core.StackAddrEscapeBase clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerCoreStackAddrEscapeBase", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceSequenceEqualWithConstantPattern", - "shortDescription": { - "text": "Replace 'SequenceEqual' with constant pattern" - }, - "fullDescription": { - "text": "Replace 'SequenceEqual' invocation with constant pattern check Learn more...", - "markdown": "Replace 'SequenceEqual' invocation with constant pattern check [Learn more...](https://www.jetbrains.com/help/rider/ReplaceSequenceEqualWithConstantPattern.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceSequenceEqualWithConstantPattern", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppUserDefinedLiteralSuffixDoesNotStartWithUnderscore", - "shortDescription": { - "text": "User-defined literal suffixes must start with an underscore" - }, - "fullDescription": { - "text": "User-defined literal suffixes must start with an underscore. The suffixes that do not begin with an underscore are reserved for the literal operators provided by the standard library.", - "markdown": "User-defined literal suffixes must start with an underscore. The suffixes that do not begin with an underscore are reserved for the literal operators provided by the standard library." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppUserDefinedLiteralSuffixDoesNotStartWithUnderscore", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Compiler Warnings", - "index": 75, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyModernizeReplaceAutoPtr", - "shortDescription": { - "text": "modernize-replace-auto-ptr clang-tidy check" - }, - "fullDescription": { - "text": "modernize-replace-auto-ptr clang-tidy check · Learn more", - "markdown": "modernize-replace-auto-ptr clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/replace-auto-ptr.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyModernizeReplaceAutoPtr", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyAndroidCloexecFopen", - "shortDescription": { - "text": "android-cloexec-fopen clang-tidy check" - }, - "fullDescription": { - "text": "android-cloexec-fopen clang-tidy check · Learn more", - "markdown": "android-cloexec-fopen clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/android/cloexec-fopen.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyAndroidCloexecFopen", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBCheckForReferenceEqualityInstead.2", - "shortDescription": { - "text": "Check for reference equality instead" - }, - "fullDescription": { - "text": "Equals($type$,$type2$)", - "markdown": "Equals($type$,$type2$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBCheckForReferenceEqualityInstead.2", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBCheckForReferenceEqualityInstead.1", - "shortDescription": { - "text": "Check for reference equality instead" - }, - "fullDescription": { - "text": "$type$.Equals($type2$)", - "markdown": "$type$.Equals($type2$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBCheckForReferenceEqualityInstead.1", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppFinalFunctionInFinalClass", - "shortDescription": { - "text": "Final function in a final class" - }, - "fullDescription": { - "text": "Redundant 'final' specifier on a function in a final class", - "markdown": "Redundant 'final' specifier on a function in a final class" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppFinalFunctionInFinalClass", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Redundancies in Code", - "index": 34, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticIncompleteSetjmpDeclaration", - "shortDescription": { - "text": "incomplete-setjmp-declaration clang diagnostic" - }, - "fullDescription": { - "text": "-Wincomplete-setjmp-declaration clang diagnostic · Learn more", - "markdown": "-Wincomplete-setjmp-declaration clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wincomplete-setjmp-declaration)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticIncompleteSetjmpDeclaration", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticSignConversion", - "shortDescription": { - "text": "sign-conversion clang diagnostic" - }, - "fullDescription": { - "text": "-Wsign-conversion clang diagnostic · Learn more", - "markdown": "-Wsign-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wsign-conversion)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticSignConversion", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticImplicitRetainSelf", - "shortDescription": { - "text": "implicit-retain-self clang diagnostic" - }, - "fullDescription": { - "text": "-Wimplicit-retain-self clang diagnostic · Learn more", - "markdown": "-Wimplicit-retain-self clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wimplicit-retain-self)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticImplicitRetainSelf", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ParameterHidesMember", - "shortDescription": { - "text": "Parameter hides member" - }, - "fullDescription": { - "text": "Method parameter has the same name as a field/property and hides it Learn more...", - "markdown": "Method parameter has the same name as a field/property and hides it [Learn more...](https://www.jetbrains.com/help/rider/ParameterHidesMember.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "ParameterHidesMember", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCppcoreguidelinesVirtualClassDestructor", - "shortDescription": { - "text": "cppcoreguidelines-virtual-class-destructor clang-tidy check" - }, - "fullDescription": { - "text": "cppcoreguidelines-virtual-class-destructor clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-virtual-class-destructor clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/virtual-class-destructor.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCppcoreguidelinesVirtualClassDestructor", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticImplicitFixedPointConversion", - "shortDescription": { - "text": "implicit-fixed-point-conversion clang diagnostic" - }, - "fullDescription": { - "text": "-Wimplicit-fixed-point-conversion clang diagnostic · Learn more", - "markdown": "-Wimplicit-fixed-point-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wimplicit-fixed-point-conversion)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticImplicitFixedPointConversion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnreachableCodeFallthrough", - "shortDescription": { - "text": "unreachable-code-fallthrough clang diagnostic" - }, - "fullDescription": { - "text": "-Wunreachable-code-fallthrough clang diagnostic · Learn more", - "markdown": "-Wunreachable-code-fallthrough clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunreachable-code-fallthrough)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnreachableCodeFallthrough", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticNullabilityInferredOnNestedType", - "shortDescription": { - "text": "nullability-inferred-on-nested-type clang diagnostic" - }, - "fullDescription": { - "text": "-Wnullability-inferred-on-nested-type clang diagnostic · Learn more", - "markdown": "-Wnullability-inferred-on-nested-type clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnullability-inferred-on-nested-type)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticNullabilityInferredOnNestedType", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnassignedReadonlyField", - "shortDescription": { - "text": "Unassigned readonly field" - }, - "fullDescription": { - "text": "Readonly field is never assigned", - "markdown": "Readonly field is never assigned" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "UnassignedReadonlyField", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ArgumentsStyleAnonymousFunction", - "shortDescription": { - "text": "Use preferred argument style for anonymous functions" - }, - "fullDescription": { - "text": "Prefer using named/positional argument when anonymous function (lambda or delegate) is passed Learn more...", - "markdown": "Prefer using named/positional argument when anonymous function (lambda or delegate) is passed [Learn more...](https://www.jetbrains.com/help/rider/ArgumentsStyleAnonymousFunction.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ArgumentsStyleAnonymousFunction", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Syntax Style", - "index": 21, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneSuspiciousInclude", - "shortDescription": { - "text": "bugprone-suspicious-include clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-suspicious-include clang-tidy check · Learn more", - "markdown": "bugprone-suspicious-include clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/suspicious-include.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneSuspiciousInclude", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantIfElseBlock", - "shortDescription": { - "text": "Redundant 'else' keyword" - }, - "fullDescription": { - "text": "Redundant 'else' keyword Learn more...", - "markdown": "Redundant 'else' keyword [Learn more...](https://www.jetbrains.com/help/rider/RedundantIfElseBlock.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RedundantIfElseBlock", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyMiscMisleadingIdentifier", - "shortDescription": { - "text": "misc-misleading-identifier clang-tidy check" - }, - "fullDescription": { - "text": "misc-misleading-identifier clang-tidy check · Learn more", - "markdown": "misc-misleading-identifier clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/misleading-identifier.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyMiscMisleadingIdentifier", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticGnuZeroVariadicMacroArguments", - "shortDescription": { - "text": "gnu-zero-variadic-macro-arguments clang diagnostic" - }, - "fullDescription": { - "text": "-Wgnu-zero-variadic-macro-arguments clang diagnostic · Learn more", - "markdown": "-Wgnu-zero-variadic-macro-arguments clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-zero-variadic-macro-arguments)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticGnuZeroVariadicMacroArguments", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityRedundantDeclaration", - "shortDescription": { - "text": "readability-redundant-declaration clang-tidy check" - }, - "fullDescription": { - "text": "readability-redundant-declaration clang-tidy check · Learn more", - "markdown": "readability-redundant-declaration clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/redundant-declaration.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityRedundantDeclaration", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppPrintfBadFormat", - "shortDescription": { - "text": "Invalid printf format specifier" - }, - "fullDescription": { - "text": "Format string contains an invalid printf format specifier", - "markdown": "Format string contains an invalid printf format specifier" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppPrintfBadFormat", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.RedundantNameAttribute", - "shortDescription": { - "text": "Redundant name attribute" - }, - "fullDescription": { - "text": "Name attribute in resource declaration is negligible and can be safely removed", - "markdown": "Name attribute in resource declaration is negligible and can be safely removed" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Xaml.RedundantNameAttribute", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Redundancies in Code", - "index": 77, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppUnnamedNamespaceInHeaderFile", - "shortDescription": { - "text": "Unnamed namespace in a header file" - }, - "fullDescription": { - "text": "Unnamed namespaces should not be used in header files Learn more...", - "markdown": "Unnamed namespaces should not be used in header files [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rs-unnamed)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppUnnamedNamespaceInHeaderFile", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS0108,CS0114", - "shortDescription": { - "text": "Keyword 'new' is required" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://www.jetbrains.com/help/rider/CSharpWarnings_CS0108_CS0114.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS0108,CS0114", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppMsExtNotInitializedStaticConstLocalVar", - "shortDescription": { - "text": "Not initialized static const local variable of scalar type. This is non-standard Microsoft C++ extension." - }, - "fullDescription": { - "text": "Not initialized static const local variable of scalar type. This is non-standard Microsoft C++ extension.", - "markdown": "Not initialized static const local variable of scalar type. This is non-standard Microsoft C++ extension." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppMsExtNotInitializedStaticConstLocalVar", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "BadEmptyBracesLineBreaks", - "shortDescription": { - "text": "Incorrect line breaks (around empty braces)" - }, - "fullDescription": { - "text": "Around empty braces Learn more...", - "markdown": "Around empty braces [Learn more...](https://www.jetbrains.com/help/rider/BadEmptyBracesLineBreaks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "BadEmptyBracesLineBreaks", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Formatting", - "index": 24, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneRedundantBranchCondition", - "shortDescription": { - "text": "bugprone-redundant-branch-condition clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-redundant-branch-condition clang-tidy check · Learn more", - "markdown": "bugprone-redundant-branch-condition clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/redundant-branch-condition.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneRedundantBranchCondition", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.NoNullPropagation", - "shortDescription": { - "text": "Possible unintended bypass of lifetime check of underlying Unity engine object (null propagating on a type deriving from 'UnityEngine.Object' bypasses the lifetime check on the underlying Unity engine object)" - }, - "fullDescription": { - "text": "The null propagating operator does not call custom equality operators defined on 'UnityEngine.Object'. These operators check if the underlying Unity engine object has been destroyed. Prefer an explicit null comparison or implicit bool comparison if the lifetime check is intended, or explicitly use 'object.ReferenceEquals()' for a standard (and quicker) CLR null check. Learn more...", - "markdown": "The null propagating operator does not call custom equality operators defined on 'UnityEngine.Object'. These operators check if the underlying Unity engine object has been destroyed. Prefer an explicit null comparison or implicit bool comparison if the lifetime check is intended, or explicitly use 'object.ReferenceEquals()' for a standard (and quicker) CLR null check. [Learn more...](https://github.com/JetBrains/resharper-unity/wiki/Possible-unintended-bypass-of-lifetime-check-of-underlying-Unity-engine-object)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "Unity.NoNullPropagation", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PublicConstructorInAbstractClass", - "shortDescription": { - "text": "Make constructor in abstract class protected" - }, - "fullDescription": { - "text": "Make constructor in abstract class protected Learn more...", - "markdown": "Make constructor in abstract class protected [Learn more...](https://www.jetbrains.com/help/rider/PublicConstructorInAbstractClass.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "PublicConstructorInAbstractClass", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantRangeBound", - "shortDescription": { - "text": "Redundant range bound" - }, - "fullDescription": { - "text": "Zero index can be omitted in range expression", - "markdown": "Zero index can be omitted in range expression" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RedundantRangeBound", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyAbseilDurationUnnecessaryConversion", - "shortDescription": { - "text": "abseil-duration-unnecessary-conversion clang-tidy check" - }, - "fullDescription": { - "text": "abseil-duration-unnecessary-conversion clang-tidy check · Learn more", - "markdown": "abseil-duration-unnecessary-conversion clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/duration-unnecessary-conversion.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyAbseilDurationUnnecessaryConversion", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticReservedIdMacro", - "shortDescription": { - "text": "reserved-id-macro clang diagnostic" - }, - "fullDescription": { - "text": "-Wreserved-id-macro clang diagnostic · Learn more", - "markdown": "-Wreserved-id-macro clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wreserved-id-macro)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticReservedIdMacro", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerCoreCallAndMessageModeling", - "shortDescription": { - "text": "core.CallAndMessageModeling clang static analyzer check" - }, - "fullDescription": { - "text": "core.CallAndMessageModeling clang static analyzer check · Learn more", - "markdown": "core.CallAndMessageModeling clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerCoreCallAndMessageModeling", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.RedundantGridDefinitions", - "shortDescription": { - "text": "Single grid row/column definition is redundant" - }, - "fullDescription": { - "text": "Single grid row/column definition is redundant", - "markdown": "Single grid row/column definition is redundant" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Xaml.RedundantGridDefinitions", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Redundancies in Code", - "index": 77, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp17CompatPedantic", - "shortDescription": { - "text": "c++17-compat-pedantic clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++17-compat-pedantic clang diagnostic · Learn more", - "markdown": "-Wc++17-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-17-compat-pedantic)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp17CompatPedantic", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IndexingByInvalidRange", - "shortDescription": { - "text": "Possible 'System.ArgumentOutOfRangeException'. Start index must be less than or equal to end index." - }, - "fullDescription": { - "text": "Indexing by invalid range may cause exceptions", - "markdown": "Indexing by invalid range may cause exceptions" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "IndexingByInvalidRange", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticTautologicalConstantCompare", - "shortDescription": { - "text": "tautological-constant-compare clang diagnostic" - }, - "fullDescription": { - "text": "-Wtautological-constant-compare clang diagnostic · Learn more", - "markdown": "-Wtautological-constant-compare clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wtautological-constant-compare)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticTautologicalConstantCompare", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticAddressOfTemporary", - "shortDescription": { - "text": "address-of-temporary clang diagnostic" - }, - "fullDescription": { - "text": "-Waddress-of-temporary clang diagnostic · Learn more", - "markdown": "-Waddress-of-temporary clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#waddress-of-temporary)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticAddressOfTemporary", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDuplicateMethodMatch", - "shortDescription": { - "text": "duplicate-method-match clang diagnostic" - }, - "fullDescription": { - "text": "-Wduplicate-method-match clang diagnostic · Learn more", - "markdown": "-Wduplicate-method-match clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wduplicate-method-match)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDuplicateMethodMatch", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseNegatedPatternMatching", - "shortDescription": { - "text": "Convert 'as' expression type check and the following null check into negated pattern matching" - }, - "fullDescription": { - "text": "Replace variable for 'as' expression type check and the following check for it being null with negated C# 7.0 pattern matching expression", - "markdown": "Replace variable for 'as' expression type check and the following check for it being null with negated C# 7.0 pattern matching expression" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UseNegatedPatternMatching", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantToStringCallForValueType", - "shortDescription": { - "text": "Redundant 'object.ToString()' call for value types" - }, - "fullDescription": { - "text": "Use of ToString() call in a context where it would be generated by the compiler automatically. For example, in a concatenation with a string or as an argument of a string.Format() call.", - "markdown": "Use of ToString() call in a context where it would be generated by the compiler automatically. For example, in a concatenation with a string or as an argument of a string.Format() call." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RedundantToStringCallForValueType", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticFrameworkIncludePrivateFromPublic", - "shortDescription": { - "text": "framework-include-private-from-public clang diagnostic" - }, - "fullDescription": { - "text": "-Wframework-include-private-from-public clang diagnostic · Learn more", - "markdown": "-Wframework-include-private-from-public clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wframework-include-private-from-public)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticFrameworkIncludePrivateFromPublic", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "StringCompareIsCultureSpecific.6", - "shortDescription": { - "text": "String.Compare is culture-specific (string.Compare(string, int, string, int, bool) is culture-specific)" - }, - "fullDescription": { - "text": "$s$.Compare($s1$, $i1$, $s2$, $i2$, true) Learn more...", - "markdown": "$s$.Compare($s1$, $i1$, $s2$, $i2$, true) [Learn more...](https://www.jetbrains.com/help/rider/StringCompareIsCultureSpecific.6.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "StringCompareIsCultureSpecific.6", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "StringCompareIsCultureSpecific.4", - "shortDescription": { - "text": "String.Compare is culture-specific (string.Compare(string, int, string, int) is culture-specific)" - }, - "fullDescription": { - "text": "$s$.Compare($s1$, $i1$, $s2$, $i2$) Learn more...", - "markdown": "$s$.Compare($s1$, $i1$, $s2$, $i2$) [Learn more...](https://www.jetbrains.com/help/rider/StringCompareIsCultureSpecific.4.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "StringCompareIsCultureSpecific.4", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "StringCompareIsCultureSpecific.5", - "shortDescription": { - "text": "String.Compare is culture-specific (string.Compare(string, int, string, int, bool) is culture-specific)" - }, - "fullDescription": { - "text": "$s$.Compare($s1$, $i1$, $s2$, $i2$, false) Learn more...", - "markdown": "$s$.Compare($s1$, $i1$, $s2$, $i2$, false) [Learn more...](https://www.jetbrains.com/help/rider/StringCompareIsCultureSpecific.5.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "StringCompareIsCultureSpecific.5", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "StringCompareIsCultureSpecific.2", - "shortDescription": { - "text": "String.Compare is culture-specific (string.Compare(string, string, bool) is culture-specific)" - }, - "fullDescription": { - "text": "$string$.Compare($s1$, $s2$, false) Learn more...", - "markdown": "$string$.Compare($s1$, $s2$, false) [Learn more...](https://www.jetbrains.com/help/rider/StringCompareIsCultureSpecific.2.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "StringCompareIsCultureSpecific.2", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "StringCompareIsCultureSpecific.3", - "shortDescription": { - "text": "String.Compare is culture-specific (string.Compare(string, string, bool) is culture-specific)" - }, - "fullDescription": { - "text": "$string$.Compare($s1$, $s2$, true) Learn more...", - "markdown": "$string$.Compare($s1$, $s2$, true) [Learn more...](https://www.jetbrains.com/help/rider/StringCompareIsCultureSpecific.3.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "StringCompareIsCultureSpecific.3", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneInfiniteLoop", - "shortDescription": { - "text": "bugprone-infinite-loop clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-infinite-loop clang-tidy check · Learn more", - "markdown": "bugprone-infinite-loop clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/infinite-loop.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneInfiniteLoop", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "StringCompareIsCultureSpecific.1", - "shortDescription": { - "text": "String.Compare is culture-specific (string.Compare(string, string) is culture-specific)" - }, - "fullDescription": { - "text": "$s$.Compare($s1$, $s2$) Learn more...", - "markdown": "$s$.Compare($s1$, $s2$) [Learn more...](https://www.jetbrains.com/help/rider/StringCompareIsCultureSpecific.1.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "StringCompareIsCultureSpecific.1", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1089FadeOut", - "shortDescription": { - "text": "RoslynAnalyzers Use --/++ operator instead of assignment" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1089FadeOut", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.XamlDuplicateDeviceFamilyTypeViewHighlighting", - "shortDescription": { - "text": "Duplicate device family view" - }, - "fullDescription": { - "text": "Duplicate device family view", - "markdown": "Duplicate device family view" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "Xaml.XamlDuplicateDeviceFamilyTypeViewHighlighting", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Potential Code Quality Issues", - "index": 45, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticSuggestDestructorOverride", - "shortDescription": { - "text": "suggest-destructor-override clang diagnostic" - }, - "fullDescription": { - "text": "-Wsuggest-destructor-override clang diagnostic · Learn more", - "markdown": "-Wsuggest-destructor-override clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wsuggest-destructor-override)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticSuggestDestructorOverride", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.InefficientMultiplicationOrder", - "shortDescription": { - "text": "Order of multiplication operations is inefficient" - }, - "fullDescription": { - "text": "Reordering multiplication operations will improve performance Learn more...", - "markdown": "Reordering multiplication operations will improve performance [Learn more...](https://github.com/JetBrains/resharper-unity/wiki/Order-of-multiplication-operations-is-inefficient)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.InefficientMultiplicationOrder", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity Performance Inspections", - "index": 128, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit.NoValuesProvided", - "shortDescription": { - "text": "NUnit. No values provided in the attributes." - }, - "fullDescription": { - "text": "NUnit. No values are provided in the attribute or the current NUnit version does not support automatic generation of values for the parameter type. Learn more...", - "markdown": "NUnit. No values are provided in the attribute or the current NUnit version does not support automatic generation of values for the parameter type. [Learn more...](https://www.jetbrains.com/help/rider/NUnit.NoValuesProvided.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NUnit.NoValuesProvided", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/NUnit", - "index": 26, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppVirtualFunctionInFinalClass", - "shortDescription": { - "text": "Declaration of a non-overriding virtual function in a final or sealed class" - }, - "fullDescription": { - "text": "A non-overriding virtual function in a final or sealed class cannot be overridden, so the 'virtual' specifier is redundant", - "markdown": "A non-overriding virtual function in a final or sealed class cannot be overridden, so the 'virtual' specifier is redundant" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppVirtualFunctionInFinalClass", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2200", - "shortDescription": { - "text": "RoslynAnalyzers Rethrow to preserve stack details" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2200", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2201", - "shortDescription": { - "text": "RoslynAnalyzers Do not raise reserved exception types" - }, - "fullDescription": { - "text": "An exception of type that is not sufficiently specific or reserved by the runtime should never be raised by user code. This makes the original error difficult to detect and debug. If this exception instance might be thrown, use a different exception type.", - "markdown": "An exception of type that is not sufficiently specific or reserved by the runtime should never be raised by user code. This makes the original error difficult to detect and debug. If this exception instance might be thrown, use a different exception type." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA2201", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AsmDefErrors", - "shortDescription": { - "text": "AsmDef Errors" - }, - "fullDescription": { - "text": "AsmDef Errors", - "markdown": "AsmDef Errors" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "AsmDefErrors", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Non configurable", - "index": 52, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SuggestVarOrType_BuiltInTypes", - "shortDescription": { - "text": "Use preferred 'var' style (for built-in types)" - }, - "fullDescription": { - "text": "Convert if declaration is of a built-in type (e.g. string) Learn more...", - "markdown": "Convert if declaration is of a built-in type (e.g. string) [Learn more...](https://www.jetbrains.com/help/rider/SuggestVarOrType_BuiltInTypes.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "SuggestVarOrType_BuiltInTypes", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Syntax Style", - "index": 21, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2207", - "shortDescription": { - "text": "RoslynAnalyzers Initialize value type static fields inline" - }, - "fullDescription": { - "text": "A value type declares an explicit static constructor. To fix a violation of this rule, initialize all static data when it is declared and remove the static constructor.", - "markdown": "A value type declares an explicit static constructor. To fix a violation of this rule, initialize all static data when it is declared and remove the static constructor." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2207", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyHicppNoAssembler", - "shortDescription": { - "text": "hicpp-no-assembler clang-tidy check" - }, - "fullDescription": { - "text": "hicpp-no-assembler clang-tidy check · Learn more", - "markdown": "hicpp-no-assembler clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/no-assembler.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyHicppNoAssembler", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2208", - "shortDescription": { - "text": "RoslynAnalyzers Instantiate argument exceptions correctly" - }, - "fullDescription": { - "text": "A call is made to the default (parameterless) constructor of an exception type that is or derives from ArgumentException, or an incorrect string argument is passed to a parameterized constructor of an exception type that is or derives from ArgumentException.", - "markdown": "A call is made to the default (parameterless) constructor of an exception type that is or derives from ArgumentException, or an incorrect string argument is passed to a parameterized constructor of an exception type that is or derives from ArgumentException." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA2208", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IgnoredDirective", - "shortDescription": { - "text": "The directive will be ignored and can be safely removed" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "IgnoredDirective", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "T4/T4", - "index": 116, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MultipleNullableAttributesUsage", - "shortDescription": { - "text": "Multiple nullable attributes usage" - }, - "fullDescription": { - "text": "It is incorrect to use [NotNull] and [CanBeNull] simultaneously Learn more...", - "markdown": "It is incorrect to use \\[NotNull\\] and \\[CanBeNull\\] simultaneously [Learn more...](https://www.jetbrains.com/help/rider/MultipleNullableAttributesUsage.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "MultipleNullableAttributesUsage", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppParameterMayBeConstPtrOrRef", - "shortDescription": { - "text": "Parameter can be made pointer/reference to const" - }, - "fullDescription": { - "text": "Parameter can be made pointer/reference to const Learn more...", - "markdown": "Parameter can be made pointer/reference to const [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rconst-ref)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppParameterMayBeConstPtrOrRef", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Common Practices and Code Improvements", - "index": 16, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyPerformanceInefficientStringConcatenation", - "shortDescription": { - "text": "performance-inefficient-string-concatenation clang-tidy check" - }, - "fullDescription": { - "text": "performance-inefficient-string-concatenation clang-tidy check · Learn more", - "markdown": "performance-inefficient-string-concatenation clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance/inefficient-string-concatenation.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyPerformanceInefficientStringConcatenation", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCastQualUnrelated", - "shortDescription": { - "text": "cast-qual-unrelated clang diagnostic" - }, - "fullDescription": { - "text": "-Wcast-qual-unrelated clang diagnostic · Learn more", - "markdown": "-Wcast-qual-unrelated clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcast-qual-unrelated)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCastQualUnrelated", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticReceiverForwardClass", - "shortDescription": { - "text": "receiver-forward-class clang diagnostic" - }, - "fullDescription": { - "text": "-Wreceiver-forward-class clang diagnostic · Learn more", - "markdown": "-Wreceiver-forward-class clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wreceiver-forward-class)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticReceiverForwardClass", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPointerSign", - "shortDescription": { - "text": "pointer-sign clang diagnostic" - }, - "fullDescription": { - "text": "-Wpointer-sign clang diagnostic · Learn more", - "markdown": "-Wpointer-sign clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpointer-sign)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPointerSign", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnusedMacros", - "shortDescription": { - "text": "unused-macros clang diagnostic" - }, - "fullDescription": { - "text": "-Wunused-macros clang diagnostic · Learn more", - "markdown": "-Wunused-macros clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunused-macros)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnusedMacros", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConvertClosureToMethodGroup", - "shortDescription": { - "text": "Convert lambda expression into method group" - }, - "fullDescription": { - "text": "Convert lambda expression or anonymous method into method group Learn more...", - "markdown": "Convert lambda expression or anonymous method into method group [Learn more...](https://www.jetbrains.com/help/rider/ConvertClosureToMethodGroup.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ConvertClosureToMethodGroup", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2211", - "shortDescription": { - "text": "RoslynAnalyzers Non-constant fields should not be visible" - }, - "fullDescription": { - "text": "Static fields that are neither constants nor read-only are not thread-safe. Access to such a field must be carefully controlled and requires advanced programming techniques to synchronize access to the class object.", - "markdown": "Static fields that are neither constants nor read-only are not thread-safe. Access to such a field must be carefully controlled and requires advanced programming techniques to synchronize access to the class object." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA2211", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2213", - "shortDescription": { - "text": "RoslynAnalyzers Disposable fields should be disposed" - }, - "fullDescription": { - "text": "A type that implements System.IDisposable declares fields that are of types that also implement IDisposable. The Dispose method of the field is not called by the Dispose method of the declaring type. To fix a violation of this rule, call Dispose on fields that are of types that implement IDisposable if you are responsible for allocating and releasing the unmanaged resources held by the field.", - "markdown": "A type that implements System.IDisposable declares fields that are of types that also implement IDisposable. The Dispose method of the field is not called by the Dispose method of the declaring type. To fix a violation of this rule, call Dispose on fields that are of types that implement IDisposable if you are responsible for allocating and releasing the unmanaged resources held by the field." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2213", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticBitIntExtension", - "shortDescription": { - "text": "bit-int-extension clang diagnostic" - }, - "fullDescription": { - "text": "-Wbit-int-extension clang diagnostic · Learn more", - "markdown": "-Wbit-int-extension clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wbit-int-extension)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticBitIntExtension", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2214", - "shortDescription": { - "text": "RoslynAnalyzers Do not call overridable methods in constructors" - }, - "fullDescription": { - "text": "Virtual methods defined on the class should not be called from constructors. If a derived class has overridden the method, the derived class version will be called (before the derived class constructor is called).", - "markdown": "Virtual methods defined on the class should not be called from constructors. If a derived class has overridden the method, the derived class version will be called (before the derived class constructor is called)." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2214", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2215", - "shortDescription": { - "text": "RoslynAnalyzers Dispose methods should call base class dispose" - }, - "fullDescription": { - "text": "A type that implements System.IDisposable inherits from a type that also implements IDisposable. The Dispose method of the inheriting type does not call the Dispose method of the parent type. To fix a violation of this rule, call base.Dispose in your Dispose method.", - "markdown": "A type that implements System.IDisposable inherits from a type that also implements IDisposable. The Dispose method of the inheriting type does not call the Dispose method of the parent type. To fix a violation of this rule, call base.Dispose in your Dispose method." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA2215", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2216", - "shortDescription": { - "text": "RoslynAnalyzers Disposable types should declare finalizer" - }, - "fullDescription": { - "text": "A type that implements System.IDisposable and has fields that suggest the use of unmanaged resources does not implement a finalizer, as described by Object.Finalize.", - "markdown": "A type that implements System.IDisposable and has fields that suggest the use of unmanaged resources does not implement a finalizer, as described by Object.Finalize." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2216", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticBitfieldEnumConversion", - "shortDescription": { - "text": "bitfield-enum-conversion clang diagnostic" - }, - "fullDescription": { - "text": "-Wbitfield-enum-conversion clang diagnostic · Learn more", - "markdown": "-Wbitfield-enum-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wbitfield-enum-conversion)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticBitfieldEnumConversion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2217", - "shortDescription": { - "text": "RoslynAnalyzers Do not mark enums with FlagsAttribute" - }, - "fullDescription": { - "text": "An externally visible enumeration is marked by using FlagsAttribute, and it has one or more values that are not powers of two or a combination of the other defined values on the enumeration.", - "markdown": "An externally visible enumeration is marked by using FlagsAttribute, and it has one or more values that are not powers of two or a combination of the other defined values on the enumeration." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2217", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2219", - "shortDescription": { - "text": "RoslynAnalyzers Do not raise exceptions in finally clauses" - }, - "fullDescription": { - "text": "When an exception is raised in a finally clause, the new exception hides the active exception. This makes the original error difficult to detect and debug.", - "markdown": "When an exception is raised in a finally clause, the new exception hides the active exception. This makes the original error difficult to detect and debug." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA2219", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1073FadeOut", - "shortDescription": { - "text": "RoslynAnalyzers Convert 'if' to 'return' statement" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1073FadeOut", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyMiscStaticAssert", - "shortDescription": { - "text": "misc-static-assert clang-tidy check" - }, - "fullDescription": { - "text": "misc-static-assert clang-tidy check · Learn more", - "markdown": "misc-static-assert clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/static-assert.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyMiscStaticAssert", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppBadBracesSpaces", - "shortDescription": { - "text": "Incorrect spacing (around braces)" - }, - "fullDescription": { - "text": "Around braces", - "markdown": "Around braces" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppBadBracesSpaces", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Formatting", - "index": 28, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBReplaceWithSingleCallToSingle", - "shortDescription": { - "text": "Replace with single call to Single(..)" - }, - "fullDescription": { - "text": "$seq$.Where(Function ($x$) $expr$).Single()", - "markdown": "$seq$.Where(Function ($x$) $expr$).Single()" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBReplaceWithSingleCallToSingle", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityOperatorsRepresentation", - "shortDescription": { - "text": "readability-operators-representation clang-tidy check" - }, - "fullDescription": { - "text": "readability-operators-representation clang-tidy check · Learn more", - "markdown": "readability-operators-representation clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/operators-representation.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityOperatorsRepresentation", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticImplicitFunctionDeclaration", - "shortDescription": { - "text": "implicit-function-declaration clang diagnostic" - }, - "fullDescription": { - "text": "-Wimplicit-function-declaration clang diagnostic · Learn more", - "markdown": "-Wimplicit-function-declaration clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wimplicit-function-declaration)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticImplicitFunctionDeclaration", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AppendToCollectionExpression", - "shortDescription": { - "text": "Append to collection expression" - }, - "fullDescription": { - "text": "Suggest to merge collection items additions into C# 12 collection expression syntax Learn more...", - "markdown": "Suggest to merge collection items additions into C# 12 collection expression syntax [Learn more...](https://www.jetbrains.com/help/rider/AppendToCollectionExpression.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "AppendToCollectionExpression", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCudaCompat", - "shortDescription": { - "text": "cuda-compat clang diagnostic" - }, - "fullDescription": { - "text": "-Wcuda-compat clang diagnostic · Learn more", - "markdown": "-Wcuda-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcuda-compat)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCudaCompat", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.DuplicateStyleSetter", - "shortDescription": { - "text": "Duplicate style property/event setter" - }, - "fullDescription": { - "text": "Duplicate style property/event setter", - "markdown": "Duplicate style property/event setter" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Xaml.DuplicateStyleSetter", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Potential Code Quality Issues", - "index": 45, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "BadExpressionBracesIndent", - "shortDescription": { - "text": "Incorrect indent (around expression braces)" - }, - "fullDescription": { - "text": "Around expression braces Learn more...", - "markdown": "Around expression braces [Learn more...](https://www.jetbrains.com/help/rider/BadExpressionBracesIndent.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "BadExpressionBracesIndent", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Formatting", - "index": 24, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyModernizeUseOverride", - "shortDescription": { - "text": "modernize-use-override clang-tidy check" - }, - "fullDescription": { - "text": "modernize-use-override clang-tidy check · Learn more", - "markdown": "modernize-use-override clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-override.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyModernizeUseOverride", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppEnforceNestedNamespacesStyle", - "shortDescription": { - "text": "Use preferred declaration style (enforce nested namespaces style)" - }, - "fullDescription": { - "text": "Enforce the syntax used to define nested namespaces", - "markdown": "Enforce the syntax used to define nested namespaces" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppEnforceNestedNamespacesStyle", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Syntax Style", - "index": 91, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticEmptyBody", - "shortDescription": { - "text": "empty-body clang diagnostic" - }, - "fullDescription": { - "text": "-Wempty-body clang diagnostic · Learn more", - "markdown": "-Wempty-body clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wempty-body)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticEmptyBody", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPreC2xCompat", - "shortDescription": { - "text": "pre-c2x-compat clang diagnostic" - }, - "fullDescription": { - "text": "-Wpre-c2x-compat clang diagnostic · Learn more", - "markdown": "-Wpre-c2x-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpre-c2x-compat)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPreC2xCompat", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "BadDeclarationBracesIndent", - "shortDescription": { - "text": "Incorrect indent (around declaration braces)" - }, - "fullDescription": { - "text": "Around declaration braces Learn more...", - "markdown": "Around declaration braces [Learn more...](https://www.jetbrains.com/help/rider/BadDeclarationBracesIndent.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "BadDeclarationBracesIndent", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Formatting", - "index": 24, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticInvalidNoreturn", - "shortDescription": { - "text": "invalid-noreturn clang diagnostic" - }, - "fullDescription": { - "text": "-Winvalid-noreturn clang diagnostic · Learn more", - "markdown": "-Winvalid-noreturn clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winvalid-noreturn)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticInvalidNoreturn", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2225", - "shortDescription": { - "text": "RoslynAnalyzers Operator overloads have named alternates" - }, - "fullDescription": { - "text": "An operator overload was detected, and the expected named alternative method was not found. The named alternative member provides access to the same functionality as the operator and is provided for developers who program in languages that do not support overloaded operators.", - "markdown": "An operator overload was detected, and the expected named alternative method was not found. The named alternative member provides access to the same functionality as the operator and is provided for developers who program in languages that do not support overloaded operators." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2225", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "LocalVariableHidesMember", - "shortDescription": { - "text": "Local variable hides member" - }, - "fullDescription": { - "text": "Local variable has the same name as a field/property and hides it Learn more...", - "markdown": "Local variable has the same name as a field/property and hides it [Learn more...](https://www.jetbrains.com/help/rider/LocalVariableHidesMember.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "LocalVariableHidesMember", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantCaseLabel", - "shortDescription": { - "text": "Redundant 'case' label" - }, - "fullDescription": { - "text": "'case' label statement is redundant Learn more...", - "markdown": "'case' label statement is redundant [Learn more...](https://www.jetbrains.com/help/rider/RedundantCaseLabel.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantCaseLabel", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2226", - "shortDescription": { - "text": "RoslynAnalyzers Operators should have symmetrical overloads" - }, - "fullDescription": { - "text": "A type implements the equality or inequality operator and does not implement the opposite operator.", - "markdown": "A type implements the equality or inequality operator and does not implement the opposite operator." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2226", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2227", - "shortDescription": { - "text": "RoslynAnalyzers Collection properties should be read only" - }, - "fullDescription": { - "text": "A writable collection property allows a user to replace the collection with a different collection. A read-only property stops the collection from being replaced but still allows the individual members to be set.", - "markdown": "A writable collection property allows a user to replace the collection with a different collection. A read-only property stops the collection from being replaced but still allows the individual members to be set." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2227", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PossibleNullReferenceException", - "shortDescription": { - "text": "Possible 'System.NullReferenceException'" - }, - "fullDescription": { - "text": "Dereferencing an expression that can have 'null' value. This warning is detected either when there is a comparison with 'null' earlier in the code or when this value is returned by a member marked with 'Value can be null' attribute. Learn more...", - "markdown": "Dereferencing an expression that can have 'null' value. This warning is detected either when there is a comparison with 'null' earlier in the code or when this value is returned by a member marked with 'Value can be null' attribute. [Learn more...](https://www.jetbrains.com/help/rider/PossibleNullReferenceException.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "PossibleNullReferenceException", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ZeroIndexFromEnd", - "shortDescription": { - "text": "Index from end must be greater than zero; use '^1' to refer to the last element" - }, - "fullDescription": { - "text": "Using '^0' in the index expression causes 'System.ArgumentOutOfRangeException'; use '^1' to refer to the last element Learn more...", - "markdown": "Using '\\^0' in the index expression causes 'System.ArgumentOutOfRangeException'; use '\\^1' to refer to the last element [Learn more...](https://www.jetbrains.com/help/rider/ZeroIndexFromEnd.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "ZeroIndexFromEnd", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ClassNeverInstantiated.Global", - "shortDescription": { - "text": "Class is never instantiated (non-private accessibility)" - }, - "fullDescription": { - "text": "Non-static class is never instantiated Learn more...", - "markdown": "Non-static class is never instantiated [Learn more...](https://www.jetbrains.com/help/rider/ClassNeverInstantiated.Global.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ClassNeverInstantiated.Global", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ObsoleteElement", - "shortDescription": { - "text": "Use of obsolete type or type member" - }, - "fullDescription": { - "text": "Use of obsolete type or type member in XAML markup", - "markdown": "Use of obsolete type or type member in XAML markup" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "ObsoleteElement", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Compiler Warnings", - "index": 60, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppUseFamiliarTemplateSyntaxForGenericLambdas", - "shortDescription": { - "text": "Lambda can be rewritten to use explicit template parameters" - }, - "fullDescription": { - "text": "Lambda can be rewritten to use explicit template parameters", - "markdown": "Lambda can be rewritten to use explicit template parameters" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppUseFamiliarTemplateSyntaxForGenericLambdas", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Common Practices and Code Improvements", - "index": 16, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Html.AttributesQuotes", - "shortDescription": { - "text": "Wrong attribute quotes" - }, - "fullDescription": { - "text": "Attribute quotes are missing or differ from settings", - "markdown": "Attribute quotes are missing or differ from settings" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "Html.AttributesQuotes", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HTML/Potential Code Quality Issues", - "index": 54, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantStringInterpolation", - "shortDescription": { - "text": "Redundant string interpolation" - }, - "fullDescription": { - "text": "String interpolation expression without arguments is redundant Learn more...", - "markdown": "String interpolation expression without arguments is redundant [Learn more...](https://www.jetbrains.com/help/rider/RedundantStringInterpolation.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "RedundantStringInterpolation", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppMissingSpace", - "shortDescription": { - "text": "Incorrect spacing (space is missing elsewhere)" - }, - "fullDescription": { - "text": "Space is missing elsewhere", - "markdown": "Space is missing elsewhere" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppMissingSpace", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Formatting", - "index": 28, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPreC2yCompat", - "shortDescription": { - "text": "pre-c2y-compat clang diagnostic" - }, - "fullDescription": { - "text": "-Wpre-c2y-compat clang diagnostic · Learn more", - "markdown": "-Wpre-c2y-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpre-c2y-compat)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPreC2yCompat", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyAbseilUpgradeDurationConversions", - "shortDescription": { - "text": "abseil-upgrade-duration-conversions clang-tidy check" - }, - "fullDescription": { - "text": "abseil-upgrade-duration-conversions clang-tidy check · Learn more", - "markdown": "abseil-upgrade-duration-conversions clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/upgrade-duration-conversions.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyAbseilUpgradeDurationConversions", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SealedMemberInSealedClass", - "shortDescription": { - "text": "Sealed member in sealed class" - }, - "fullDescription": { - "text": "'sealed' modifier for member in a sealed class is redundant Learn more...", - "markdown": "'sealed' modifier for member in a sealed class is redundant [Learn more...](https://www.jetbrains.com/help/rider/SealedMemberInSealedClass.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "SealedMemberInSealedClass", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerSecurityInsecureAPIBcmp", - "shortDescription": { - "text": "security.insecureAPI.bcmp clang static analyzer check" - }, - "fullDescription": { - "text": "security.insecureAPI.bcmp clang static analyzer check · Learn more", - "markdown": "security.insecureAPI.bcmp clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerSecurityInsecureAPIBcmp", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConvertIfStatementToNullCoalescingExpression", - "shortDescription": { - "text": "'if' statement can be rewritten as '??' expression" - }, - "fullDescription": { - "text": "Convert the following code: \r\n var x = expr1;\r\n if (x = null) x = expr2;\r\n To: \r\n var x = expr1 ?? expr2;\r\n Learn more...", - "markdown": "Convert the following code:\n\n```\n\r\n var x = expr1;\r\n if (x = null) x = expr2;\r\n```\n\nTo:\n\n```\n\r\n var x = expr1 ?? expr2;\r\n```\n\n[Learn more...](https://www.jetbrains.com/help/rider/ConvertIfStatementToNullCoalescingExpression.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ConvertIfStatementToNullCoalescingExpression", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerOsxCocoaRetainCountBase", - "shortDescription": { - "text": "osx.cocoa.RetainCountBase clang static analyzer check" - }, - "fullDescription": { - "text": "osx.cocoa.RetainCountBase clang static analyzer check · Learn more", - "markdown": "osx.cocoa.RetainCountBase clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerOsxCocoaRetainCountBase", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2231", - "shortDescription": { - "text": "RoslynAnalyzers Overload operator equals on overriding value type Equals" - }, - "fullDescription": { - "text": "In most programming languages there is no default implementation of the equality operator (==) for value types. If your programming language supports operator overloads, you should consider implementing the equality operator. Its behavior should be identical to that of Equals.", - "markdown": "In most programming languages there is no default implementation of the equality operator (==) for value types. If your programming language supports operator overloads, you should consider implementing the equality operator. Its behavior should be identical to that of Equals." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA2231", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyAndroidCloexecMemfdCreate", - "shortDescription": { - "text": "android-cloexec-memfd-create clang-tidy check" - }, - "fullDescription": { - "text": "android-cloexec-memfd-create clang-tidy check · Learn more", - "markdown": "android-cloexec-memfd-create clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/android/cloexec-memfd-create.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyAndroidCloexecMemfdCreate", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneLambdaFunctionName", - "shortDescription": { - "text": "bugprone-lambda-function-name clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-lambda-function-name clang-tidy check · Learn more", - "markdown": "bugprone-lambda-function-name clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/lambda-function-name.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneLambdaFunctionName", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2234", - "shortDescription": { - "text": "RoslynAnalyzers Pass system uri objects instead of strings" - }, - "fullDescription": { - "text": "A call is made to a method that has a string parameter whose name contains \"uri\", \"URI\", \"urn\", \"URN\", \"url\", or \"URL\". The declaring type of the method contains a corresponding method overload that has a System.Uri parameter.", - "markdown": "A call is made to a method that has a string parameter whose name contains \"uri\", \"URI\", \"urn\", \"URN\", \"url\", or \"URL\". The declaring type of the method contains a corresponding method overload that has a System.Uri parameter." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2234", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2119", - "shortDescription": { - "text": "RoslynAnalyzers Seal methods that satisfy private interfaces" - }, - "fullDescription": { - "text": "An inheritable public type provides an overridable method implementation of an internal (Friend in Visual Basic) interface. To fix a violation of this rule, prevent the method from being overridden outside the assembly.", - "markdown": "An inheritable public type provides an overridable method implementation of an internal (Friend in Visual Basic) interface. To fix a violation of this rule, prevent the method from being overridden outside the assembly." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2119", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ScriptTagHasBothSrcAndContentAttributes", - "shortDescription": { - "text": "Script tag errors (<script> with both src and content)" - }, - "fullDescription": { - "text": "<([)script(]) src=\"...\" ...>$content$", - "markdown": "\\<(\\[)script(\\]) src=\"...\" ...\\>$content$" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "ScriptTagHasBothSrcAndContentAttributes", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HTML/Potential Code Quality Issues", - "index": 54, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticVlaCxxExtension", - "shortDescription": { - "text": "vla-cxx-extension clang diagnostic" - }, - "fullDescription": { - "text": "-Wvla-cxx-extension clang diagnostic · Learn more", - "markdown": "-Wvla-cxx-extension clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wvla-cxx-extension)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticVlaCxxExtension", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnicodeZeroWidth", - "shortDescription": { - "text": "unicode-zero-width clang diagnostic" - }, - "fullDescription": { - "text": "-Wunicode-zero-width clang diagnostic · Learn more", - "markdown": "-Wunicode-zero-width clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunicode-zero-width)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnicodeZeroWidth", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppInitializedValueIsAlwaysRewritten", - "shortDescription": { - "text": "Declarator is reassigned in all paths before being read" - }, - "fullDescription": { - "text": "A declarator is reassigned in all paths before being read", - "markdown": "A declarator is reassigned in all paths before being read" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppInitializedValueIsAlwaysRewritten", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PartialMethodParameterNameMismatch", - "shortDescription": { - "text": "Parameter name differs between partial member declarations" - }, - "fullDescription": { - "text": "Parameter name differs between partial member declarations Learn more...", - "markdown": "Parameter name differs between partial member declarations [Learn more...](https://www.jetbrains.com/help/rider/PartialMethodParameterNameMismatch.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "PartialMethodParameterNameMismatch", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0241", - "shortDescription": { - "text": "RoslynAnalyzers Remove unnecessary nullable directive" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0241", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0240", - "shortDescription": { - "text": "RoslynAnalyzers Remove redundant nullable directive" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0240", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCertFio38C", - "shortDescription": { - "text": "cert-fio38-c clang-tidy check" - }, - "fullDescription": { - "text": "cert-fio38-c clang-tidy check · Learn more", - "markdown": "cert-fio38-c clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/fio38-c.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCertFio38C", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticAnonymousPackParens", - "shortDescription": { - "text": "anonymous-pack-parens clang diagnostic" - }, - "fullDescription": { - "text": "-Wanonymous-pack-parens clang diagnostic · Learn more", - "markdown": "-Wanonymous-pack-parens clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wanonymous-pack-parens)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticAnonymousPackParens", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PossibleMistakenCallToGetType", - "shortDescription": { - "text": "Possible mistaken 'GetType()' invocation" - }, - "fullDescription": { - "text": "Possible mistaken 'GetType()' invocation on 'System.Type' instance Learn more...", - "markdown": "Possible mistaken 'GetType()' invocation on 'System.Type' instance [Learn more...](https://www.jetbrains.com/help/rider/PossibleMistakenCallToGetType.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "PossibleMistakenCallToGetType", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnreachableCodeReturn", - "shortDescription": { - "text": "unreachable-code-return clang diagnostic" - }, - "fullDescription": { - "text": "-Wunreachable-code-return clang diagnostic · Learn more", - "markdown": "-Wunreachable-code-return clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunreachable-code-return)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnreachableCodeReturn", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerOsxCocoaLoops", - "shortDescription": { - "text": "osx.cocoa.Loops clang static analyzer check" - }, - "fullDescription": { - "text": "osx.cocoa.Loops clang static analyzer check · Learn more", - "markdown": "osx.cocoa.Loops clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerOsxCocoaLoops", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppSpecialFunctionWithoutNoexceptSpecification", - "shortDescription": { - "text": "Special function without noexcept specification" - }, - "fullDescription": { - "text": "Special function does not have any noexcept specification Learn more...", - "markdown": "Special function does not have any noexcept specification [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rf-noexcept)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppSpecialFunctionWithoutNoexceptSpecification", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0250", - "shortDescription": { - "text": "RoslynAnalyzers Make struct 'readonly'" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0250", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CanSimplifyDictionaryRemovingWithSingleCall", - "shortDescription": { - "text": "Dictionary item removal can be simplified with single 'Remove'" - }, - "fullDescription": { - "text": "Dictionary item removal can be simplified using single 'Remove' call with out-parameter Learn more...", - "markdown": "Dictionary item removal can be simplified using single 'Remove' call with out-parameter [Learn more...](https://www.jetbrains.com/help/rider/CanSimplifyDictionaryRemovingWithSingleCall.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CanSimplifyDictionaryRemovingWithSingleCall", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyMiscUnusedUsingDecls", - "shortDescription": { - "text": "misc-unused-using-decls clang-tidy check" - }, - "fullDescription": { - "text": "misc-unused-using-decls clang-tidy check · Learn more", - "markdown": "misc-unused-using-decls clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/unused-using-decls.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyMiscUnusedUsingDecls", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0251", - "shortDescription": { - "text": "RoslynAnalyzers Make member 'readonly'" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0251", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppStaticDataMemberInUnnamedStruct", - "shortDescription": { - "text": "Static data member in an anonymous class is not allowed by the C++ standard" - }, - "fullDescription": { - "text": "Static data members are not allowed in anonymous classes", - "markdown": "Static data members are not allowed in anonymous classes" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppStaticDataMemberInUnnamedStruct", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticAutoDisableVptrSanitizer", - "shortDescription": { - "text": "auto-disable-vptr-sanitizer clang diagnostic" - }, - "fullDescription": { - "text": "-Wauto-disable-vptr-sanitizer clang diagnostic · Learn more", - "markdown": "-Wauto-disable-vptr-sanitizer clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wauto-disable-vptr-sanitizer)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticAutoDisableVptrSanitizer", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit4002", - "shortDescription": { - "text": "RoslynAnalyzers Use Specific constraint" - }, - "fullDescription": { - "text": "Replace 'EqualTo' with a keyword in the corresponding specific constraint.", - "markdown": "Replace 'EqualTo' with a keyword in the corresponding specific constraint." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "NUnit4002", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticSignedUnsignedWchar", - "shortDescription": { - "text": "signed-unsigned-wchar clang diagnostic" - }, - "fullDescription": { - "text": "-Wsigned-unsigned-wchar clang diagnostic · Learn more", - "markdown": "-Wsigned-unsigned-wchar clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wsigned-unsigned-wchar)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticSignedUnsignedWchar", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerOsxNumberObjectConversion", - "shortDescription": { - "text": "osx.NumberObjectConversion clang static analyzer check" - }, - "fullDescription": { - "text": "osx.NumberObjectConversion clang static analyzer check · Learn more", - "markdown": "osx.NumberObjectConversion clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerOsxNumberObjectConversion", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "OperatorWithoutMatchedCheckedOperator", - "shortDescription": { - "text": "Operator without matching checked operator" - }, - "fullDescription": { - "text": "The operator does not have a matching checked operator while there are checked versions for other operators in this type", - "markdown": "The operator does not have a matching checked operator while there are checked versions for other operators in this type" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "OperatorWithoutMatchedCheckedOperator", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugpronePosixReturn", - "shortDescription": { - "text": "bugprone-posix-return clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-posix-return clang-tidy check · Learn more", - "markdown": "bugprone-posix-return clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/posix-return.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugpronePosixReturn", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SimplifyLinqExpressionUseAll", - "shortDescription": { - "text": "Simplify LINQ expression (use 'All')" - }, - "fullDescription": { - "text": "Simplify LINQ expression (use 'All' instead of 'Any')", - "markdown": "Simplify LINQ expression (use 'All' instead of 'Any')" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "SimplifyLinqExpressionUseAll", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0260", - "shortDescription": { - "text": "RoslynAnalyzers Use pattern matching" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0260", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ValueParameterNotUsed", - "shortDescription": { - "text": "'value' parameter is not used" - }, - "fullDescription": { - "text": "The setter of a property or indexer does not use its 'value' parameter. This also applies to adders and removers of events. Learn more...", - "markdown": "The setter of a property or indexer does not use its 'value' parameter. This also applies to adders and removers of events. [Learn more...](https://www.jetbrains.com/help/rider/ValueParameterNotUsed.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "ValueParameterNotUsed", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppMutableSpecifierOnReferenceMember", - "shortDescription": { - "text": "Reference class member with 'mutable' specifier" - }, - "fullDescription": { - "text": "Reference class members cannot have 'mutable' specifier", - "markdown": "Reference class members cannot have 'mutable' specifier" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppMutableSpecifierOnReferenceMember", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Compiler Warnings", - "index": 75, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantEnumerableCastCall", - "shortDescription": { - "text": "Redundant 'IEnumerable.Cast<T>' or 'IEnumerable.OfType<T>' call" - }, - "fullDescription": { - "text": "Redundant 'IEnumerable.Cast' or 'IEnumerable.OfType' call Learn more...", - "markdown": "Redundant 'IEnumerable.Cast' or 'IEnumerable.OfType' call [Learn more...](https://www.jetbrains.com/help/rider/RedundantEnumerableCastCall.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "RedundantEnumerableCastCall", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerOptinOsxCocoaLocalizabilityNonLocalizedStringChecker", - "shortDescription": { - "text": "optin.osx.cocoa.localizability.NonLocalizedStringChecker clang static analyzer check" - }, - "fullDescription": { - "text": "optin.osx.cocoa.localizability.NonLocalizedStringChecker clang static analyzer check · Learn more", - "markdown": "optin.osx.cocoa.localizability.NonLocalizedStringChecker clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerOptinOsxCocoaLocalizabilityNonLocalizedStringChecker", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantMyBaseQualifier", - "shortDescription": { - "text": "Redundant 'MyBase.' qualifier" - }, - "fullDescription": { - "text": "'MyBase.' qualifier is redundant and can be safely removed without changing code semantics.", - "markdown": "'MyBase.' qualifier is redundant and can be safely removed without changing code semantics." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantMyBaseQualifier", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Redundancies in Code", - "index": 96, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneForwardDeclarationNamespace", - "shortDescription": { - "text": "bugprone-forward-declaration-namespace clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-forward-declaration-namespace clang-tidy check · Learn more", - "markdown": "bugprone-forward-declaration-namespace clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/forward-declaration-namespace.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneForwardDeclarationNamespace", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.PreferGuidReference", - "shortDescription": { - "text": "Prefer GUID-based assembly references" - }, - "fullDescription": { - "text": "References in a .asmdef file can be by name or by asset GUID. Using an asset GUID protects against renaming the assembly definition.", - "markdown": "References in a .asmdef file can be by name or by asset GUID. Using an asset GUID protects against renaming the assembly definition." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "Unity.PreferGuidReference", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit4001", - "shortDescription": { - "text": "RoslynAnalyzers Simplify the Values attribute" - }, - "fullDescription": { - "text": "Consider removing unnecessary parameters from the ValuesAttribute.", - "markdown": "Consider removing unnecessary parameters from the ValuesAttribute." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "NUnit4001", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCertDcl37C", - "shortDescription": { - "text": "cert-dcl37-c clang-tidy check" - }, - "fullDescription": { - "text": "cert-dcl37-c clang-tidy check · Learn more", - "markdown": "cert-dcl37-c clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/dcl37-c.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCertDcl37C", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUndefinedVarTemplate", - "shortDescription": { - "text": "undefined-var-template clang diagnostic" - }, - "fullDescription": { - "text": "-Wundefined-var-template clang diagnostic · Learn more", - "markdown": "-Wundefined-var-template clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wundefined-var-template)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUndefinedVarTemplate", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithFirstOrDefault.1", - "shortDescription": { - "text": "Replace with FirstOrDefault($args$)" - }, - "fullDescription": { - "text": "$seq$.Any($args$) ? $seq$.First($args$) : null", - "markdown": "$seq$.Any($args$) ? $seq$.First($args$) : null" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithFirstOrDefault.1", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "BitwiseOperatorOnEnumWithoutFlags", - "shortDescription": { - "text": "Bitwise operation on enum that is not marked by the [Flags] attribute" - }, - "fullDescription": { - "text": "Bitwise operation on enum that is not marked by the [Flags] attribute Learn more...", - "markdown": "Bitwise operation on enum that is not marked by the \\[Flags\\] attribute [Learn more...](https://www.jetbrains.com/help/rider/BitwiseOperatorOnEnumWithoutFlags.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "BitwiseOperatorOnEnumWithoutFlags", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Asp.ContentPlaceholderNotResolved", - "shortDescription": { - "text": "Unknown content placeholder" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "Asp.ContentPlaceholderNotResolved", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Aspx/Potential Code Quality Issues", - "index": 64, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RouteTemplates.OptionalParameterMustBeAtTheEndOfSegment", - "shortDescription": { - "text": "Optional parameter must be at the end of the segment" - }, - "fullDescription": { - "text": "Optional parameter must be at the end of the segment", - "markdown": "Optional parameter must be at the end of the segment" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RouteTemplates.OptionalParameterMustBeAtTheEndOfSegment", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "ASP.NET route templates/Code Notification", - "index": 48, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnusedVariable", - "shortDescription": { - "text": "Unused local variable" - }, - "fullDescription": { - "text": "Local variable is never used Learn more...", - "markdown": "Local variable is never used [Learn more...](https://www.jetbrains.com/help/rider/UnusedVariable.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "UnusedVariable", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithFirstOrDefault.3", - "shortDescription": { - "text": "Replace with FirstOrDefault($args$)" - }, - "fullDescription": { - "text": "$seq$.Any($args$) ? $seq$.First($args$) : default($T$)", - "markdown": "$seq$.Any($args$) ? $seq$.First($args$) : default($T$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithFirstOrDefault.3", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyAbseilDurationAddition", - "shortDescription": { - "text": "abseil-duration-addition clang-tidy check" - }, - "fullDescription": { - "text": "abseil-duration-addition clang-tidy check · Learn more", - "markdown": "abseil-duration-addition clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/duration-addition.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyAbseilDurationAddition", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantArgumentDefaultValue", - "shortDescription": { - "text": "Redundant argument with default value" - }, - "fullDescription": { - "text": "Corresponding parameter is optional and has the same value, so the argument could be omitted Learn more...", - "markdown": "Corresponding parameter is optional and has the same value, so the argument could be omitted [Learn more...](https://www.jetbrains.com/help/rider/RedundantArgumentDefaultValue.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantArgumentDefaultValue", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithFirstOrDefault.2", - "shortDescription": { - "text": "Replace with FirstOrDefault($args$)" - }, - "fullDescription": { - "text": "$expr$ && $seq$.Any($args$) ? $seq$.First($args$) : null", - "markdown": "$expr$ \\&\\& $seq$.Any($args$) ? $seq$.First($args$) : null" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithFirstOrDefault.2", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithFirstOrDefault.4", - "shortDescription": { - "text": "Replace with FirstOrDefault($args$)" - }, - "fullDescription": { - "text": "$expr$ && $seq$.Any($args$) ? $seq$.First($args$) : default($T$)", - "markdown": "$expr$ \\&\\& $seq$.Any($args$) ? $seq$.First($args$) : default($T$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithFirstOrDefault.4", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PatternAlwaysMatches", - "shortDescription": { - "text": "The source expression always matches the provided pattern" - }, - "fullDescription": { - "text": "The source expression of 'is' operator or 'switch' statement always matches the provided pattern Learn more...", - "markdown": "The source expression of 'is' operator or 'switch' statement always matches the provided pattern [Learn more...](https://www.jetbrains.com/help/rider/PatternAlwaysMatches.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "PatternAlwaysMatches", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "BadParensSpaces", - "shortDescription": { - "text": "Incorrect spacing (around parenthesis)" - }, - "fullDescription": { - "text": "Around parenthesis Learn more...", - "markdown": "Around parenthesis [Learn more...](https://www.jetbrains.com/help/rider/BadParensSpaces.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "BadParensSpaces", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Formatting", - "index": 24, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantTypeArgumentsOfMethod", - "shortDescription": { - "text": "Redundant type arguments of method" - }, - "fullDescription": { - "text": "Specification of method type arguments is redundant because they are inferred from argument types Learn more...", - "markdown": "Specification of method type arguments is redundant because they are inferred from argument types [Learn more...](https://www.jetbrains.com/help/rider/RedundantTypeArgumentsOfMethod.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "RedundantTypeArgumentsOfMethod", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0270", - "shortDescription": { - "text": "RoslynAnalyzers Use coalesce expression" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0270", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppLambdaCaptureNeverUsed", - "shortDescription": { - "text": "Lambda capture is never used" - }, - "fullDescription": { - "text": "A lambda capture is never used", - "markdown": "A lambda capture is never used" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppLambdaCaptureNeverUsed", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerUnixMallocSizeof", - "shortDescription": { - "text": "unix.MallocSizeof clang static analyzer check" - }, - "fullDescription": { - "text": "unix.MallocSizeof clang static analyzer check · Learn more", - "markdown": "unix.MallocSizeof clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerUnixMallocSizeof", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2153", - "shortDescription": { - "text": "RoslynAnalyzers Do Not Catch Corrupted State Exceptions" - }, - "fullDescription": { - "text": "Catching corrupted state exceptions could mask errors (such as access violations), resulting in inconsistent state of execution or making it easier for attackers to compromise system. Instead, catch and handle a more specific set of exception type(s) or re-throw the exception.", - "markdown": "Catching corrupted state exceptions could mask errors (such as access violations), resulting in inconsistent state of execution or making it easier for attackers to compromise system. Instead, catch and handle a more specific set of exception type(s) or re-throw the exception." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2153", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMethodSignatures", - "shortDescription": { - "text": "method-signatures clang diagnostic" - }, - "fullDescription": { - "text": "-Wmethod-signatures clang diagnostic · Learn more", - "markdown": "-Wmethod-signatures clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmethod-signatures)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMethodSignatures", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1002FadeOut", - "shortDescription": { - "text": "RoslynAnalyzers Remove braces" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1002FadeOut", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SuspiciousMathSignMethod", - "shortDescription": { - "text": "Math.Sign() method always gives the same result" - }, - "fullDescription": { - "text": "Math.Sign() method invocation can be replaced with a constant", - "markdown": "Math.Sign() method invocation can be replaced with a constant" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "SuspiciousMathSignMethod", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppMsExtAddressOfClassRValue", - "shortDescription": { - "text": "Taking an address of class r-value is non-standard Microsoft C++ extension" - }, - "fullDescription": { - "text": "Taking an address of class r-value is non-standard Microsoft C++ extension", - "markdown": "Taking an address of class r-value is non-standard Microsoft C++ extension" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppMsExtAddressOfClassRValue", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticFutureAttributeExtensions", - "shortDescription": { - "text": "future-attribute-extensions clang diagnostic" - }, - "fullDescription": { - "text": "-Wfuture-attribute-extensions clang diagnostic · Learn more", - "markdown": "-Wfuture-attribute-extensions clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wfuture-attribute-extensions)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticFutureAttributeExtensions", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppUENonExistentInputAxis", - "shortDescription": { - "text": "Axis with this name does not exist" - }, - "fullDescription": { - "text": "Axis with this name does not exist", - "markdown": "Axis with this name does not exist" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppUENonExistentInputAxis", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Unreal Engine", - "index": 6, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyModernizeUseStartsEndsWith", - "shortDescription": { - "text": "modernize-use-starts-ends-with clang-tidy check" - }, - "fullDescription": { - "text": "modernize-use-starts-ends-with clang-tidy check · Learn more", - "markdown": "modernize-use-starts-ends-with clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-starts-ends-with.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyModernizeUseStartsEndsWith", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AllUnderscoreLocalParameterName", - "shortDescription": { - "text": "Potentially misleading parameter name in lambda or local function" - }, - "fullDescription": { - "text": "A name that consists of the '_' characters can be misleading for parameters that have usages, because such names are typically reserved for unused parameters Learn more...", - "markdown": "A name that consists of the '_' characters can be misleading for parameters that have usages, because such names are typically reserved for unused parameters [Learn more...](https://www.jetbrains.com/help/rider/AllUnderscoreLocalParameterName.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "AllUnderscoreLocalParameterName", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "StructLacksIEquatable.Global", - "shortDescription": { - "text": "Struct lacks 'IEquatable' implementation (non-private accessibility)" - }, - "fullDescription": { - "text": "Struct overrides equality members but lacks an 'IEquatable' implementation. To prevent boxing in a generic context, implement 'IEquatable'. This inspection only triggers when the struct or its containing type (such as record) is actually used for equality comparisons in the solution. Learn more...", - "markdown": "Struct overrides equality members but lacks an 'IEquatable' implementation. To prevent boxing in a generic context, implement 'IEquatable'. This inspection only triggers when the struct or its containing type (such as record) is actually used for equality comparisons in the solution. [Learn more...](https://www.jetbrains.com/help/rider/StructLacksIEquatable.Global.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "StructLacksIEquatable.Global", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppBadNamespaceBracesIndent", - "shortDescription": { - "text": "Incorrect indent (around namespace braces)" - }, - "fullDescription": { - "text": "Around namespace braces", - "markdown": "Around namespace braces" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppBadNamespaceBracesIndent", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Formatting", - "index": 28, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EnforceWhileStatementBraces", - "shortDescription": { - "text": "Use preferred braces style (enforce braces in 'while' statement)" - }, - "fullDescription": { - "text": "Use braces to separate 'while' statement body Learn more...", - "markdown": "Use braces to separate 'while' statement body [Learn more...](https://www.jetbrains.com/help/rider/EnforceWhileStatementBraces.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "EnforceWhileStatementBraces", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Syntax Style", - "index": 21, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0200", - "shortDescription": { - "text": "RoslynAnalyzers Remove unnecessary lambda expression" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0200", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticEmptyTranslationUnit", - "shortDescription": { - "text": "empty-translation-unit clang diagnostic" - }, - "fullDescription": { - "text": "-Wempty-translation-unit clang diagnostic · Learn more", - "markdown": "-Wempty-translation-unit clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wempty-translation-unit)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticEmptyTranslationUnit", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticArrayBounds", - "shortDescription": { - "text": "array-bounds clang diagnostic" - }, - "fullDescription": { - "text": "-Warray-bounds clang diagnostic · Learn more", - "markdown": "-Warray-bounds clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#warray-bounds)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticArrayBounds", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMicrosoftVoidPseudoDtor", - "shortDescription": { - "text": "microsoft-void-pseudo-dtor clang diagnostic" - }, - "fullDescription": { - "text": "-Wmicrosoft-void-pseudo-dtor clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-void-pseudo-dtor clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-void-pseudo-dtor)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftVoidPseudoDtor", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MergeCastWithTypeCheck", - "shortDescription": { - "text": "Type check and casts can be merged" - }, - "fullDescription": { - "text": "Type check ('is' expression) and direct cast(s) after it can be merged Learn more...", - "markdown": "Type check ('is' expression) and direct cast(s) after it can be merged [Learn more...](https://www.jetbrains.com/help/rider/MergeCastWithTypeCheck.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "MergeCastWithTypeCheck", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IntVariableOverflow", - "shortDescription": { - "text": "Possible overflow" - }, - "fullDescription": { - "text": "Possible overflow", - "markdown": "Possible overflow" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "IntVariableOverflow", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SuspiciousLockOverSynchronizationPrimitive", - "shortDescription": { - "text": "Suspicious locking over synchronization primitive" - }, - "fullDescription": { - "text": "Avoid using synchronization primitives as 'lock' objects", - "markdown": "Avoid using synchronization primitives as 'lock' objects" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "SuspiciousLockOverSynchronizationPrimitive", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyGoogleReadabilityNamespaceComments", - "shortDescription": { - "text": "google-readability-namespace-comments clang-tidy check" - }, - "fullDescription": { - "text": "google-readability-namespace-comments clang-tidy check · Learn more", - "markdown": "google-readability-namespace-comments clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/google/readability-namespace-comments.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyGoogleReadabilityNamespaceComments", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCertStr34C", - "shortDescription": { - "text": "cert-str34-c clang-tidy check" - }, - "fullDescription": { - "text": "cert-str34-c clang-tidy check · Learn more", - "markdown": "cert-str34-c clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/str34-c.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCertStr34C", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnusedTypeParameter", - "shortDescription": { - "text": "Unused type parameter" - }, - "fullDescription": { - "text": "Type parameter is never used", - "markdown": "Type parameter is never used" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "UnusedTypeParameter", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0210", - "shortDescription": { - "text": "RoslynAnalyzers Convert to top-level statements" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0210", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDollarInIdentifierExtension", - "shortDescription": { - "text": "dollar-in-identifier-extension clang diagnostic" - }, - "fullDescription": { - "text": "-Wdollar-in-identifier-extension clang diagnostic · Learn more", - "markdown": "-Wdollar-in-identifier-extension clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdollar-in-identifier-extension)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDollarInIdentifierExtension", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerOsxCoreFoundationCFError", - "shortDescription": { - "text": "osx.coreFoundation.CFError clang static analyzer check" - }, - "fullDescription": { - "text": "osx.coreFoundation.CFError clang static analyzer check · Learn more", - "markdown": "osx.coreFoundation.CFError clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerOsxCoreFoundationCFError", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithStringIsNullOrEmpty", - "shortDescription": { - "text": "Use 'String.IsNullOrEmpty'" - }, - "fullDescription": { - "text": "Replace direct comparison to null and empty string with 'String.IsNullOrEmpty' call Learn more...", - "markdown": "Replace direct comparison to null and empty string with 'String.IsNullOrEmpty' call [Learn more...](https://www.jetbrains.com/help/rider/ReplaceWithStringIsNullOrEmpty.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithStringIsNullOrEmpty", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0211", - "shortDescription": { - "text": "RoslynAnalyzers Convert to 'Program.Main' style program" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0211", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NegativeEqualityExpression", - "shortDescription": { - "text": "Simplify negative equality expression" - }, - "fullDescription": { - "text": "Suggest to replace !(expr1 != expr2) to expr1 == expr2 !(expr1 == expr2) to expr1 != expr2 Learn more...", - "markdown": "Suggest to replace !(expr1 != expr2) to expr1 == expr2 !(expr1 == expr2) to expr1 != expr2 [Learn more...](https://www.jetbrains.com/help/rider/NegativeEqualityExpression.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "NegativeEqualityExpression", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerSecurityInsecureAPIGetpw", - "shortDescription": { - "text": "security.insecureAPI.getpw clang static analyzer check" - }, - "fullDescription": { - "text": "security.insecureAPI.getpw clang static analyzer check · Learn more", - "markdown": "security.insecureAPI.getpw clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerSecurityInsecureAPIGetpw", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppUseStructuredBinding", - "shortDescription": { - "text": "Structured bindings can be used" - }, - "fullDescription": { - "text": "Structured bindings can be used", - "markdown": "Structured bindings can be used" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppUseStructuredBinding", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Common Practices and Code Improvements", - "index": 16, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "WebConfig.WebConfigPathWarning", - "shortDescription": { - "text": "Referenced path cannot be found in the website" - }, - "fullDescription": { - "text": "Referenced path cannot be found in the website", - "markdown": "Referenced path cannot be found in the website" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "WebConfig.WebConfigPathWarning", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Web.Config/Potential Code Quality Issues", - "index": 82, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticGnuImaginaryConstant", - "shortDescription": { - "text": "gnu-imaginary-constant clang diagnostic" - }, - "fullDescription": { - "text": "-Wgnu-imaginary-constant clang diagnostic · Learn more", - "markdown": "-Wgnu-imaginary-constant clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-imaginary-constant)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticGnuImaginaryConstant", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8714", - "shortDescription": { - "text": "Nullability of type argument doesn't match 'notnull' constraint." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/nullable-warnings#mismatch-in-nullability-declaration)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8714", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyAndroidCloexecOpen", - "shortDescription": { - "text": "android-cloexec-open clang-tidy check" - }, - "fullDescription": { - "text": "android-cloexec-open clang-tidy check · Learn more", - "markdown": "android-cloexec-open clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/android/cloexec-open.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyAndroidCloexecOpen", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityFunctionSize", - "shortDescription": { - "text": "readability-function-size clang-tidy check" - }, - "fullDescription": { - "text": "readability-function-size clang-tidy check · Learn more", - "markdown": "readability-function-size clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/function-size.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityFunctionSize", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnsupportedGpopt", - "shortDescription": { - "text": "unsupported-gpopt clang diagnostic" - }, - "fullDescription": { - "text": "-Wunsupported-gpopt clang diagnostic · Learn more", - "markdown": "-Wunsupported-gpopt clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunsupported-gpopt)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnsupportedGpopt", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnusedPropertyIvar", - "shortDescription": { - "text": "unused-property-ivar clang diagnostic" - }, - "fullDescription": { - "text": "-Wunused-property-ivar clang diagnostic · Learn more", - "markdown": "-Wunused-property-ivar clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunused-property-ivar)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnusedPropertyIvar", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0220", - "shortDescription": { - "text": "RoslynAnalyzers Add explicit cast" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0220", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp23Compat", - "shortDescription": { - "text": "c++23-compat clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++23-compat clang diagnostic · Learn more", - "markdown": "-Wc++23-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-23-compat)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp23Compat", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyAbseilDurationDivision", - "shortDescription": { - "text": "abseil-duration-division clang-tidy check" - }, - "fullDescription": { - "text": "abseil-duration-division clang-tidy check · Learn more", - "markdown": "abseil-duration-division clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/duration-division.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyAbseilDurationDivision", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticShiftOverflow", - "shortDescription": { - "text": "shift-overflow clang diagnostic" - }, - "fullDescription": { - "text": "-Wshift-overflow clang diagnostic · Learn more", - "markdown": "-Wshift-overflow clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wshift-overflow)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticShiftOverflow", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ArrangeLocalFunctionBody", - "shortDescription": { - "text": "Use preferred body style (convert into local function with preferred body style)" - }, - "fullDescription": { - "text": "Use expression or block body Learn more...", - "markdown": "Use expression or block body [Learn more...](https://www.jetbrains.com/help/rider/ArrangeLocalFunctionBody.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ArrangeLocalFunctionBody", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Syntax Style", - "index": 21, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnusedResult", - "shortDescription": { - "text": "unused-result clang diagnostic" - }, - "fullDescription": { - "text": "-Wunused-result clang diagnostic · Learn more", - "markdown": "-Wunused-result clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunused-result)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnusedResult", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ShaderLabWarnings", - "shortDescription": { - "text": "ShaderLab Warnings" - }, - "fullDescription": { - "text": "ShaderLab Warnings", - "markdown": "ShaderLab Warnings" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ShaderLabWarnings", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "ShaderLab/Non configurable", - "index": 150, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit.TestCaseSourceMustBeStatic", - "shortDescription": { - "text": "NUnit. Test case source must be static." - }, - "fullDescription": { - "text": "NUnit test case source field/property/method specified in [TestCaseSource] or [ValuesSource] attributes must be static. Learn more...", - "markdown": "NUnit test case source field/property/method specified in \\[TestCaseSource\\] or \\[ValuesSource\\] attributes must be static. [Learn more...](https://www.jetbrains.com/help/rider/NUnit.TestCaseSourceMustBeStatic.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NUnit.TestCaseSourceMustBeStatic", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/NUnit", - "index": 26, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDocumentation", - "shortDescription": { - "text": "documentation clang diagnostic" - }, - "fullDescription": { - "text": "-Wdocumentation clang diagnostic · Learn more", - "markdown": "-Wdocumentation clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdocumentation)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDocumentation", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SimplifyLinqExpressionUseAny", - "shortDescription": { - "text": "Simplify LINQ expression (use 'Any')" - }, - "fullDescription": { - "text": "Simplify LINQ expression (use 'Any' instead of 'All')", - "markdown": "Simplify LINQ expression (use 'Any' instead of 'All')" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "SimplifyLinqExpressionUseAny", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.InefficientMultidimensionalArrayUsage", - "shortDescription": { - "text": "Use jagged or one-dimensional array instead of multidimensional array" - }, - "fullDescription": { - "text": "Multidimensional array element access is converted to a method call. It is more efficient to use a jagged or one-dimensional array. Learn more...", - "markdown": "Multidimensional array element access is converted to a method call. It is more efficient to use a jagged or one-dimensional array. [Learn more...](https://github.com/JetBrains/resharper-unity/wiki/Accessing-multidimensional-arrays-is-inefficient)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.InefficientMultidimensionalArrayUsage", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity Performance Inspections", - "index": 128, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPtrauthNullPointers", - "shortDescription": { - "text": "ptrauth-null-pointers clang diagnostic" - }, - "fullDescription": { - "text": "-Wptrauth-null-pointers clang diagnostic · Learn more", - "markdown": "-Wptrauth-null-pointers clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wptrauth-null-pointers)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPtrauthNullPointers", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneUseAfterMove", - "shortDescription": { - "text": "bugprone-use-after-move clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-use-after-move clang-tidy check · Learn more", - "markdown": "bugprone-use-after-move clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/use-after-move.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneUseAfterMove", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConvertToAutoPropertyWithPrivateSetter", - "shortDescription": { - "text": "Convert property into auto-property with private setter" - }, - "fullDescription": { - "text": "Converts property declaration into C# auto-property syntax with private setter declared", - "markdown": "Converts property declaration into C# auto-property syntax with private setter declared" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ConvertToAutoPropertyWithPrivateSetter", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0230", - "shortDescription": { - "text": "RoslynAnalyzers Use UTF-8 string literal" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0230", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConvertToStaticClass", - "shortDescription": { - "text": "Convert into static class" - }, - "fullDescription": { - "text": "Make class static", - "markdown": "Make class static" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ConvertToStaticClass", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithSingleCallToLast", - "shortDescription": { - "text": "Replace with single call to Last(..)" - }, - "fullDescription": { - "text": "$seq$.Where($x$ => $expr$).Last()", - "markdown": "$seq$.Where($x$ =\\> $expr$).Last()" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithSingleCallToLast", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp14Compat", - "shortDescription": { - "text": "c++14-compat clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++14-compat clang diagnostic · Learn more", - "markdown": "-Wc++14-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-14-compat)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp14Compat", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticInstallapiViolation", - "shortDescription": { - "text": "installapi-violation clang diagnostic" - }, - "fullDescription": { - "text": "-Winstallapi-violation clang diagnostic · Learn more", - "markdown": "-Winstallapi-violation clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winstallapi-violation)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticInstallapiViolation", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.PerformanceCriticalCodeNullComparison", - "shortDescription": { - "text": "Expensive null comparison" - }, - "fullDescription": { - "text": "Equality operations on objects deriving from 'UnityEngine.Object' will also check that the underlying native object has not been destroyed. This requires a call into native code and can have a performance impact when used inside frequently called methods. Learn more...", - "markdown": "Equality operations on objects deriving from 'UnityEngine.Object' will also check that the underlying native object has not been destroyed. This requires a call into native code and can have a performance impact when used inside frequently called methods. [Learn more...](https://github.com/JetBrains/resharper-unity/wiki/Avoid-null-comparisons-against-UnityEngine.Object-subclasses)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "Unity.PerformanceCriticalCodeNullComparison", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity Performance Inspections", - "index": 128, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8777", - "shortDescription": { - "text": "Parameter must have a non-null value when exiting." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/nullable-warnings#code-doesnt-match-attribute-declaration)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8777", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8776", - "shortDescription": { - "text": "Member cannot be used in this attribute." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/nullable-warnings#code-doesnt-match-attribute-declaration)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8776", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8775", - "shortDescription": { - "text": "Member must conditionally have a non-null value when exiting a function." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/nullable-warnings#code-doesnt-match-attribute-declaration)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8775", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8774", - "shortDescription": { - "text": "Member must have a non-null value when exiting." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/nullable-warnings#code-doesnt-match-attribute-declaration)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8774", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMicrosoftFixedEnum", - "shortDescription": { - "text": "microsoft-fixed-enum clang diagnostic" - }, - "fullDescription": { - "text": "-Wmicrosoft-fixed-enum clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-fixed-enum clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-fixed-enum)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftFixedEnum", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneUnusedLocalNonTrivialVariable", - "shortDescription": { - "text": "bugprone-unused-local-non-trivial-variable clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-unused-local-non-trivial-variable clang-tidy check · Learn more", - "markdown": "bugprone-unused-local-non-trivial-variable clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/unused-local-non-trivial-variable.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyBugproneUnusedLocalNonTrivialVariable", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8770", - "shortDescription": { - "text": "Method lacks '[DoesNotReturn]' annotation in order to match implemented or overridden member." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/nullable-warnings#code-doesnt-match-attribute-declaration)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8770", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "BadCommaSpaces", - "shortDescription": { - "text": "Incorrect spacing (around comma)" - }, - "fullDescription": { - "text": "Around comma Learn more...", - "markdown": "Around comma [Learn more...](https://www.jetbrains.com/help/rider/BadCommaSpaces.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "BadCommaSpaces", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Formatting", - "index": 24, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantAbstractModifier", - "shortDescription": { - "text": "Redundant 'abstract' modifier" - }, - "fullDescription": { - "text": "Redundant 'abstract' modifier in interface declaration Learn more...", - "markdown": "Redundant 'abstract' modifier in interface declaration [Learn more...](https://www.jetbrains.com/help/rider/RedundantAbstractModifier.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantAbstractModifier", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp23AttributeExtensions", - "shortDescription": { - "text": "c++23-attribute-extensions clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++23-attribute-extensions clang diagnostic · Learn more", - "markdown": "-Wc++23-attribute-extensions clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-23-attribute-extensions)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp23AttributeExtensions", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticBitfieldConstantConversion", - "shortDescription": { - "text": "bitfield-constant-conversion clang diagnostic" - }, - "fullDescription": { - "text": "-Wbitfield-constant-conversion clang diagnostic · Learn more", - "markdown": "-Wbitfield-constant-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wbitfield-constant-conversion)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticBitfieldConstantConversion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneMultiLevelImplicitPointerConversion", - "shortDescription": { - "text": "bugprone-multi-level-implicit-pointer-conversion clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-multi-level-implicit-pointer-conversion clang-tidy check · Learn more", - "markdown": "bugprone-multi-level-implicit-pointer-conversion clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/multi-level-implicit-pointer-conversion.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneMultiLevelImplicitPointerConversion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CanSimplifyDictionaryTryGetValueWithGetValueOrDefault", - "shortDescription": { - "text": "Dictionary lookup can be simplified with 'GetValueOrDefault'" - }, - "fullDescription": { - "text": "Dictionary lookup can be simplified with 'GetValueOrDefault' extension method Learn more...", - "markdown": "Dictionary lookup can be simplified with 'GetValueOrDefault' extension method [Learn more...](https://www.jetbrains.com/help/rider/CanSimplifyDictionaryTryGetValueWithGetValueOrDefault.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CanSimplifyDictionaryTryGetValueWithGetValueOrDefault", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ForeachCanBePartlyConvertedToQueryUsingAnotherGetEnumerator", - "shortDescription": { - "text": "Part of foreach loop can be converted into LINQ-expression but another 'GetEnumerator' method will be used" - }, - "fullDescription": { - "text": "Part of 'foreach' ('For Each' for VB.NET) statement's body can be converted into a LINQ-expression but another 'GetEnumerator' method will be used", - "markdown": "Part of 'foreach' ('For Each' for VB.NET) statement's body can be converted into a LINQ-expression but another 'GetEnumerator' method will be used" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ForeachCanBePartlyConvertedToQueryUsingAnotherGetEnumerator", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MultipleResolveCandidatesInText", - "shortDescription": { - "text": "Ambiguous symbols in text argument" - }, - "fullDescription": { - "text": "Ambiguous symbols in text argument", - "markdown": "Ambiguous symbols in text argument" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "MultipleResolveCandidatesInText", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Asp.TagAttributeWithOptionalValue", - "shortDescription": { - "text": "Attribute with optional value problem" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Asp.TagAttributeWithOptionalValue", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Aspx/Common Practices and Code Improvements", - "index": 151, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppDeclarationHidesUncapturedLocal", - "shortDescription": { - "text": "Hiding an uncaptured local declaration" - }, - "fullDescription": { - "text": "A local declaration inside a lambda hides an uncaptured local declaration Learn more...", - "markdown": "A local declaration inside a lambda hides an uncaptured local declaration [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Res-reuse)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppDeclarationHidesUncapturedLocal", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.XamlXamarinFormsDataTypeAndBindingContextTypeMismatchedHighlighting", - "shortDescription": { - "text": "Types in x:DataType and BindingContext mismatch" - }, - "fullDescription": { - "text": "Types in x:DataType and BindingContext are different", - "markdown": "Types in x:DataType and BindingContext are different" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Xaml.XamlXamarinFormsDataTypeAndBindingContextTypeMismatchedHighlighting", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Potential Code Quality Issues", - "index": 45, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1114FadeOut", - "shortDescription": { - "text": "RoslynAnalyzers Remove redundant delegate creation" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1114FadeOut", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyMiscCoroutineHostileRaii", - "shortDescription": { - "text": "misc-coroutine-hostile-raii clang-tidy check" - }, - "fullDescription": { - "text": "misc-coroutine-hostile-raii clang-tidy check · Learn more", - "markdown": "misc-coroutine-hostile-raii clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/coroutine-hostile-raii.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyMiscCoroutineHostileRaii", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticArgumentUndefinedBehaviour", - "shortDescription": { - "text": "argument-undefined-behaviour clang diagnostic" - }, - "fullDescription": { - "text": "-Wargument-undefined-behaviour clang diagnostic · Learn more", - "markdown": "-Wargument-undefined-behaviour clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wargument-undefined-behaviour)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticArgumentUndefinedBehaviour", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticTautologicalValueRangeCompare", - "shortDescription": { - "text": "tautological-value-range-compare clang diagnostic" - }, - "fullDescription": { - "text": "-Wtautological-value-range-compare clang diagnostic · Learn more", - "markdown": "-Wtautological-value-range-compare clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wtautological-value-range-compare)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticTautologicalValueRangeCompare", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EntityFramework.NPlusOne.Usage", - "shortDescription": { - "text": "Possible multiple queries to the database (N+1 problem)" - }, - "fullDescription": { - "text": "Highlights usages of navigational properties that can cause unnecessary multiple SQL queries to the database (N+1 problem) Learn more...", - "markdown": "Highlights usages of navigational properties that can cause unnecessary multiple SQL queries to the database (N+1 problem) [Learn more...](https://www.jetbrains.com/help/rider/EntityFramework.NPlusOne.Usage.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "EntityFramework.NPlusOne.Usage", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Entity Framework", - "index": 37, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticSarifFormatUnstable", - "shortDescription": { - "text": "sarif-format-unstable clang diagnostic" - }, - "fullDescription": { - "text": "-Wsarif-format-unstable clang diagnostic · Learn more", - "markdown": "-Wsarif-format-unstable clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wsarif-format-unstable)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticSarifFormatUnstable", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneCopyConstructorInit", - "shortDescription": { - "text": "bugprone-copy-constructor-init clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-copy-constructor-init clang-tidy check · Learn more", - "markdown": "bugprone-copy-constructor-init clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/copy-constructor-init.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneCopyConstructorInit", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticFormatOverflow", - "shortDescription": { - "text": "format-overflow clang diagnostic" - }, - "fullDescription": { - "text": "-Wformat-overflow clang diagnostic · Learn more", - "markdown": "-Wformat-overflow clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wformat-overflow)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticFormatOverflow", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Web.IgnoredPath", - "shortDescription": { - "text": "Ignored path" - }, - "fullDescription": { - "text": "Path is ignored in project settings", - "markdown": "Path is ignored in project settings" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "Web.IgnoredPath", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Web.Config/Code Notification", - "index": 94, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticAtomicImplicitSeqCst", - "shortDescription": { - "text": "atomic-implicit-seq-cst clang diagnostic" - }, - "fullDescription": { - "text": "-Watomic-implicit-seq-cst clang diagnostic · Learn more", - "markdown": "-Watomic-implicit-seq-cst clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#watomic-implicit-seq-cst)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticAtomicImplicitSeqCst", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ArgumentsStyleStringLiteral", - "shortDescription": { - "text": "Use preferred argument style for string literal values" - }, - "fullDescription": { - "text": "Prefer using named/positional argument when 'string' literal value is passed Learn more...", - "markdown": "Prefer using named/positional argument when 'string' literal value is passed [Learn more...](https://www.jetbrains.com/help/rider/ArgumentsStyleStringLiteral.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ArgumentsStyleStringLiteral", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Syntax Style", - "index": 21, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyModernizeReturnBracedInitList", - "shortDescription": { - "text": "modernize-return-braced-init-list clang-tidy check" - }, - "fullDescription": { - "text": "modernize-return-braced-init-list clang-tidy check · Learn more", - "markdown": "modernize-return-braced-init-list clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/return-braced-init-list.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyModernizeReturnBracedInitList", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp20Extensions", - "shortDescription": { - "text": "c++20-extensions clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++20-extensions clang diagnostic · Learn more", - "markdown": "-Wc++20-extensions clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-20-extensions)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp20Extensions", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCppcoreguidelinesAvoidNonConstGlobalVariables", - "shortDescription": { - "text": "cppcoreguidelines-avoid-non-const-global-variables clang-tidy check" - }, - "fullDescription": { - "text": "cppcoreguidelines-avoid-non-const-global-variables clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-avoid-non-const-global-variables clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/avoid-non-const-global-variables.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCppcoreguidelinesAvoidNonConstGlobalVariables", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VariableLengthStringHexEscapeSequence", - "shortDescription": { - "text": "Avoid mixing of variable-length escape sequences and text" - }, - "fullDescription": { - "text": "The '\\x' escape sequence can interpret up to four hexadecimal digits. To prevent confusion when multiple digits follow, consider using a fixed-length sequence, e.g.: '\\u001A' instead of '\\x1A'. Learn more...", - "markdown": "The '\\\\x' escape sequence can interpret up to four hexadecimal digits. To prevent confusion when multiple digits follow, consider using a fixed-length sequence, e.g.: '\\\\u001A' instead of '\\\\x1A'. [Learn more...](https://www.jetbrains.com/help/rider/VariableLengthStringHexEscapeSequence.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "VariableLengthStringHexEscapeSequence", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantMeQualifier", - "shortDescription": { - "text": "Redundant 'Me.' qualifier" - }, - "fullDescription": { - "text": "'Me.' qualifier is redundant and can be safely removed without changing code semantics.", - "markdown": "'Me.' qualifier is redundant and can be safely removed without changing code semantics." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantMeQualifier", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Redundancies in Code", - "index": 96, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCustomAtomicProperties", - "shortDescription": { - "text": "custom-atomic-properties clang diagnostic" - }, - "fullDescription": { - "text": "-Wcustom-atomic-properties clang diagnostic · Learn more", - "markdown": "-Wcustom-atomic-properties clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcustom-atomic-properties)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCustomAtomicProperties", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneSuspiciousStringCompare", - "shortDescription": { - "text": "bugprone-suspicious-string-compare clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-suspicious-string-compare clang-tidy check · Learn more", - "markdown": "bugprone-suspicious-string-compare clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/suspicious-string-compare.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneSuspiciousStringCompare", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS0809", - "shortDescription": { - "text": "Obsolete member overrides non-obsolete member" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS0809", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantCollectionInitializerElementBraces", - "shortDescription": { - "text": "Redundant braces in collection initializer" - }, - "fullDescription": { - "text": "When collection initializer element has only one expression, the braces are redundant", - "markdown": "When collection initializer element has only one expression, the braces are redundant" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "RedundantCollectionInitializerElementBraces", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyModernizeShrinkToFit", - "shortDescription": { - "text": "modernize-shrink-to-fit clang-tidy check" - }, - "fullDescription": { - "text": "modernize-shrink-to-fit clang-tidy check · Learn more", - "markdown": "modernize-shrink-to-fit clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/shrink-to-fit.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyModernizeShrinkToFit", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnusedType.Global", - "shortDescription": { - "text": "Type is never used (non-private accessibility)" - }, - "fullDescription": { - "text": "Type is never used Learn more...", - "markdown": "Type is never used [Learn more...](https://www.jetbrains.com/help/rider/UnusedType.Global.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "UnusedType.Global", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AssignmentIsFullyDiscarded", - "shortDescription": { - "text": "Assignment results are fully discarded" - }, - "fullDescription": { - "text": "The values of deconstructing assignment are all discarded and cannot be used in any execution path", - "markdown": "The values of deconstructing assignment are all discarded and cannot be used in any execution path" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "AssignmentIsFullyDiscarded", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticAlignMismatch", - "shortDescription": { - "text": "align-mismatch clang diagnostic" - }, - "fullDescription": { - "text": "-Walign-mismatch clang diagnostic · Learn more", - "markdown": "-Walign-mismatch clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#walign-mismatch)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticAlignMismatch", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8769", - "shortDescription": { - "text": "Nullability of type of parameter doesn't match implemented member (possibly because of nullability attributes)." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/nullable-warnings#mismatch-in-nullability-declaration)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8769", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8768", - "shortDescription": { - "text": "Nullability of return type doesn't match implemented member (possibly because of nullability attributes)." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/nullable-warnings#mismatch-in-nullability-declaration)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8768", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8767", - "shortDescription": { - "text": "Nullability of type of parameter doesn't match implicitly implemented member (possibly because of nullability attributes)." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/nullable-warnings#mismatch-in-nullability-declaration)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8767", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneSuspiciousSemicolon", - "shortDescription": { - "text": "bugprone-suspicious-semicolon clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-suspicious-semicolon clang-tidy check · Learn more", - "markdown": "bugprone-suspicious-semicolon clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/suspicious-semicolon.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneSuspiciousSemicolon", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8766", - "shortDescription": { - "text": "Nullability of return type doesn't match implicitly implemented member (possibly because of nullability attributes)." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/nullable-warnings#mismatch-in-nullability-declaration)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8766", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8765", - "shortDescription": { - "text": "Nullability of type of parameter doesn't match overridden member (possibly because of nullability attributes)." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/nullable-warnings#mismatch-in-nullability-declaration)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8765", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8764", - "shortDescription": { - "text": "Nullability of return type doesn't match overridden member (possibly because of nullability attributes)." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/nullable-warnings#mismatch-in-nullability-declaration)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8764", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8763", - "shortDescription": { - "text": "A method marked [DoesNotReturn] should not return." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/nullable-warnings#code-doesnt-match-attribute-declaration)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8763", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8762", - "shortDescription": { - "text": "Parameter must conditionally have a non-null value when exiting a function." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/nullable-warnings#nonnullable-reference-not-initialized)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8762", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppForwardEnumDeclarationWithoutUnderlyingType", - "shortDescription": { - "text": "Forward enum declaration without underlying type" - }, - "fullDescription": { - "text": "ISO C++ forbids forward declarations of an enum without an underlying type", - "markdown": "ISO C++ forbids forward declarations of an enum without an underlying type" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppForwardEnumDeclarationWithoutUnderlyingType", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPointerToIntCast", - "shortDescription": { - "text": "pointer-to-int-cast clang diagnostic" - }, - "fullDescription": { - "text": "-Wpointer-to-int-cast clang diagnostic · Learn more", - "markdown": "-Wpointer-to-int-cast clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpointer-to-int-cast)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPointerToIntCast", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AutoPropertyCanBeMadeGetOnly.Local", - "shortDescription": { - "text": "Auto-property can be made get-only (private accessibility)" - }, - "fullDescription": { - "text": "Auto-property has no write usages after initialization and can be made get-only Learn more...", - "markdown": "Auto-property has no write usages after initialization and can be made get-only [Learn more...](https://www.jetbrains.com/help/rider/AutoPropertyCanBeMadeGetOnly.Local.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "AutoPropertyCanBeMadeGetOnly.Local", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AssignmentInsteadOfDiscard", - "shortDescription": { - "text": "Suspicious use of variable with discard-like name" - }, - "fullDescription": { - "text": "Reports expressions that look like discard patterns but actually assign a local variable with discard-like name '_'", - "markdown": "Reports expressions that look like discard patterns but actually assign a local variable with discard-like name '_'" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "AssignmentInsteadOfDiscard", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMainReturnType", - "shortDescription": { - "text": "main-return-type clang diagnostic" - }, - "fullDescription": { - "text": "-Wmain-return-type clang diagnostic · Learn more", - "markdown": "-Wmain-return-type clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmain-return-type)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMainReturnType", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppRedundantLambdaParameterList", - "shortDescription": { - "text": "Redundant parameter list in lambda declarator" - }, - "fullDescription": { - "text": "Empty parameter list in lambda declarator can be deleted", - "markdown": "Empty parameter list in lambda declarator can be deleted" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppRedundantLambdaParameterList", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Redundancies in Code", - "index": 34, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticFixedEnumExtension", - "shortDescription": { - "text": "fixed-enum-extension clang diagnostic" - }, - "fullDescription": { - "text": "-Wfixed-enum-extension clang diagnostic · Learn more", - "markdown": "-Wfixed-enum-extension clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wfixed-enum-extension)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticFixedEnumExtension", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPreCpp23CompatPedantic", - "shortDescription": { - "text": "pre-c++23-compat-pedantic clang diagnostic" - }, - "fullDescription": { - "text": "-Wpre-c++23-compat-pedantic clang diagnostic · Learn more", - "markdown": "-Wpre-c++23-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpre-c-23-compat-pedantic)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPreCpp23CompatPedantic", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppEqualOperandsInBinaryExpression", - "shortDescription": { - "text": "Binary operator acts on equal operands" - }, - "fullDescription": { - "text": "Binary operator acts on equal operands", - "markdown": "Binary operator acts on equal operands" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppEqualOperandsInBinaryExpression", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppJoinDeclarationAndAssignment", - "shortDescription": { - "text": "Declaration and assignment can be joined" - }, - "fullDescription": { - "text": "Declaration of a variable and assignment to it can be joined Learn more...", - "markdown": "Declaration of a variable and assignment to it can be joined [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Res-init)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppJoinDeclarationAndAssignment", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Common Practices and Code Improvements", - "index": 16, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppParameterNamesMismatch", - "shortDescription": { - "text": "Parameter names do not match" - }, - "fullDescription": { - "text": "Parameter names differ in different declarations of the same function", - "markdown": "Parameter names differ in different declarations of the same function" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppParameterNamesMismatch", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerCoreUndefinedBinaryOperatorResult", - "shortDescription": { - "text": "core.UndefinedBinaryOperatorResult clang static analyzer check" - }, - "fullDescription": { - "text": "core.UndefinedBinaryOperatorResult clang static analyzer check · Learn more", - "markdown": "core.UndefinedBinaryOperatorResult clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerCoreUndefinedBinaryOperatorResult", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerOsxCocoaNilArg", - "shortDescription": { - "text": "osx.cocoa.NilArg clang static analyzer check" - }, - "fullDescription": { - "text": "osx.cocoa.NilArg clang static analyzer check · Learn more", - "markdown": "osx.cocoa.NilArg clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerOsxCocoaNilArg", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VirtualMemberNeverOverridden.Global", - "shortDescription": { - "text": "Virtual (overridable) member is never overridden (non-private accessibility)" - }, - "fullDescription": { - "text": "Virtual (overridable) member is never overridden and so the 'virtual' ('overridable') modifier can be removed Learn more...", - "markdown": "Virtual (overridable) member is never overridden and so the 'virtual' ('overridable') modifier can be removed [Learn more...](https://www.jetbrains.com/help/rider/VirtualMemberNeverOverridden.Global.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "VirtualMemberNeverOverridden.Global", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppConstParameterInDeclaration", - "shortDescription": { - "text": "Const-qualified parameter in a function declaration" - }, - "fullDescription": { - "text": "Const-qualification of parameters has an effect only in function definitions", - "markdown": "Const-qualification of parameters has an effect only in function definitions" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppConstParameterInDeclaration", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Redundancies in Code", - "index": 34, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerCplusplusSelfAssignment", - "shortDescription": { - "text": "cplusplus.SelfAssignment clang static analyzer check" - }, - "fullDescription": { - "text": "cplusplus.SelfAssignment clang static analyzer check · Learn more", - "markdown": "cplusplus.SelfAssignment clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerCplusplusSelfAssignment", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConvertTypeCheckPatternToNullCheck", - "shortDescription": { - "text": "Use null check pattern instead of a type check succeeding on any not-null value" - }, - "fullDescription": { - "text": "The source expression is always of pattern's type, matches on all non-null values", - "markdown": "The source expression is always of pattern's type, matches on all non-null values" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "ConvertTypeCheckPatternToNullCheck", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConvertToVbAutoPropertyWithPrivateSetter", - "shortDescription": { - "text": "Convert property to auto-property with private setter" - }, - "fullDescription": { - "text": "Converts property declaration to VB.NET auto-property syntax with private setter declared.", - "markdown": "Converts property declaration to VB.NET auto-property syntax with private setter declared." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ConvertToVbAutoPropertyWithPrivateSetter", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticNSObjectAttribute", - "shortDescription": { - "text": "NSObject-attribute clang diagnostic" - }, - "fullDescription": { - "text": "-WNSObject-attribute clang diagnostic · Learn more", - "markdown": "-WNSObject-attribute clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wNSObject-attribute)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticNSObjectAttribute", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AsyncVoidMethod", - "shortDescription": { - "text": "Avoid using 'async' for methods and functions with the 'void' return type" - }, - "fullDescription": { - "text": "Prefer Task methods over methods returning 'void': any exceptions unhandled by the 'async void' method might lead to the process crash", - "markdown": "Prefer Task methods over methods returning 'void': any exceptions unhandled by the 'async void' method might lead to the process crash" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "AsyncVoidMethod", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppRedundantBaseClassAccessSpecifier", - "shortDescription": { - "text": "Redundant base class access specifier" - }, - "fullDescription": { - "text": "Redundant base class access specifier", - "markdown": "Redundant base class access specifier" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppRedundantBaseClassAccessSpecifier", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Redundancies in Code", - "index": 34, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyGoogleRuntimeOperator", - "shortDescription": { - "text": "google-runtime-operator clang-tidy check" - }, - "fullDescription": { - "text": "google-runtime-operator clang-tidy check · Learn more", - "markdown": "google-runtime-operator clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/google/runtime-operator.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyGoogleRuntimeOperator", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticBoolOperation", - "shortDescription": { - "text": "bool-operation clang diagnostic" - }, - "fullDescription": { - "text": "-Wbool-operation clang diagnostic · Learn more", - "markdown": "-Wbool-operation clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wbool-operation)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticBoolOperation", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticIncludeNextOutsideHeader", - "shortDescription": { - "text": "include-next-outside-header clang diagnostic" - }, - "fullDescription": { - "text": "-Winclude-next-outside-header clang diagnostic · Learn more", - "markdown": "-Winclude-next-outside-header clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winclude-next-outside-header)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticIncludeNextOutsideHeader", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnusedMember.Global", - "shortDescription": { - "text": "Type member is never used (non-private accessibility)" - }, - "fullDescription": { - "text": "Type member is never used Learn more...", - "markdown": "Type member is never used [Learn more...](https://www.jetbrains.com/help/rider/UnusedMember.Global.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UnusedMember.Global", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDuplicateEnum", - "shortDescription": { - "text": "duplicate-enum clang diagnostic" - }, - "fullDescription": { - "text": "-Wduplicate-enum clang diagnostic · Learn more", - "markdown": "-Wduplicate-enum clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wduplicate-enum)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDuplicateEnum", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppPolymorphicClassWithNonVirtualPublicDestructor", - "shortDescription": { - "text": "Polymorphic class with non-virtual public destructor" - }, - "fullDescription": { - "text": "A polymorphic class with a non-virtual public destructor Learn more...", - "markdown": "A polymorphic class with a non-virtual public destructor [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rc-dtor-virtual)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppPolymorphicClassWithNonVirtualPublicDestructor", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp11CompatDeprecatedWritableStrings", - "shortDescription": { - "text": "c++11-compat-deprecated-writable-strings clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++11-compat-deprecated-writable-strings clang diagnostic · Learn more", - "markdown": "-Wc++11-compat-deprecated-writable-strings clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-11-compat-deprecated-writable-strings)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp11CompatDeprecatedWritableStrings", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8794", - "shortDescription": { - "text": "Given expression always matches the provided pattern" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8794", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantLinebreak", - "shortDescription": { - "text": "Incorrect line breaks (line break is redundant elsewhere)" - }, - "fullDescription": { - "text": "Line break is redundant elsewhere Learn more...", - "markdown": "Line break is redundant elsewhere [Learn more...](https://www.jetbrains.com/help/rider/RedundantLinebreak.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RedundantLinebreak", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Formatting", - "index": 24, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticSyncFetchAndNandSemanticsChanged", - "shortDescription": { - "text": "sync-fetch-and-nand-semantics-changed clang diagnostic" - }, - "fullDescription": { - "text": "-Wsync-fetch-and-nand-semantics-changed clang diagnostic · Learn more", - "markdown": "-Wsync-fetch-and-nand-semantics-changed clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wsync-fetch-and-nand-semantics-changed)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticSyncFetchAndNandSemanticsChanged", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerOsxOSObjectRetainCount", - "shortDescription": { - "text": "osx.OSObjectRetainCount clang static analyzer check" - }, - "fullDescription": { - "text": "osx.OSObjectRetainCount clang static analyzer check · Learn more", - "markdown": "osx.OSObjectRetainCount clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerOsxOSObjectRetainCount", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EmptyRegion", - "shortDescription": { - "text": "Empty region" - }, - "fullDescription": { - "text": "Region doesn't contain any code and can be removed", - "markdown": "Region doesn't contain any code and can be removed" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "EmptyRegion", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnusedNullableDirective", - "shortDescription": { - "text": "Unused nullable directive" - }, - "fullDescription": { - "text": "A nullable directive has no impact and can be safely removed", - "markdown": "A nullable directive has no impact and can be safely removed" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "UnusedNullableDirective", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConvertSwitchStatementToSwitchExpression", - "shortDescription": { - "text": "Replace 'switch' statement with 'switch' expression" - }, - "fullDescription": { - "text": "Replace 'switch' statement with 'switch' expression", - "markdown": "Replace 'switch' statement with 'switch' expression" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ConvertSwitchStatementToSwitchExpression", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnusedFunction", - "shortDescription": { - "text": "unused-function clang diagnostic" - }, - "fullDescription": { - "text": "-Wunused-function clang diagnostic · Learn more", - "markdown": "-Wunused-function clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunused-function)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnusedFunction", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppRedundantQualifier", - "shortDescription": { - "text": "Redundant qualifier" - }, - "fullDescription": { - "text": "Qualifier is redundant and can be deleted", - "markdown": "Qualifier is redundant and can be deleted" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppRedundantQualifier", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Redundancies in Code", - "index": 34, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "FSharpLambdaCanBeSimplified", - "shortDescription": { - "text": "Lambda expression can be simplified" - }, - "fullDescription": { - "text": "Lambda expression can be simplified.", - "markdown": "Lambda expression can be simplified." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "FSharpLambdaCanBeSimplified", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "F#/Redundancies in Code", - "index": 73, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticReadOnlyTypes", - "shortDescription": { - "text": "read-only-types clang diagnostic" - }, - "fullDescription": { - "text": "-Wread-only-types clang diagnostic · Learn more", - "markdown": "-Wread-only-types clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wread-only-types)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticReadOnlyTypes", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCertMsc54Cpp", - "shortDescription": { - "text": "cert-msc54-cpp clang-tidy check" - }, - "fullDescription": { - "text": "cert-msc54-cpp clang-tidy check · Learn more", - "markdown": "cert-msc54-cpp clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/msc54-cpp.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyCertMsc54Cpp", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AnnotateCanBeNullParameter", - "shortDescription": { - "text": "Declaration nullability inferred (parameter is inferred to be nullable)" - }, - "fullDescription": { - "text": "[EXPERIMENTAL] Parameter is inferred to be nullable: consider annotating it with [CanBeNull] or [ItemCanBeNull] attribute. This inspection sometimes produces unsound results.", - "markdown": "\\[EXPERIMENTAL\\] Parameter is inferred to be nullable: consider annotating it with \\[CanBeNull\\] or \\[ItemCanBeNull\\] attribute. This inspection sometimes produces unsound results." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "AnnotateCanBeNullParameter", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCertErr52Cpp", - "shortDescription": { - "text": "cert-err52-cpp clang-tidy check" - }, - "fullDescription": { - "text": "cert-err52-cpp clang-tidy check · Learn more", - "markdown": "cert-err52-cpp clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/err52-cpp.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCertErr52Cpp", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticC2yExtensions", - "shortDescription": { - "text": "c2y-extensions clang diagnostic" - }, - "fullDescription": { - "text": "-Wc2y-extensions clang diagnostic · Learn more", - "markdown": "-Wc2y-extensions clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc2y-extensions)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticC2yExtensions", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MissingHeadAndBodyTags", - "shortDescription": { - "text": "Important tags or attributes missing (missing <head> and <body>)" - }, - "fullDescription": { - "text": "<([)html(]) $attr1$>", - "markdown": "\\<(\\[)html(\\]) $attr1$\\>" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "MissingHeadAndBodyTags", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HTML/Common Practices and Code Improvements", - "index": 74, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClassNeverUsed", - "shortDescription": { - "text": "Class is never used" - }, - "fullDescription": { - "text": "A class is never used", - "markdown": "A class is never used" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClassNeverUsed", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMissingPrototypeForCc", - "shortDescription": { - "text": "missing-prototype-for-cc clang diagnostic" - }, - "fullDescription": { - "text": "-Wmissing-prototype-for-cc clang diagnostic · Learn more", - "markdown": "-Wmissing-prototype-for-cc clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmissing-prototype-for-cc)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMissingPrototypeForCc", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticFormatZeroLength", - "shortDescription": { - "text": "format-zero-length clang diagnostic" - }, - "fullDescription": { - "text": "-Wformat-zero-length clang diagnostic · Learn more", - "markdown": "-Wformat-zero-length clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wformat-zero-length)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticFormatZeroLength", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.RedundantNamespaceAlias", - "shortDescription": { - "text": "Redundant namespace alias" - }, - "fullDescription": { - "text": "Namespace alias is not required by code and can be safely removed", - "markdown": "Namespace alias is not required by code and can be safely removed" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Xaml.RedundantNamespaceAlias", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Redundancies in Code", - "index": 77, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticAvrRtlibLinkingQuirks", - "shortDescription": { - "text": "avr-rtlib-linking-quirks clang diagnostic" - }, - "fullDescription": { - "text": "-Wavr-rtlib-linking-quirks clang diagnostic · Learn more", - "markdown": "-Wavr-rtlib-linking-quirks clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wavr-rtlib-linking-quirks)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticAvrRtlibLinkingQuirks", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBStringCompareIsCultureSpecific.5", - "shortDescription": { - "text": "String.Compare is culture-specific (string.Compare(string, int, string, int, bool) is culture-specific)" - }, - "fullDescription": { - "text": "$s$.Compare($s1$, $i1$, $s2$, $i2$, false)", - "markdown": "$s$.Compare($s1$, $i1$, $s2$, $i2$, false)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "VBStringCompareIsCultureSpecific.5", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBStringCompareIsCultureSpecific.4", - "shortDescription": { - "text": "String.Compare is culture-specific (string.Compare(string, int, string, int) is culture-specific)" - }, - "fullDescription": { - "text": "$s$.Compare($s1$, $i1$, $s2$, $i2$)", - "markdown": "$s$.Compare($s1$, $i1$, $s2$, $i2$)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "VBStringCompareIsCultureSpecific.4", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBStringCompareIsCultureSpecific.6", - "shortDescription": { - "text": "String.Compare is culture-specific (string.Compare(string, int, string, int, bool) is culture-specific)" - }, - "fullDescription": { - "text": "$s$.Compare($s1$, $i1$, $s2$, $i2$, true)", - "markdown": "$s$.Compare($s1$, $i1$, $s2$, $i2$, true)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "VBStringCompareIsCultureSpecific.6", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticRestrictExpansion", - "shortDescription": { - "text": "restrict-expansion clang diagnostic" - }, - "fullDescription": { - "text": "-Wrestrict-expansion clang diagnostic · Learn more", - "markdown": "-Wrestrict-expansion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wrestrict-expansion)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticRestrictExpansion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBStringCompareIsCultureSpecific.1", - "shortDescription": { - "text": "String.Compare is culture-specific (string.Compare(string, string) is culture-specific)" - }, - "fullDescription": { - "text": "$s$.Compare($s1$, $s2$)", - "markdown": "$s$.Compare($s1$, $s2$)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "VBStringCompareIsCultureSpecific.1", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp98Cpp11CompatBinaryLiteral", - "shortDescription": { - "text": "c++98-c++11-compat-binary-literal clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++98-c++11-compat-binary-literal clang diagnostic · Learn more", - "markdown": "-Wc++98-c++11-compat-binary-literal clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-98-c-11-compat-binary-literal)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp98Cpp11CompatBinaryLiteral", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDeleteAbstractNonVirtualDtor", - "shortDescription": { - "text": "delete-abstract-non-virtual-dtor clang diagnostic" - }, - "fullDescription": { - "text": "-Wdelete-abstract-non-virtual-dtor clang diagnostic · Learn more", - "markdown": "-Wdelete-abstract-non-virtual-dtor clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdelete-abstract-non-virtual-dtor)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDeleteAbstractNonVirtualDtor", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCppcoreguidelinesMacroUsage", - "shortDescription": { - "text": "cppcoreguidelines-macro-usage clang-tidy check" - }, - "fullDescription": { - "text": "cppcoreguidelines-macro-usage clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-macro-usage clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/macro-usage.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCppcoreguidelinesMacroUsage", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBStringCompareIsCultureSpecific.3", - "shortDescription": { - "text": "String.Compare is culture-specific (string.Compare(string, string, bool) is culture-specific)" - }, - "fullDescription": { - "text": "$string$.Compare($s1$, $s2$, true)", - "markdown": "$string$.Compare($s1$, $s2$, true)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "VBStringCompareIsCultureSpecific.3", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS9100", - "shortDescription": { - "text": "Parameter has params modifier in lambda but not in target delegate type." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/lambda-expression-errors#lambda-expression-delegate-type)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS9100", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBStringCompareIsCultureSpecific.2", - "shortDescription": { - "text": "String.Compare is culture-specific (string.Compare(string, string, bool) is culture-specific)" - }, - "fullDescription": { - "text": "$string$.Compare($s1$, $s2$, false)", - "markdown": "$string$.Compare($s1$, $s2$, false)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "VBStringCompareIsCultureSpecific.2", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCastAlign", - "shortDescription": { - "text": "cast-align clang diagnostic" - }, - "fullDescription": { - "text": "-Wcast-align clang diagnostic · Learn more", - "markdown": "-Wcast-align clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcast-align)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCastAlign", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnusedVariable", - "shortDescription": { - "text": "unused-variable clang diagnostic" - }, - "fullDescription": { - "text": "-Wunused-variable clang diagnostic · Learn more", - "markdown": "-Wunused-variable clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunused-variable)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnusedVariable", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS9107", - "shortDescription": { - "text": "Parameter is captured into the state of the enclosing type and its value is also passed to the base constructor. The value might be captured by the base class as well." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/constructor-errors#primary-constructor-declaration)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS9107", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IncorrectBlankLinesNearBraces", - "shortDescription": { - "text": "Incorrect blank lines (incorrect number of blank lines near braces)" - }, - "fullDescription": { - "text": "Incorrect number of blank lines near braces Learn more...", - "markdown": "Incorrect number of blank lines near braces [Learn more...](https://www.jetbrains.com/help/rider/IncorrectBlankLinesNearBraces.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IncorrectBlankLinesNearBraces", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Formatting", - "index": 24, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDeprecatedObjcPointerIntrospectionPerformSelector", - "shortDescription": { - "text": "deprecated-objc-pointer-introspection-performSelector clang diagnostic" - }, - "fullDescription": { - "text": "-Wdeprecated-objc-pointer-introspection-performSelector clang diagnostic · Learn more", - "markdown": "-Wdeprecated-objc-pointer-introspection-performSelector clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-objc-pointer-introspection-performSelector)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedObjcPointerIntrospectionPerformSelector", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCppcoreguidelinesProTypeMemberInit", - "shortDescription": { - "text": "cppcoreguidelines-pro-type-member-init clang-tidy check" - }, - "fullDescription": { - "text": "cppcoreguidelines-pro-type-member-init clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-pro-type-member-init clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/pro-type-member-init.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCppcoreguidelinesProTypeMemberInit", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyPortabilitySimdIntrinsics", - "shortDescription": { - "text": "portability-simd-intrinsics clang-tidy check" - }, - "fullDescription": { - "text": "portability-simd-intrinsics clang-tidy check · Learn more", - "markdown": "portability-simd-intrinsics clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/portability/simd-intrinsics.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyPortabilitySimdIntrinsics", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMissingMultilib", - "shortDescription": { - "text": "missing-multilib clang diagnostic" - }, - "fullDescription": { - "text": "-Wmissing-multilib clang diagnostic · Learn more", - "markdown": "-Wmissing-multilib clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmissing-multilib)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMissingMultilib", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyPortabilityStdAllocatorConst", - "shortDescription": { - "text": "portability-std-allocator-const clang-tidy check" - }, - "fullDescription": { - "text": "portability-std-allocator-const clang-tidy check · Learn more", - "markdown": "portability-std-allocator-const clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/portability/std-allocator-const.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyPortabilityStdAllocatorConst", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp98CompatBindToTemporaryCopy", - "shortDescription": { - "text": "c++98-compat-bind-to-temporary-copy clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++98-compat-bind-to-temporary-copy clang diagnostic · Learn more", - "markdown": "-Wc++98-compat-bind-to-temporary-copy clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-98-compat-bind-to-temporary-copy)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp98CompatBindToTemporaryCopy", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MoreSpecificForeachVariableTypeAvailable", - "shortDescription": { - "text": "Iteration variable can be declared with a more specific type" - }, - "fullDescription": { - "text": "Type of iteration variable declared in 'foreach' statement is less specific than that which can be inferred from the collection type being iterated Learn more...", - "markdown": "Type of iteration variable declared in 'foreach' statement is less specific than that which can be inferred from the collection type being iterated [Learn more...](https://www.jetbrains.com/help/rider/MoreSpecificForeachVariableTypeAvailable.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "MoreSpecificForeachVariableTypeAvailable", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyModernizeUseStdNumbers", - "shortDescription": { - "text": "modernize-use-std-numbers clang-tidy check" - }, - "fullDescription": { - "text": "modernize-use-std-numbers clang-tidy check · Learn more", - "markdown": "modernize-use-std-numbers clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-std-numbers.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyModernizeUseStdNumbers", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPreC23Compat", - "shortDescription": { - "text": "pre-c23-compat clang diagnostic" - }, - "fullDescription": { - "text": "-Wpre-c23-compat clang diagnostic · Learn more", - "markdown": "-Wpre-c23-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpre-c23-compat)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPreC23Compat", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticSyncAlignment", - "shortDescription": { - "text": "sync-alignment clang diagnostic" - }, - "fullDescription": { - "text": "-Wsync-alignment clang diagnostic · Learn more", - "markdown": "-Wsync-alignment clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wsync-alignment)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticSyncAlignment", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticSizeofArrayArgument", - "shortDescription": { - "text": "sizeof-array-argument clang diagnostic" - }, - "fullDescription": { - "text": "-Wsizeof-array-argument clang diagnostic · Learn more", - "markdown": "-Wsizeof-array-argument clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wsizeof-array-argument)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticSizeofArrayArgument", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPointerTypeMismatch", - "shortDescription": { - "text": "pointer-type-mismatch clang diagnostic" - }, - "fullDescription": { - "text": "-Wpointer-type-mismatch clang diagnostic · Learn more", - "markdown": "-Wpointer-type-mismatch clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpointer-type-mismatch)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPointerTypeMismatch", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Mvc.ActionNotResolved", - "shortDescription": { - "text": "MVC (unknown action)" - }, - "fullDescription": { - "text": "Unknown ASP.NET MVC Action", - "markdown": "Unknown ASP.NET MVC Action" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Mvc.ActionNotResolved", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Aspx/Potential Code Quality Issues", - "index": 64, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityReferenceToConstructedTemporary", - "shortDescription": { - "text": "readability-reference-to-constructed-temporary clang-tidy check" - }, - "fullDescription": { - "text": "readability-reference-to-constructed-temporary clang-tidy check · Learn more", - "markdown": "readability-reference-to-constructed-temporary clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/reference-to-constructed-temporary.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityReferenceToConstructedTemporary", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticExportUnnamed", - "shortDescription": { - "text": "export-unnamed clang diagnostic" - }, - "fullDescription": { - "text": "-Wexport-unnamed clang diagnostic · Learn more", - "markdown": "-Wexport-unnamed clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wexport-unnamed)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticExportUnnamed", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDeclarationAfterStatement", - "shortDescription": { - "text": "declaration-after-statement clang diagnostic" - }, - "fullDescription": { - "text": "-Wdeclaration-after-statement clang diagnostic · Learn more", - "markdown": "-Wdeclaration-after-statement clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeclaration-after-statement)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDeclarationAfterStatement", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCppcoreguidelinesProTypeUnionAccess", - "shortDescription": { - "text": "cppcoreguidelines-pro-type-union-access clang-tidy check" - }, - "fullDescription": { - "text": "cppcoreguidelines-pro-type-union-access clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-pro-type-union-access clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/pro-type-union-access.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCppcoreguidelinesProTypeUnionAccess", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantAnonymousTypePropertyName", - "shortDescription": { - "text": "Redundant anonymous type property explicit name" - }, - "fullDescription": { - "text": "Explicit name specification of anonymous type property is redundant. It is inferred from the initializer expression. Learn more...", - "markdown": "Explicit name specification of anonymous type property is redundant. It is inferred from the initializer expression. [Learn more...](https://www.jetbrains.com/help/rider/RedundantAnonymousTypePropertyName.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantAnonymousTypePropertyName", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantNullableAnnotationOnReferenceTypeConstraint", - "shortDescription": { - "text": "Redundant nullable annotation on 'class?' constraint of type parameter constrained by non-nullable base type" - }, - "fullDescription": { - "text": "The nullable annotation on 'class?' constraint is redundant because type parameter is constrained by non-nullable base type", - "markdown": "The nullable annotation on 'class?' constraint is redundant because type parameter is constrained by non-nullable base type" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantNullableAnnotationOnReferenceTypeConstraint", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDeprecatedNonPrototype", - "shortDescription": { - "text": "deprecated-non-prototype clang diagnostic" - }, - "fullDescription": { - "text": "-Wdeprecated-non-prototype clang diagnostic · Learn more", - "markdown": "-Wdeprecated-non-prototype clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-non-prototype)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedNonPrototype", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantNullableAnnotationOnTypeConstraintHasNonNullableTypeKind", - "shortDescription": { - "text": "Redundant nullable annotation on base type constraint of type parameter having non-nullable type kind" - }, - "fullDescription": { - "text": "The nullable annotation on base type constraint is redundant because type parameter has 'class' or 'struct' or 'unmanaged' constraint", - "markdown": "The nullable annotation on base type constraint is redundant because type parameter has 'class' or 'struct' or 'unmanaged' constraint" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantNullableAnnotationOnTypeConstraintHasNonNullableTypeKind", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VoidMethodWithMustUseReturnValueAttribute", - "shortDescription": { - "text": "'void' method is annotated with the [MustUseReturnValue] attribute" - }, - "fullDescription": { - "text": "It is meaningless to annotate a 'void' method with the [MustUseReturnValue] attribute", - "markdown": "It is meaningless to annotate a 'void' method with the \\[MustUseReturnValue\\] attribute" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "VoidMethodWithMustUseReturnValueAttribute", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticShiftNegativeValue", - "shortDescription": { - "text": "shift-negative-value clang diagnostic" - }, - "fullDescription": { - "text": "-Wshift-negative-value clang diagnostic · Learn more", - "markdown": "-Wshift-negative-value clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wshift-negative-value)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticShiftNegativeValue", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticBridgeCast", - "shortDescription": { - "text": "bridge-cast clang diagnostic" - }, - "fullDescription": { - "text": "-Wbridge-cast clang diagnostic · Learn more", - "markdown": "-Wbridge-cast clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wbridge-cast)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticBridgeCast", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyAlteraIdDependentBackwardBranch", - "shortDescription": { - "text": "altera-id-dependent-backward-branch clang-tidy check" - }, - "fullDescription": { - "text": "altera-id-dependent-backward-branch clang-tidy check · Learn more", - "markdown": "altera-id-dependent-backward-branch clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/altera/id-dependent-backward-branch.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyAlteraIdDependentBackwardBranch", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyModernizeMinMaxUseInitializerList", - "shortDescription": { - "text": "modernize-min-max-use-initializer-list clang-tidy check" - }, - "fullDescription": { - "text": "modernize-min-max-use-initializer-list clang-tidy check · Learn more", - "markdown": "modernize-min-max-use-initializer-list clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/min-max-use-initializer-list.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyModernizeMinMaxUseInitializerList", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticNullabilityCompletenessOnArrays", - "shortDescription": { - "text": "nullability-completeness-on-arrays clang diagnostic" - }, - "fullDescription": { - "text": "-Wnullability-completeness-on-arrays clang diagnostic · Learn more", - "markdown": "-Wnullability-completeness-on-arrays clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnullability-completeness-on-arrays)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticNullabilityCompletenessOnArrays", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EnforceFixedStatementBraces", - "shortDescription": { - "text": "Use preferred braces style (enforce braces in 'fixed' statement)" - }, - "fullDescription": { - "text": "Use braces to separate 'fixed' statement body Learn more...", - "markdown": "Use braces to separate 'fixed' statement body [Learn more...](https://www.jetbrains.com/help/rider/EnforceFixedStatementBraces.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "EnforceFixedStatementBraces", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Syntax Style", - "index": 21, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS9154", - "shortDescription": { - "text": "Signatures of interceptable and interceptor methods do not match" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/source-generator-errors#signature-mismatch)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS9154", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS9158", - "shortDescription": { - "text": "Nullability of reference types in type of parameter doesn't match interceptable method" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/source-generator-errors#signature-mismatch)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS9158", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticStrncatSize", - "shortDescription": { - "text": "strncat-size clang diagnostic" - }, - "fullDescription": { - "text": "-Wstrncat-size clang diagnostic · Learn more", - "markdown": "-Wstrncat-size clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wstrncat-size)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticStrncatSize", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppMultiCharacterLiteral", - "shortDescription": { - "text": "Multi-character character literal" - }, - "fullDescription": { - "text": "Multi-character character literal", - "markdown": "Multi-character character literal" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppMultiCharacterLiteral", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS9159", - "shortDescription": { - "text": "Nullability of reference types in return type in interceptor method doesn't match interceptable method'" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/source-generator-errors#signature-mismatch)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS9159", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityUniqueptrDeleteRelease", - "shortDescription": { - "text": "readability-uniqueptr-delete-release clang-tidy check" - }, - "fullDescription": { - "text": "readability-uniqueptr-delete-release clang-tidy check · Learn more", - "markdown": "readability-uniqueptr-delete-release clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/uniqueptr-delete-release.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityUniqueptrDeleteRelease", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticKnrPromotedParameter", - "shortDescription": { - "text": "knr-promoted-parameter clang diagnostic" - }, - "fullDescription": { - "text": "-Wknr-promoted-parameter clang diagnostic · Learn more", - "markdown": "-Wknr-promoted-parameter clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wknr-promoted-parameter)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticKnrPromotedParameter", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MethodOverloadWithOptionalParameter", - "shortDescription": { - "text": "Method with optional or 'params' parameter is hidden by overload" - }, - "fullDescription": { - "text": "Method with optional or 'params' parameter is hidden by overload", - "markdown": "Method with optional or 'params' parameter is hidden by overload" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "MethodOverloadWithOptionalParameter", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ThreadStaticFieldHasInitializer", - "shortDescription": { - "text": "Thread static field has initializer" - }, - "fullDescription": { - "text": "Thread static field has an initializer, which is invoked only once on the thread that is running when the static constructor executes Learn more...", - "markdown": "Thread static field has an initializer, which is invoked only once on the thread that is running when the static constructor executes [Learn more...](https://www.jetbrains.com/help/rider/ThreadStaticFieldHasInitializer.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "ThreadStaticFieldHasInitializer", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.AvaloniaWrongBindingModeForStreamBindingOperator", - "shortDescription": { - "text": "Using stream binding operator in TwoWay or OneWayToSource binding modes" - }, - "fullDescription": { - "text": "Using stream binding operator in TwoWay or OneWayToSource binding modes may cause runtime errors", - "markdown": "Using stream binding operator in TwoWay or OneWayToSource binding modes may cause runtime errors" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Xaml.AvaloniaWrongBindingModeForStreamBindingOperator", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Code Notification", - "index": 5, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppTabsAndSpacesMismatch", - "shortDescription": { - "text": "Incorrect indent (tabs/spaces mismatch)" - }, - "fullDescription": { - "text": "Tabs/spaces mismatch", - "markdown": "Tabs/spaces mismatch" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppTabsAndSpacesMismatch", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Formatting", - "index": 28, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerSecurityInsecureAPISecuritySyntaxChecker", - "shortDescription": { - "text": "security.insecureAPI.SecuritySyntaxChecker clang static analyzer check" - }, - "fullDescription": { - "text": "security.insecureAPI.SecuritySyntaxChecker clang static analyzer check · Learn more", - "markdown": "security.insecureAPI.SecuritySyntaxChecker clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerSecurityInsecureAPISecuritySyntaxChecker", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Html.IdNotResolved", - "shortDescription": { - "text": "Unknown ID" - }, - "fullDescription": { - "text": "Link to unknown anchor (no element with such ID or name)", - "markdown": "Link to unknown anchor (no element with such ID or name)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Html.IdNotResolved", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HTML/Potential Code Quality Issues", - "index": 54, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticInjectedClassName", - "shortDescription": { - "text": "injected-class-name clang diagnostic" - }, - "fullDescription": { - "text": "-Winjected-class-name clang diagnostic · Learn more", - "markdown": "-Winjected-class-name clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winjected-class-name)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticInjectedClassName", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPreC23CompatPedantic", - "shortDescription": { - "text": "pre-c23-compat-pedantic clang diagnostic" - }, - "fullDescription": { - "text": "-Wpre-c23-compat-pedantic clang diagnostic · Learn more", - "markdown": "-Wpre-c23-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpre-c23-compat-pedantic)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPreC23CompatPedantic", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EmptyDestructor", - "shortDescription": { - "text": "Empty destructor" - }, - "fullDescription": { - "text": "Empty finalizer declaration is redundant Learn more...", - "markdown": "Empty finalizer declaration is redundant [Learn more...](https://www.jetbrains.com/help/rider/EmptyDestructor.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "EmptyDestructor", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppReplaceTieWithStructuredBinding", - "shortDescription": { - "text": "Structured bindings can be used instead of tie(..)" - }, - "fullDescription": { - "text": "Structured bindings can be used instead of tie(..)", - "markdown": "Structured bindings can be used instead of tie(..)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppReplaceTieWithStructuredBinding", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Common Practices and Code Improvements", - "index": 16, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticFunctionMultiversion", - "shortDescription": { - "text": "function-multiversion clang diagnostic" - }, - "fullDescription": { - "text": "-Wfunction-multiversion clang diagnostic · Learn more", - "markdown": "-Wfunction-multiversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wfunction-multiversion)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticFunctionMultiversion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppUseEraseAlgorithm", - "shortDescription": { - "text": "'std::erase'/'std::erase_if' can be used instead of the remove-erase idiom" - }, - "fullDescription": { - "text": "'std::erase'/'std::erase_if' can be used instead of the remove-erase idiom", - "markdown": "'std::erase'/'std::erase_if' can be used instead of the remove-erase idiom" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppUseEraseAlgorithm", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Common Practices and Code Improvements", - "index": 16, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppDeclaratorDisambiguatedAsFunction", - "shortDescription": { - "text": "Declarator disambiguated as a function declaration" - }, - "fullDescription": { - "text": "Declarator is disambiguated as a function declaration. Make sure a variable definition is not intended instead.", - "markdown": "Declarator is disambiguated as a function declaration. Make sure a variable definition is not intended instead." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppDeclaratorDisambiguatedAsFunction", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppBadDeclarationBracesIndent", - "shortDescription": { - "text": "Incorrect indent (around declaration braces)" - }, - "fullDescription": { - "text": "Around declaration braces", - "markdown": "Around declaration braces" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppBadDeclarationBracesIndent", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Formatting", - "index": 28, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.InvalidMemberType", - "shortDescription": { - "text": "Member of invalid type" - }, - "fullDescription": { - "text": "Member of invalid type", - "markdown": "Member of invalid type" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "Xaml.InvalidMemberType", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Code Notification", - "index": 5, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MergeIntoLogicalPattern", - "shortDescription": { - "text": "Merge null/pattern/value checks into 'or'/'and' patterns" - }, - "fullDescription": { - "text": "Merge sequential negated null/pattern/value checks into single logical 'or'/'and' pattern check", - "markdown": "Merge sequential negated null/pattern/value checks into single logical 'or'/'and' pattern check" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "MergeIntoLogicalPattern", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PatternIsAlwaysTrueOrFalse", - "shortDescription": { - "text": "Pattern is always 'true' or always 'false'" - }, - "fullDescription": { - "text": "Pattern check result is always the same", - "markdown": "Pattern check result is always the same" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "PatternIsAlwaysTrueOrFalse", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.PreferNonAllocApi", - "shortDescription": { - "text": "Alternative non-allocating method available" - }, - "fullDescription": { - "text": "An alternative method is available that avoids allocation and reuses an existing buffer. Learn more...", - "markdown": "An alternative method is available that avoids allocation and reuses an existing buffer. [Learn more...](https://github.com/JetBrains/resharper-unity/wiki/Avoid-using-allocating-versions-of-Physics-Raycast-functions)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.PreferNonAllocApi", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp11Narrowing", - "shortDescription": { - "text": "c++11-narrowing clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++11-narrowing clang diagnostic · Learn more", - "markdown": "-Wc++11-narrowing clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-11-narrowing)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp11Narrowing", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RouteTemplates.DuplicatedParameter", - "shortDescription": { - "text": "Parameter declared in route more than once" - }, - "fullDescription": { - "text": "Parameter declared in route more than once", - "markdown": "Parameter declared in route more than once" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RouteTemplates.DuplicatedParameter", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "ASP.NET route templates/Code Notification", - "index": 48, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "BadSymbolSpaces", - "shortDescription": { - "text": "Incorrect spacing (around operator symbols)" - }, - "fullDescription": { - "text": "Around operator symbols Learn more...", - "markdown": "Around operator symbols [Learn more...](https://www.jetbrains.com/help/rider/BadSymbolSpaces.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "BadSymbolSpaces", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Formatting", - "index": 24, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppRedundantAccessSpecifier", - "shortDescription": { - "text": "Access specifier does not change accessibility level" - }, - "fullDescription": { - "text": "An access specifier does not change the accessibility level and is redundant Learn more...", - "markdown": "An access specifier does not change the accessibility level and is redundant [Learn more...](https://www.jetbrains.com/help/rider/CppRedundantAccessSpecifier.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppRedundantAccessSpecifier", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Redundancies in Code", - "index": 34, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantWithCancellation", - "shortDescription": { - "text": "Redundant 'WithCancellation()' invocation" - }, - "fullDescription": { - "text": "A 'WithCancellation()' call is redundant because the specified cancellation token is already applied to the async stream", - "markdown": "A 'WithCancellation()' call is redundant because the specified cancellation token is already applied to the async stream" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantWithCancellation", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnusedLocalFunction", - "shortDescription": { - "text": "Local function is never used" - }, - "fullDescription": { - "text": "Local function is never used Learn more...", - "markdown": "Local function is never used [Learn more...](https://www.jetbrains.com/help/rider/UnusedLocalFunction.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "UnusedLocalFunction", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticVectorConversion", - "shortDescription": { - "text": "vector-conversion clang diagnostic" - }, - "fullDescription": { - "text": "-Wvector-conversion clang diagnostic · Learn more", - "markdown": "-Wvector-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wvector-conversion)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticVectorConversion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.Entities.MustBeStructForDotsInheritor", - "shortDescription": { - "text": "DOTS: The type specified must be a structure type" - }, - "fullDescription": { - "text": "{0}'s inheritor '{1}' must be struct", - "markdown": "{0}'s inheritor '{1}' must be struct" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "Unity.Entities.MustBeStructForDotsInheritor", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantTypeCheckInPattern", - "shortDescription": { - "text": "Redundant type check in a pattern" - }, - "fullDescription": { - "text": "A pattern contains a redundant type check that matches any non-nullable values that are already handled in the pattern", - "markdown": "A pattern contains a redundant type check that matches any non-nullable values that are already handled in the pattern" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantTypeCheckInPattern", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "BadLinqLineBreaks", - "shortDescription": { - "text": "Incorrect line breaks (around LINQ queries)" - }, - "fullDescription": { - "text": "Around LINQ queries Learn more...", - "markdown": "Around LINQ queries [Learn more...](https://www.jetbrains.com/help/rider/BadLinqLineBreaks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "BadLinqLineBreaks", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Formatting", - "index": 24, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ArrangeObjectCreationWhenTypeEvident", - "shortDescription": { - "text": "Use preferred style of 'new' expression when created type is evident" - }, - "fullDescription": { - "text": "Add or remove explicit type specification in 'new' expression when type is evident from the usage Learn more...", - "markdown": "Add or remove explicit type specification in 'new' expression when type is evident from the usage [Learn more...](https://www.jetbrains.com/help/rider/ArrangeObjectCreationWhenTypeEvident.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ArrangeObjectCreationWhenTypeEvident", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Syntax Style", - "index": 21, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS9123", - "shortDescription": { - "text": "The '&' operator should not be used on parameters or local variables in async methods." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS9123", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS9124", - "shortDescription": { - "text": "Parameter is captured into the state of the enclosing type and its value is also used to initialize a field, property, or event." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/constructor-errors#primary-constructor-declaration)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS9124", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCertSig30C", - "shortDescription": { - "text": "cert-sig30-c clang-tidy check" - }, - "fullDescription": { - "text": "cert-sig30-c clang-tidy check · Learn more", - "markdown": "cert-sig30-c clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/sig30-c.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCertSig30C", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.PossibleNullReferenceException", - "shortDescription": { - "text": "Possible 'null' value in the path of binding without fallback value" - }, - "fullDescription": { - "text": "Dereferencing an expression which can have 'null' value in binding without specified fallback value", - "markdown": "Dereferencing an expression which can have 'null' value in binding without specified fallback value" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "Xaml.PossibleNullReferenceException", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Potential Code Quality Issues", - "index": 45, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyOpenmpUseDefaultNone", - "shortDescription": { - "text": "openmp-use-default-none clang-tidy check" - }, - "fullDescription": { - "text": "openmp-use-default-none clang-tidy check · Learn more", - "markdown": "openmp-use-default-none clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/openmp/use-default-none.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyOpenmpUseDefaultNone", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyModernizeUseRanges", - "shortDescription": { - "text": "modernize-use-ranges clang-tidy check" - }, - "fullDescription": { - "text": "modernize-use-ranges clang-tidy check · Learn more", - "markdown": "modernize-use-ranges clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-ranges.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyModernizeUseRanges", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit.IncorrectRangeBounds", - "shortDescription": { - "text": "NUnit. Incorrect range bounds. 'to' must be greater than or equal to 'from'." - }, - "fullDescription": { - "text": "NUnit. Incorrect [Range] bounds. The value of 'to' parameter must be greater than or equal to 'from', or there must be a negative step. Learn more...", - "markdown": "NUnit. Incorrect \\[Range\\] bounds. The value of 'to' parameter must be greater than or equal to 'from', or there must be a negative step. [Learn more...](https://www.jetbrains.com/help/rider/NUnit.IncorrectRangeBounds.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NUnit.IncorrectRangeBounds", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/NUnit", - "index": 26, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyModernizeUnaryStaticAssert", - "shortDescription": { - "text": "modernize-unary-static-assert clang-tidy check" - }, - "fullDescription": { - "text": "modernize-unary-static-assert clang-tidy check · Learn more", - "markdown": "modernize-unary-static-assert clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/unary-static-assert.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyModernizeUnaryStaticAssert", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PossibleMultipleWriteAccessInDoubleCheckLocking", - "shortDescription": { - "text": "Possible incorrect implementation of Double-Check Locking pattern. Possible multiple write access to checked field." - }, - "fullDescription": { - "text": "Possible incorrect implementation of Double-Check Locking pattern. Possible multiple write access to checked field. Learn more...", - "markdown": "Possible incorrect implementation of Double-Check Locking pattern. Possible multiple write access to checked field. [Learn more...](https://www.jetbrains.com/help/rider/PossibleMultipleWriteAccessInDoubleCheckLocking.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "PossibleMultipleWriteAccessInDoubleCheckLocking", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyPerformanceNoexceptSwap", - "shortDescription": { - "text": "performance-noexcept-swap clang-tidy check" - }, - "fullDescription": { - "text": "performance-noexcept-swap clang-tidy check · Learn more", - "markdown": "performance-noexcept-swap clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance/noexcept-swap.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyPerformanceNoexceptSwap", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBWarnings__BC42104", - "shortDescription": { - "text": "Variable is used before it has been assigned a value" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/3fdk625a.aspx)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "VBWarnings__BC42104", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Compiler Warnings", - "index": 110, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnusedAutoPropertyAccessor.Local", - "shortDescription": { - "text": "Auto-property accessor is never used (private accessibility)" - }, - "fullDescription": { - "text": "Accessor in auto-property is never used Learn more...", - "markdown": "Accessor in auto-property is never used [Learn more...](https://www.jetbrains.com/help/rider/UnusedAutoPropertyAccessor.Local.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "UnusedAutoPropertyAccessor.Local", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticInvalidIboutlet", - "shortDescription": { - "text": "invalid-iboutlet clang diagnostic" - }, - "fullDescription": { - "text": "-Winvalid-iboutlet clang diagnostic · Learn more", - "markdown": "-Winvalid-iboutlet clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winvalid-iboutlet)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticInvalidIboutlet", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnnamedTypeTemplateArgs", - "shortDescription": { - "text": "unnamed-type-template-args clang diagnostic" - }, - "fullDescription": { - "text": "-Wunnamed-type-template-args clang diagnostic · Learn more", - "markdown": "-Wunnamed-type-template-args clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunnamed-type-template-args)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnnamedTypeTemplateArgs", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RouteTemplates.ParameterTypeCanBeMadeStricter", - "shortDescription": { - "text": "Parameter's type can be made stricter due to applied constraints" - }, - "fullDescription": { - "text": "Parameter's type can be made stricter due to applied constraints", - "markdown": "Parameter's type can be made stricter due to applied constraints" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RouteTemplates.ParameterTypeCanBeMadeStricter", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "ASP.NET route templates/Code Notification", - "index": 48, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS9193", - "shortDescription": { - "text": "Argument should be a variable because it is passed to a 'ref readonly' parameter." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/ref-modifiers-errors#reference-variables-require-a-referent)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS9193", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS9195", - "shortDescription": { - "text": "Argument should be passed with the 'in' keyword." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/ref-modifiers-errors#reference-variables-require-a-referent)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS9195", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS9196", - "shortDescription": { - "text": "Reference kind modifier of parameter doesn't match the corresponding parameter in overridden or implemented member." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/ref-modifiers-errors#reference-variable-restrictions)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS9196", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS9197", - "shortDescription": { - "text": "Reference kind modifier of parameter doesn't match the corresponding parameter in hidden member." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS9197", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS9198", - "shortDescription": { - "text": "Reference kind modifier of parameter doesn't match the corresponding parameter in target." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS9198", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppUseAlgorithmWithCount", - "shortDescription": { - "text": "Algorithm accepting an iterator and a count can be used" - }, - "fullDescription": { - "text": "A standard algorithm accepting range iterators is used instead of the variant accepting an iterator and a count", - "markdown": "A standard algorithm accepting range iterators is used instead of the variant accepting an iterator and a count" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppUseAlgorithmWithCount", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Common Practices and Code Improvements", - "index": 16, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCmseUnionLeak", - "shortDescription": { - "text": "cmse-union-leak clang diagnostic" - }, - "fullDescription": { - "text": "-Wcmse-union-leak clang diagnostic · Learn more", - "markdown": "-Wcmse-union-leak clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcmse-union-leak)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCmseUnionLeak", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPedantic", - "shortDescription": { - "text": "pedantic clang diagnostic" - }, - "fullDescription": { - "text": "-Wpedantic clang diagnostic · Learn more", - "markdown": "-Wpedantic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpedantic)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPedantic", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConvertToConstant.Global", - "shortDescription": { - "text": "Convert local variable or field into constant (non-private accessibility)" - }, - "fullDescription": { - "text": "Convert local variable or field into constant", - "markdown": "Convert local variable or field into constant" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ConvertToConstant.Global", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppBadSemicolonSpaces", - "shortDescription": { - "text": "Incorrect spacing (around semicolon)" - }, - "fullDescription": { - "text": "Around semicolon", - "markdown": "Around semicolon" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppBadSemicolonSpaces", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Formatting", - "index": 28, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticNsconsumedMismatch", - "shortDescription": { - "text": "nsconsumed-mismatch clang diagnostic" - }, - "fullDescription": { - "text": "-Wnsconsumed-mismatch clang diagnostic · Learn more", - "markdown": "-Wnsconsumed-mismatch clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnsconsumed-mismatch)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticNsconsumedMismatch", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CenterTagIsObsolete", - "shortDescription": { - "text": "Obsolete tags and attributes (<center> is obsolete)" - }, - "fullDescription": { - "text": "<([)center(]) $attrs$>$content$", - "markdown": "\\<(\\[)center(\\]) $attrs$\\>$content$" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CenterTagIsObsolete", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HTML/Common Practices and Code Improvements", - "index": 74, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyAndroidCloexecInotifyInit1", - "shortDescription": { - "text": "android-cloexec-inotify-init1 clang-tidy check" - }, - "fullDescription": { - "text": "android-cloexec-inotify-init1 clang-tidy check · Learn more", - "markdown": "android-cloexec-inotify-init1 clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/android/cloexec-inotify-init1.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyAndroidCloexecInotifyInit1", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyAbseilCleanupCtad", - "shortDescription": { - "text": "abseil-cleanup-ctad clang-tidy check" - }, - "fullDescription": { - "text": "abseil-cleanup-ctad clang-tidy check · Learn more", - "markdown": "abseil-cleanup-ctad clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/cleanup-ctad.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyAbseilCleanupCtad", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp17CompatMangling", - "shortDescription": { - "text": "c++17-compat-mangling clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++17-compat-mangling clang diagnostic · Learn more", - "markdown": "-Wc++17-compat-mangling clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-17-compat-mangling)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp17CompatMangling", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantIteratorKeyword", - "shortDescription": { - "text": "Iterator function without 'Yield' statements" - }, - "fullDescription": { - "text": "Iterator function without 'Yield' statements", - "markdown": "Iterator function without 'Yield' statements" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantIteratorKeyword", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Redundancies in Code", - "index": 96, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1061FadeOut", - "shortDescription": { - "text": "RoslynAnalyzers Merge 'if' with nested 'if'" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1061FadeOut", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticImplicitExceptionSpecMismatch", - "shortDescription": { - "text": "implicit-exception-spec-mismatch clang diagnostic" - }, - "fullDescription": { - "text": "-Wimplicit-exception-spec-mismatch clang diagnostic · Learn more", - "markdown": "-Wimplicit-exception-spec-mismatch clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wimplicit-exception-spec-mismatch)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticImplicitExceptionSpecMismatch", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticGnuVariableSizedTypeNotAtEnd", - "shortDescription": { - "text": "gnu-variable-sized-type-not-at-end clang diagnostic" - }, - "fullDescription": { - "text": "-Wgnu-variable-sized-type-not-at-end clang diagnostic · Learn more", - "markdown": "-Wgnu-variable-sized-type-not-at-end clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-variable-sized-type-not-at-end)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticGnuVariableSizedTypeNotAtEnd", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCppcoreguidelinesMacroToEnum", - "shortDescription": { - "text": "cppcoreguidelines-macro-to-enum clang-tidy check" - }, - "fullDescription": { - "text": "cppcoreguidelines-macro-to-enum clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-macro-to-enum clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/macro-to-enum.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCppcoreguidelinesMacroToEnum", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyFuchsiaDefaultArgumentsDeclarations", - "shortDescription": { - "text": "fuchsia-default-arguments-declarations clang-tidy check" - }, - "fullDescription": { - "text": "fuchsia-default-arguments-declarations clang-tidy check · Learn more", - "markdown": "fuchsia-default-arguments-declarations clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/fuchsia/default-arguments-declarations.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyFuchsiaDefaultArgumentsDeclarations", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS9182", - "shortDescription": { - "text": "Inline array 'Slice' method will not be used for element access expression." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/inline-array-errors#conversions-to-span)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS9182", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS9183", - "shortDescription": { - "text": "Inline array conversion operator will not be used for conversion from expression of the declaring type." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/inline-array-errors#conversions-to-span)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS9183", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ClassNeverInstantiated.Local", - "shortDescription": { - "text": "Class is never instantiated (private accessibility)" - }, - "fullDescription": { - "text": "Non-static class is never instantiated Learn more...", - "markdown": "Non-static class is never instantiated [Learn more...](https://www.jetbrains.com/help/rider/ClassNeverInstantiated.Local.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ClassNeverInstantiated.Local", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS9184", - "shortDescription": { - "text": "'Inline arrays' language feature is not supported for inline array types with element field which is either a 'ref' field, or has type that is not valid as a type argument." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/inline-array-errors#inline-array-declaration)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS9184", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticForLoopAnalysis", - "shortDescription": { - "text": "for-loop-analysis clang diagnostic" - }, - "fullDescription": { - "text": "-Wfor-loop-analysis clang diagnostic · Learn more", - "markdown": "-Wfor-loop-analysis clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wfor-loop-analysis)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticForLoopAnalysis", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticBoolConversion", - "shortDescription": { - "text": "bool-conversion clang diagnostic" - }, - "fullDescription": { - "text": "-Wbool-conversion clang diagnostic · Learn more", - "markdown": "-Wbool-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wbool-conversion)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticBoolConversion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCastFunctionTypeStrict", - "shortDescription": { - "text": "cast-function-type-strict clang diagnostic" - }, - "fullDescription": { - "text": "-Wcast-function-type-strict clang diagnostic · Learn more", - "markdown": "-Wcast-function-type-strict clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcast-function-type-strict)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCastFunctionTypeStrict", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Asp.DeadCode", - "shortDescription": { - "text": "ASP.NET Dead Code" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://www.jetbrains.com/help/rider/Asp.DeadCode.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Asp.DeadCode", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Aspx/Potential Code Quality Issues", - "index": 64, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCertDcl50Cpp", - "shortDescription": { - "text": "cert-dcl50-cpp clang-tidy check" - }, - "fullDescription": { - "text": "cert-dcl50-cpp clang-tidy check · Learn more", - "markdown": "cert-dcl50-cpp clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/dcl50-cpp.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCertDcl50Cpp", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppBadControlBracesLineBreaks", - "shortDescription": { - "text": "Incorrect line breaks (around statement braces)" - }, - "fullDescription": { - "text": "Around statement braces", - "markdown": "Around statement braces" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppBadControlBracesLineBreaks", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Formatting", - "index": 28, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyModernizeUseUncaughtExceptions", - "shortDescription": { - "text": "modernize-use-uncaught-exceptions clang-tidy check" - }, - "fullDescription": { - "text": "modernize-use-uncaught-exceptions clang-tidy check · Learn more", - "markdown": "modernize-use-uncaught-exceptions clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-uncaught-exceptions.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyModernizeUseUncaughtExceptions", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS9191", - "shortDescription": { - "text": "The 'ref' modifier for an argument corresponding to 'in' parameter is equivalent to 'in'. Consider using 'in' instead." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/ref-modifiers-errors#reference-variables-require-a-referent)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS9191", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS9192", - "shortDescription": { - "text": "The 'ref' modifier for an argument corresponding to 'in' parameter is equivalent to 'in'. Consider using 'in' instead." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/ref-modifiers-errors#reference-variables-require-a-referent)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS9192", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "OutdentIsOffPrevLevel", - "shortDescription": { - "text": "Incorrect indent (indent level is not restored)" - }, - "fullDescription": { - "text": "Indent level is not restored Learn more...", - "markdown": "Indent level is not restored [Learn more...](https://www.jetbrains.com/help/rider/OutdentIsOffPrevLevel.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "OutdentIsOffPrevLevel", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Formatting", - "index": 24, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBReplaceWithOfType.Any.2", - "shortDescription": { - "text": "Replace with OfType<T>().Any() (replace with OfType(Of ..)().Any(..))" - }, - "fullDescription": { - "text": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).Any(Function ($y$) $y$ IsNot Nothing AndAlso $expr$)", - "markdown": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).Any(Function ($y$) $y$ IsNot Nothing AndAlso $expr$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBReplaceWithOfType.Any.2", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBReplaceWithOfType.Any.1", - "shortDescription": { - "text": "Replace with OfType<T>().Any() (replace with OfType(Of ..)().Any())" - }, - "fullDescription": { - "text": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).Any(Function ($y$) $y$ IsNot Nothing)", - "markdown": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).Any(Function ($y$) $y$ IsNot Nothing)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBReplaceWithOfType.Any.1", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EscapedKeyword", - "shortDescription": { - "text": "Keyword will be escaped during code generation" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "EscapedKeyword", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "T4/T4", - "index": 116, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseNullableAttributesSupportedByCompiler", - "shortDescription": { - "text": "Use compiler-supported nullable attributes" - }, - "fullDescription": { - "text": "Use compiler-supported attributes from System.Diagnostics.CodeAnalysis namespace to override annotations for nullable reference types", - "markdown": "Use compiler-supported attributes from System.Diagnostics.CodeAnalysis namespace to override annotations for nullable reference types" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UseNullableAttributesSupportedByCompiler", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyFuchsiaDefaultArgumentsCalls", - "shortDescription": { - "text": "fuchsia-default-arguments-calls clang-tidy check" - }, - "fullDescription": { - "text": "fuchsia-default-arguments-calls clang-tidy check · Learn more", - "markdown": "fuchsia-default-arguments-calls clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/fuchsia/default-arguments-calls.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyFuchsiaDefaultArgumentsCalls", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS9179", - "shortDescription": { - "text": "Primary constructor parameter is shadowed by a member from base type." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/constructor-errors#primary-constructor-declaration)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS9179", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticAlwaysInlineCoroutine", - "shortDescription": { - "text": "always-inline-coroutine clang diagnostic" - }, - "fullDescription": { - "text": "-Walways-inline-coroutine clang diagnostic · Learn more", - "markdown": "-Walways-inline-coroutine clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#walways-inline-coroutine)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticAlwaysInlineCoroutine", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnknownCudaVersion", - "shortDescription": { - "text": "unknown-cuda-version clang diagnostic" - }, - "fullDescription": { - "text": "-Wunknown-cuda-version clang diagnostic · Learn more", - "markdown": "-Wunknown-cuda-version clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunknown-cuda-version)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnknownCudaVersion", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Html.Obsolete", - "shortDescription": { - "text": "Obsolete or nonstandard element" - }, - "fullDescription": { - "text": "Obsolete or nonstandard element", - "markdown": "Obsolete or nonstandard element" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Html.Obsolete", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HTML/Potential Code Quality Issues", - "index": 54, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "GCSuppressFinalizeForTypeWithoutDestructor", - "shortDescription": { - "text": "'GC.SuppressFinalize' is invoked for type without destructor" - }, - "fullDescription": { - "text": "'GC.SuppressFinalize' is invoked for type without destructor Learn more...", - "markdown": "'GC.SuppressFinalize' is invoked for type without destructor [Learn more...](https://www.jetbrains.com/help/rider/GCSuppressFinalizeForTypeWithoutDestructor.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "GCSuppressFinalizeForTypeWithoutDestructor", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppHeaderHasBeenAlreadyIncluded", - "shortDescription": { - "text": "Guarded header has already been included" - }, - "fullDescription": { - "text": "Guarded header has already been included", - "markdown": "Guarded header has already been included" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppHeaderHasBeenAlreadyIncluded", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Redundancies in Code", - "index": 34, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ParameterTypeCanBeEnumerable.Global", - "shortDescription": { - "text": "Parameter type can be IEnumerable<T> (non-private accessibility)" - }, - "fullDescription": { - "text": "Parameter can be declared with IEnumerable type but it is declared with more specific type (e.g. List) Learn more...", - "markdown": "Parameter can be declared with IEnumerable type but it is declared with more specific type (e.g. List) [Learn more...](https://www.jetbrains.com/help/rider/ParameterTypeCanBeEnumerable.Global.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ParameterTypeCanBeEnumerable.Global", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppPrecompiledHeaderNotFound", - "shortDescription": { - "text": "Precompiled header is not found" - }, - "fullDescription": { - "text": "No corresponding file with the 'Precompiled Header' property set to 'Create' (/Yc) is found", - "markdown": "No corresponding file with the 'Precompiled Header' property set to 'Create' (/Yc) is found" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "CppPrecompiledHeaderNotFound", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Compiler Warnings", - "index": 75, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithOfType.LongCount", - "shortDescription": { - "text": "Replace with OfType<T>().LongCount()" - }, - "fullDescription": { - "text": "$seq$.Select($x$ => $x$ as $T$).LongCount($y$ => $y$ != null)", - "markdown": "$seq$.Select($x$ =\\> $x$ as $T$).LongCount($y$ =\\> $y$ != null)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithOfType.LongCount", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnicode", - "shortDescription": { - "text": "unicode clang diagnostic" - }, - "fullDescription": { - "text": "-Wunicode clang diagnostic · Learn more", - "markdown": "-Wunicode clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunicode)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnicode", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS9181", - "shortDescription": { - "text": "Inline array indexer will not be used for element access expression." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/inline-array-errors#element-access)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS9181", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMultipleMoveVbase", - "shortDescription": { - "text": "multiple-move-vbase clang diagnostic" - }, - "fullDescription": { - "text": "-Wmultiple-move-vbase clang diagnostic · Learn more", - "markdown": "-Wmultiple-move-vbase clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmultiple-move-vbase)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMultipleMoveVbase", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCstringFormatDirective", - "shortDescription": { - "text": "cstring-format-directive clang diagnostic" - }, - "fullDescription": { - "text": "-Wcstring-format-directive clang diagnostic · Learn more", - "markdown": "-Wcstring-format-directive clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcstring-format-directive)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCstringFormatDirective", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityMisplacedArrayIndex", - "shortDescription": { - "text": "readability-misplaced-array-index clang-tidy check" - }, - "fullDescription": { - "text": "readability-misplaced-array-index clang-tidy check · Learn more", - "markdown": "readability-misplaced-array-index clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/misplaced-array-index.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityMisplacedArrayIndex", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticThreadSafetyAttributes", - "shortDescription": { - "text": "thread-safety-attributes clang diagnostic" - }, - "fullDescription": { - "text": "-Wthread-safety-attributes clang diagnostic · Learn more", - "markdown": "-Wthread-safety-attributes clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wthread-safety-attributes)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticThreadSafetyAttributes", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticExceptions", - "shortDescription": { - "text": "exceptions clang diagnostic" - }, - "fullDescription": { - "text": "-Wexceptions clang diagnostic · Learn more", - "markdown": "-Wexceptions clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wexceptions)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticExceptions", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppEnforceOverridingDestructorStyle", - "shortDescription": { - "text": "Use preferred overriding function style (enforce overriding destructor style)" - }, - "fullDescription": { - "text": "Enforce the 'virtual' and 'override' specifiers on overriding destructors", - "markdown": "Enforce the 'virtual' and 'override' specifiers on overriding destructors" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppEnforceOverridingDestructorStyle", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Syntax Style", - "index": 91, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseWithExpressionToCopyStruct", - "shortDescription": { - "text": "Use 'with' expression to copy struct" - }, - "fullDescription": { - "text": "Use 'with' expression to create a modified instance of a struct", - "markdown": "Use 'with' expression to create a modified instance of a struct" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UseWithExpressionToCopyStruct", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppUE4BuildErrors", - "shortDescription": { - "text": "C++ UE4 Build Errors" - }, - "fullDescription": { - "text": "C++ UE4 Build Errors", - "markdown": "C++ UE4 Build Errors" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "CppUE4BuildErrors", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Non configurable", - "index": 127, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyAbseilFasterStrsplitDelimiter", - "shortDescription": { - "text": "abseil-faster-strsplit-delimiter clang-tidy check" - }, - "fullDescription": { - "text": "abseil-faster-strsplit-delimiter clang-tidy check · Learn more", - "markdown": "abseil-faster-strsplit-delimiter clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/faster-strsplit-delimiter.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyAbseilFasterStrsplitDelimiter", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDivisionByZero", - "shortDescription": { - "text": "division-by-zero clang diagnostic" - }, - "fullDescription": { - "text": "-Wdivision-by-zero clang diagnostic · Learn more", - "markdown": "-Wdivision-by-zero clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdivision-by-zero)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDivisionByZero", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PropertyFieldKeywordIsNeverUsed", - "shortDescription": { - "text": "Backing field is assigned but never used" - }, - "fullDescription": { - "text": "Backing field of property with 'field' keyword is assigned but never used", - "markdown": "Backing field of property with 'field' keyword is assigned but never used" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "PropertyFieldKeywordIsNeverUsed", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnityGutterMarks", - "shortDescription": { - "text": "Unity Gutter Marks" - }, - "fullDescription": { - "text": "Unity Gutter Marks", - "markdown": "Unity Gutter Marks" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "UnityGutterMarks", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Non configurable", - "index": 52, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RouteTemplates.SymbolNotResolved", - "shortDescription": { - "text": "Symbol not resolved" - }, - "fullDescription": { - "text": "Symbol not resolved", - "markdown": "Symbol not resolved" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RouteTemplates.SymbolNotResolved", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "ASP.NET route templates/Code Notification", - "index": 48, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMissingSelectorName", - "shortDescription": { - "text": "missing-selector-name clang diagnostic" - }, - "fullDescription": { - "text": "-Wmissing-selector-name clang diagnostic · Learn more", - "markdown": "-Wmissing-selector-name clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmissing-selector-name)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMissingSelectorName", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "DoubleNegationInPattern", - "shortDescription": { - "text": "Simplify negated pattern" - }, - "fullDescription": { - "text": "Suggest to replace `x is not not T` to `x is T` `!(x is not T)` to `x is T`", - "markdown": "Suggest to replace \\`x is not not T\\` to \\`x is T\\` \\`!(x is not T)\\` to \\`x is T\\`" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "DoubleNegationInPattern", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticEnumConstexprConversion", - "shortDescription": { - "text": "enum-constexpr-conversion clang diagnostic" - }, - "fullDescription": { - "text": "-Wenum-constexpr-conversion clang diagnostic · Learn more", - "markdown": "-Wenum-constexpr-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wenum-constexpr-conversion)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticEnumConstexprConversion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyModernizeTypeTraits", - "shortDescription": { - "text": "modernize-type-traits clang-tidy check" - }, - "fullDescription": { - "text": "modernize-type-traits clang-tidy check · Learn more", - "markdown": "modernize-type-traits clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/type-traits.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyModernizeTypeTraits", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneDynamicStaticInitializers", - "shortDescription": { - "text": "bugprone-dynamic-static-initializers clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-dynamic-static-initializers clang-tidy check · Learn more", - "markdown": "bugprone-dynamic-static-initializers clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/dynamic-static-initializers.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneDynamicStaticInitializers", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PlaceAssignmentExpressionIntoBlock", - "shortDescription": { - "text": "Place assignment expression into block" - }, - "fullDescription": { - "text": "Place assignment expression into block to indicate the side-effect", - "markdown": "Place assignment expression into block to indicate the side-effect" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "PlaceAssignmentExpressionIntoBlock", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Syntax Style", - "index": 21, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticFlexibleArrayExtensions", - "shortDescription": { - "text": "flexible-array-extensions clang diagnostic" - }, - "fullDescription": { - "text": "-Wflexible-array-extensions clang diagnostic · Learn more", - "markdown": "-Wflexible-array-extensions clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wflexible-array-extensions)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticFlexibleArrayExtensions", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDynamicExceptionSpec", - "shortDescription": { - "text": "dynamic-exception-spec clang diagnostic" - }, - "fullDescription": { - "text": "-Wdynamic-exception-spec clang diagnostic · Learn more", - "markdown": "-Wdynamic-exception-spec clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdynamic-exception-spec)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDynamicExceptionSpec", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PossibleUnintendedReferenceComparison", - "shortDescription": { - "text": "Possible unintended reference comparison" - }, - "fullDescription": { - "text": "Possible unintended reference comparison Learn more...", - "markdown": "Possible unintended reference comparison [Learn more...](https://www.jetbrains.com/help/rider/PossibleUnintendedReferenceComparison.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "PossibleUnintendedReferenceComparison", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticSizeofArrayDecay", - "shortDescription": { - "text": "sizeof-array-decay clang diagnostic" - }, - "fullDescription": { - "text": "-Wsizeof-array-decay clang diagnostic · Learn more", - "markdown": "-Wsizeof-array-decay clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wsizeof-array-decay)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticSizeofArrayDecay", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0280", - "shortDescription": { - "text": "RoslynAnalyzers Use 'nameof'" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0280", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp14Extensions", - "shortDescription": { - "text": "c++14-extensions clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++14-extensions clang diagnostic · Learn more", - "markdown": "-Wc++14-extensions clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-14-extensions)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp14Extensions", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.NoNullCoalescing", - "shortDescription": { - "text": "Possible unintended bypass of lifetime check of underlying Unity engine object (null coalescing on a type deriving from 'UnityEngine.Object' bypasses the lifetime check on the underlying Unity engine object)" - }, - "fullDescription": { - "text": "The null coalescing operator does not call custom equality operators defined on 'UnityEngine.Object'. These operators check if the underlying Unity engine object has been destroyed. Prefer an explicit null comparison or implicit bool comparison if the lifetime check is intended, or explicitly use 'object.ReferenceEquals()' for a standard (and quicker) CLR null check. Learn more...", - "markdown": "The null coalescing operator does not call custom equality operators defined on 'UnityEngine.Object'. These operators check if the underlying Unity engine object has been destroyed. Prefer an explicit null comparison or implicit bool comparison if the lifetime check is intended, or explicitly use 'object.ReferenceEquals()' for a standard (and quicker) CLR null check. [Learn more...](https://github.com/JetBrains/resharper-unity/wiki/Possible-unintended-bypass-of-lifetime-check-of-underlying-Unity-engine-object)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "Unity.NoNullCoalescing", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.ExplicitTagComparison", - "shortDescription": { - "text": "Use 'CompareTag' instead of explicit string comparison" - }, - "fullDescription": { - "text": "Explicit string comparison with 'GameObject.tag' or 'Component.tag' is inefficient. Use the 'CompareTag' method instead. Learn more...", - "markdown": "Explicit string comparison with 'GameObject.tag' or 'Component.tag' is inefficient. Use the 'CompareTag' method instead. [Learn more...](https://github.com/JetBrains/resharper-unity/wiki/Use-CompareTag-instead-of-explicit-string-comparison)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.ExplicitTagComparison", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppLongFloat", - "shortDescription": { - "text": "'long' floats are not allowed by the C++ standard" - }, - "fullDescription": { - "text": "Declaration specifier 'long' cannot be combined with 'float'", - "markdown": "Declaration specifier 'long' cannot be combined with 'float'" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppLongFloat", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppPossiblyUninitializedMember", - "shortDescription": { - "text": "Possibly uninitialized class member" - }, - "fullDescription": { - "text": "Class constructor does not initialize a field explicitly or implicitly", - "markdown": "Class constructor does not initialize a field explicitly or implicitly" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppPossiblyUninitializedMember", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityStringCompare", - "shortDescription": { - "text": "readability-string-compare clang-tidy check" - }, - "fullDescription": { - "text": "readability-string-compare clang-tidy check · Learn more", - "markdown": "readability-string-compare clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/string-compare.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityStringCompare", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticImplicitConversionFloatingPointToBool", - "shortDescription": { - "text": "implicit-conversion-floating-point-to-bool clang diagnostic" - }, - "fullDescription": { - "text": "-Wimplicit-conversion-floating-point-to-bool clang diagnostic · Learn more", - "markdown": "-Wimplicit-conversion-floating-point-to-bool clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wimplicit-conversion-floating-point-to-bool)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticImplicitConversionFloatingPointToBool", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EnforceIfStatementBraces", - "shortDescription": { - "text": "Use preferred braces style (enforce braces in 'if' statement)" - }, - "fullDescription": { - "text": "Use braces to separate 'if' statement body Learn more...", - "markdown": "Use braces to separate 'if' statement body [Learn more...](https://www.jetbrains.com/help/rider/EnforceIfStatementBraces.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "EnforceIfStatementBraces", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Syntax Style", - "index": 21, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithSimpleAssignment.True", - "shortDescription": { - "text": "Replace with simple assignment" - }, - "fullDescription": { - "text": "$bool1$ |= true", - "markdown": "$bool1$ \\|= true" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithSimpleAssignment.True", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyAlteraUnrollLoops", - "shortDescription": { - "text": "altera-unroll-loops clang-tidy check" - }, - "fullDescription": { - "text": "altera-unroll-loops clang-tidy check · Learn more", - "markdown": "altera-unroll-loops clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/altera/unroll-loops.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyAlteraUnrollLoops", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDateTime", - "shortDescription": { - "text": "date-time clang diagnostic" - }, - "fullDescription": { - "text": "-Wdate-time clang diagnostic · Learn more", - "markdown": "-Wdate-time clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdate-time)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDateTime", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0290", - "shortDescription": { - "text": "RoslynAnalyzers Use primary constructor" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0290", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticFriendEnum", - "shortDescription": { - "text": "friend-enum clang diagnostic" - }, - "fullDescription": { - "text": "-Wfriend-enum clang diagnostic · Learn more", - "markdown": "-Wfriend-enum clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wfriend-enum)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticFriendEnum", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDeprecatedEnumCompare", - "shortDescription": { - "text": "deprecated-enum-compare clang diagnostic" - }, - "fullDescription": { - "text": "-Wdeprecated-enum-compare clang diagnostic · Learn more", - "markdown": "-Wdeprecated-enum-compare clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-enum-compare)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedEnumCompare", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyPerformanceAvoidEndl", - "shortDescription": { - "text": "performance-avoid-endl clang-tidy check" - }, - "fullDescription": { - "text": "performance-avoid-endl clang-tidy check · Learn more", - "markdown": "performance-avoid-endl clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance/avoid-endl.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyPerformanceAvoidEndl", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticReturnStackAddress", - "shortDescription": { - "text": "return-stack-address clang diagnostic" - }, - "fullDescription": { - "text": "-Wreturn-stack-address clang diagnostic · Learn more", - "markdown": "-Wreturn-stack-address clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wreturn-stack-address)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticReturnStackAddress", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.UnexpectedTextToken", - "shortDescription": { - "text": "Unexpected text token error" - }, - "fullDescription": { - "text": "Unexpected text token error", - "markdown": "Unexpected text token error" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "Xaml.UnexpectedTextToken", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Potential Code Quality Issues", - "index": 45, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppBadListLineBreaks", - "shortDescription": { - "text": "Incorrect line breaks (around comma in lists)" - }, - "fullDescription": { - "text": "Around comma in lists", - "markdown": "Around comma in lists" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppBadListLineBreaks", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Formatting", - "index": 28, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MissingBlankLines", - "shortDescription": { - "text": "Incorrect blank lines (blank lines are missing elsewhere)" - }, - "fullDescription": { - "text": "Blank lines are missing elsewhere Learn more...", - "markdown": "Blank lines are missing elsewhere [Learn more...](https://www.jetbrains.com/help/rider/MissingBlankLines.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "MissingBlankLines", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Formatting", - "index": 24, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ArrangeMissingParentheses", - "shortDescription": { - "text": "Add parentheses to avoid non-obvious precedence" - }, - "fullDescription": { - "text": "Parentheses can be safely added to expressions to clarify precedence Learn more...", - "markdown": "Parentheses can be safely added to expressions to clarify precedence [Learn more...](https://www.jetbrains.com/help/rider/ArrangeMissingParentheses.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ArrangeMissingParentheses", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Syntax Style", - "index": 21, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerSecurityInsecureAPIVfork", - "shortDescription": { - "text": "security.insecureAPI.vfork clang static analyzer check" - }, - "fullDescription": { - "text": "security.insecureAPI.vfork clang static analyzer check · Learn more", - "markdown": "security.insecureAPI.vfork clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerSecurityInsecureAPIVfork", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppTabsOutsideIndent", - "shortDescription": { - "text": "Incorrect spacing (tabs are prohibited except for indentation)" - }, - "fullDescription": { - "text": "Tabs are prohibited except for indentation", - "markdown": "Tabs are prohibited except for indentation" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppTabsOutsideIndent", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Formatting", - "index": 28, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerOsxCoreFoundationCFRetainRelease", - "shortDescription": { - "text": "osx.coreFoundation.CFRetainRelease clang static analyzer check" - }, - "fullDescription": { - "text": "osx.coreFoundation.CFRetainRelease clang static analyzer check · Learn more", - "markdown": "osx.coreFoundation.CFRetainRelease clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerOsxCoreFoundationCFRetainRelease", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnusedMemberInSuper.Global", - "shortDescription": { - "text": "Type member is never accessed via base type (non-private accessibility)" - }, - "fullDescription": { - "text": "Type member is never used with base type or interface, it is always accessed via more specific type Learn more...", - "markdown": "Type member is never used with base type or interface, it is always accessed via more specific type [Learn more...](https://www.jetbrains.com/help/rider/UnusedMemberInSuper.Global.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "UnusedMemberInSuper.Global", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE2004", - "shortDescription": { - "text": "RoslynAnalyzers Blank line not allowed after constructor initializer colon" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE2004", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyModernizeDeprecatedIosBaseAliases", - "shortDescription": { - "text": "modernize-deprecated-ios-base-aliases clang-tidy check" - }, - "fullDescription": { - "text": "modernize-deprecated-ios-base-aliases clang-tidy check · Learn more", - "markdown": "modernize-deprecated-ios-base-aliases clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/deprecated-ios-base-aliases.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyModernizeDeprecatedIosBaseAliases", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE2005", - "shortDescription": { - "text": "RoslynAnalyzers Blank line not allowed after conditional expression token" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE2005", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE2006", - "shortDescription": { - "text": "RoslynAnalyzers Blank line not allowed after arrow expression clause token" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE2006", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticInstantiationAfterSpecialization", - "shortDescription": { - "text": "instantiation-after-specialization clang diagnostic" - }, - "fullDescription": { - "text": "-Winstantiation-after-specialization clang diagnostic · Learn more", - "markdown": "-Winstantiation-after-specialization clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winstantiation-after-specialization)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticInstantiationAfterSpecialization", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE2000", - "shortDescription": { - "text": "RoslynAnalyzers Avoid multiple blank lines" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE2000", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE2001", - "shortDescription": { - "text": "RoslynAnalyzers Embedded statements must be on their own line" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE2001", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2100", - "shortDescription": { - "text": "RoslynAnalyzers Review SQL queries for security vulnerabilities" - }, - "fullDescription": { - "text": "SQL queries that directly use user input can be vulnerable to SQL injection attacks. Review this SQL query for potential vulnerabilities, and consider using a parameterized SQL query.", - "markdown": "SQL queries that directly use user input can be vulnerable to SQL injection attacks. Review this SQL query for potential vulnerabilities, and consider using a parameterized SQL query." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2100", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2101", - "shortDescription": { - "text": "RoslynAnalyzers Specify marshaling for P/Invoke string arguments" - }, - "fullDescription": { - "text": "A platform invoke member allows partially trusted callers, has a string parameter, and does not explicitly marshal the string. This can cause a potential security vulnerability.", - "markdown": "A platform invoke member allows partially trusted callers, has a string parameter, and does not explicitly marshal the string. This can cause a potential security vulnerability." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA2101", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE2002", - "shortDescription": { - "text": "RoslynAnalyzers Consecutive braces must not have blank line between them" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE2002", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithSingleCallToLastOrDefault", - "shortDescription": { - "text": "Replace with single call to LastOrDefault(..)" - }, - "fullDescription": { - "text": "$seq$.Where($x$ => $expr$).LastOrDefault()", - "markdown": "$seq$.Where($x$ =\\> $expr$).LastOrDefault()" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithSingleCallToLastOrDefault", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE2003", - "shortDescription": { - "text": "RoslynAnalyzers Blank line required between block and subsequent statement" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE2003", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SeparateControlTransferStatement", - "shortDescription": { - "text": "Separate control transfer statement with blank line" - }, - "fullDescription": { - "text": "Introduce vertical spacing to highlight control transfer statement Learn more...", - "markdown": "Introduce vertical spacing to highlight control transfer statement [Learn more...](https://www.jetbrains.com/help/rider/SeparateControlTransferStatement.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "SeparateControlTransferStatement", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Syntax Style", - "index": 21, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticC99Extensions", - "shortDescription": { - "text": "c99-extensions clang diagnostic" - }, - "fullDescription": { - "text": "-Wc99-extensions clang diagnostic · Learn more", - "markdown": "-Wc99-extensions clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc99-extensions)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticC99Extensions", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCppcoreguidelinesInitVariables", - "shortDescription": { - "text": "cppcoreguidelines-init-variables clang-tidy check" - }, - "fullDescription": { - "text": "cppcoreguidelines-init-variables clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-init-variables clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/init-variables.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCppcoreguidelinesInitVariables", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RiderSecurityErrorsInspection", - "shortDescription": { - "text": "Rider project security errors" - }, - "fullDescription": { - "text": "Reports potential security errors detected by Rider.", - "markdown": "Reports potential security errors detected by Rider." - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "RiderSecurityErrorsInspection", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Rider/General", - "index": 156, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPassFailed", - "shortDescription": { - "text": "pass-failed clang diagnostic" - }, - "fullDescription": { - "text": "-Wpass-failed clang diagnostic · Learn more", - "markdown": "-Wpass-failed clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpass-failed)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPassFailed", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SpinLockInReadonlyField", - "shortDescription": { - "text": "Do not store SpinLock in readonly field" - }, - "fullDescription": { - "text": "SpinLock should not be stored in readonly field because it is a struct and is copied when an instance method is called on it Learn more...", - "markdown": "SpinLock should not be stored in readonly field because it is a struct and is copied when an instance method is called on it [Learn more...](https://www.jetbrains.com/help/rider/SpinLockInReadonlyField.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "SpinLockInReadonlyField", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticEnumEnumConversion", - "shortDescription": { - "text": "enum-enum-conversion clang diagnostic" - }, - "fullDescription": { - "text": "-Wenum-enum-conversion clang diagnostic · Learn more", - "markdown": "-Wenum-enum-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wenum-enum-conversion)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticEnumEnumConversion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MergeSequentialChecks", - "shortDescription": { - "text": "Merge sequential checks into single conditional access check" - }, - "fullDescription": { - "text": "Merge sequential null/type checks in && or || expressions into single conditional access check Learn more...", - "markdown": "Merge sequential null/type checks in \\&\\& or \\|\\| expressions into single conditional access check [Learn more...](https://www.jetbrains.com/help/rider/MergeSequentialChecks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "MergeSequentialChecks", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticSuggestOverride", - "shortDescription": { - "text": "suggest-override clang diagnostic" - }, - "fullDescription": { - "text": "-Wsuggest-override clang diagnostic · Learn more", - "markdown": "-Wsuggest-override clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wsuggest-override)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticSuggestOverride", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppDefaultInitializationWithNoUserConstructor", - "shortDescription": { - "text": "Default initialization of a const-qualified object of a type without a user-provided default constructor" - }, - "fullDescription": { - "text": "Default initialization of a const-qualified object of a type without a user-provided default constructor", - "markdown": "Default initialization of a const-qualified object of a type without a user-provided default constructor" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppDefaultInitializationWithNoUserConstructor", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Compiler Warnings", - "index": 75, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConstevalIfIsAlwaysConstant", - "shortDescription": { - "text": "consteval if is always constant" - }, - "fullDescription": { - "text": "consteval if is always constant", - "markdown": "consteval if is always constant" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ConstevalIfIsAlwaysConstant", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Common Practices and Code Improvements", - "index": 16, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "FSharpBuiltinFunctionReimplementation", - "shortDescription": { - "text": "Lambda expression can be replaced with built-in function" - }, - "fullDescription": { - "text": "Lambda expression can be replaced with built-in function.", - "markdown": "Lambda expression can be replaced with built-in function." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "FSharpBuiltinFunctionReimplementation", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "F#/Redundancies in Code", - "index": 73, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppUseTypeTraitAlias", - "shortDescription": { - "text": "Type trait can be simplified using a template alias or a variable template" - }, - "fullDescription": { - "text": "A type trait can be simplified using a template alias or a variable template", - "markdown": "A type trait can be simplified using a template alias or a variable template" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppUseTypeTraitAlias", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Common Practices and Code Improvements", - "index": 16, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MemberHidesInterfaceMemberWithDefaultImplementation", - "shortDescription": { - "text": "Non-public member in implementation class hides default implementation in interface" - }, - "fullDescription": { - "text": "Member with the same signature and default implementation exists in an implemented interface", - "markdown": "Member with the same signature and default implementation exists in an implemented interface" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "MemberHidesInterfaceMemberWithDefaultImplementation", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCoroutineMissingUnhandledException", - "shortDescription": { - "text": "coroutine-missing-unhandled-exception clang diagnostic" - }, - "fullDescription": { - "text": "-Wcoroutine-missing-unhandled-exception clang diagnostic · Learn more", - "markdown": "-Wcoroutine-missing-unhandled-exception clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcoroutine-missing-unhandled-exception)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCoroutineMissingUnhandledException", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticSwitchEnum", - "shortDescription": { - "text": "switch-enum clang diagnostic" - }, - "fullDescription": { - "text": "-Wswitch-enum clang diagnostic · Learn more", - "markdown": "-Wswitch-enum clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wswitch-enum)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticSwitchEnum", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.RedundantEventFunction", - "shortDescription": { - "text": "Redundant Unity event function" - }, - "fullDescription": { - "text": "Empty Unity event functions are still called from native code, which affects performance. Learn more...", - "markdown": "Empty Unity event functions are still called from native code, which affects performance. [Learn more...](https://github.com/JetBrains/resharper-unity/wiki/Redundant-Unity-event-function)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.RedundantEventFunction", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticNullDereference", - "shortDescription": { - "text": "null-dereference clang diagnostic" - }, - "fullDescription": { - "text": "-Wnull-dereference clang diagnostic · Learn more", - "markdown": "-Wnull-dereference clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnull-dereference)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticNullDereference", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticJumpSehFinally", - "shortDescription": { - "text": "jump-seh-finally clang diagnostic" - }, - "fullDescription": { - "text": "-Wjump-seh-finally clang diagnostic · Learn more", - "markdown": "-Wjump-seh-finally clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wjump-seh-finally)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticJumpSehFinally", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0121", - "shortDescription": { - "text": "RoslynAnalyzers Simplify LINQ expression" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0121", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0120", - "shortDescription": { - "text": "RoslynAnalyzers Simplify LINQ expression" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0120", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticSourceUsesOpenmp", - "shortDescription": { - "text": "source-uses-openmp clang diagnostic" - }, - "fullDescription": { - "text": "-Wsource-uses-openmp clang diagnostic · Learn more", - "markdown": "-Wsource-uses-openmp clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wsource-uses-openmp)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticSourceUsesOpenmp", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnknownWarningOption", - "shortDescription": { - "text": "unknown-warning-option clang diagnostic" - }, - "fullDescription": { - "text": "-Wunknown-warning-option clang diagnostic · Learn more", - "markdown": "-Wunknown-warning-option clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunknown-warning-option)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnknownWarningOption", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppPointerToIntegralConversion", - "shortDescription": { - "text": "Implicit pointer to integer conversion" - }, - "fullDescription": { - "text": "Implicit pointer to integer conversion", - "markdown": "Implicit pointer to integer conversion" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppPointerToIntegralConversion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VariableCanBeNotNullable", - "shortDescription": { - "text": "Variable can be declared as non-nullable" - }, - "fullDescription": { - "text": "Variable is declared as nullable, but it never contains a null value", - "markdown": "Variable is declared as nullable, but it never contains a null value" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "VariableCanBeNotNullable", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ResxNotResolved", - "shortDescription": { - "text": "Cannot resolve symbol" - }, - "fullDescription": { - "text": "Cannot resolve symbol. Learn more...", - "markdown": "Cannot resolve symbol. [Learn more...](https://www.jetbrains.com/help/rider/ResxNotResolved.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "ResxNotResolved", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "ResX/Potential Code Quality Issues", - "index": 68, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ShiftExpressionRealShiftCountIsZero", - "shortDescription": { - "text": "Actual shift count equals zero" - }, - "fullDescription": { - "text": "Actual shift count equals zero. Left operand will remain unchanged.", - "markdown": "Actual shift count equals zero. Left operand will remain unchanged." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "ShiftExpressionRealShiftCountIsZero", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticBitwiseConditionalParentheses", - "shortDescription": { - "text": "bitwise-conditional-parentheses clang diagnostic" - }, - "fullDescription": { - "text": "-Wbitwise-conditional-parentheses clang diagnostic · Learn more", - "markdown": "-Wbitwise-conditional-parentheses clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wbitwise-conditional-parentheses)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticBitwiseConditionalParentheses", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyAndroidCloexecPipe", - "shortDescription": { - "text": "android-cloexec-pipe clang-tidy check" - }, - "fullDescription": { - "text": "android-cloexec-pipe clang-tidy check · Learn more", - "markdown": "android-cloexec-pipe clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/android/cloexec-pipe.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyAndroidCloexecPipe", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantEmptyObjectCreationArgumentList", - "shortDescription": { - "text": "Redundant empty argument list on object creation expression" - }, - "fullDescription": { - "text": "When object creation uses object or collection initializer, empty argument list is redundant Learn more...", - "markdown": "When object creation uses object or collection initializer, empty argument list is redundant [Learn more...](https://www.jetbrains.com/help/rider/RedundantEmptyObjectCreationArgumentList.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RedundantEmptyObjectCreationArgumentList", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.AssignNullToNotNullAttribute", - "shortDescription": { - "text": "Possible 'null' assignment to non-nullable entity" - }, - "fullDescription": { - "text": "An expression which can have 'null' value is assigned to an entity marked with 'Value cannot be null' attribute. In particular, this can happen when passing such value to a method whose parameter is marked with 'Value cannot be null' attribute.", - "markdown": "An expression which can have 'null' value is assigned to an entity marked with 'Value cannot be null' attribute. In particular, this can happen when passing such value to a method whose parameter is marked with 'Value cannot be null' attribute." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Xaml.AssignNullToNotNullAttribute", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Constraints Violations", - "index": 157, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticSizeofPointerDiv", - "shortDescription": { - "text": "sizeof-pointer-div clang diagnostic" - }, - "fullDescription": { - "text": "-Wsizeof-pointer-div clang diagnostic · Learn more", - "markdown": "-Wsizeof-pointer-div clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wsizeof-pointer-div)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticSizeofPointerDiv", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyMpiBufferDeref", - "shortDescription": { - "text": "mpi-buffer-deref clang-tidy check" - }, - "fullDescription": { - "text": "mpi-buffer-deref clang-tidy check · Learn more", - "markdown": "mpi-buffer-deref clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/mpi/buffer-deref.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyMpiBufferDeref", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantTernaryExpression", - "shortDescription": { - "text": "Redundant conditional ternary expression usage" - }, - "fullDescription": { - "text": "Redundant conditional ternary expression usage: \r\n condition ? true : false", - "markdown": "Redundant conditional ternary expression usage:\n\n```\n\r\n condition ? true : false\r\n```" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantTernaryExpression", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticFormatNonliteral", - "shortDescription": { - "text": "format-nonliteral clang diagnostic" - }, - "fullDescription": { - "text": "-Wformat-nonliteral clang diagnostic · Learn more", - "markdown": "-Wformat-nonliteral clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wformat-nonliteral)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticFormatNonliteral", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0130", - "shortDescription": { - "text": "RoslynAnalyzers Namespace does not match folder structure" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0130", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1197", - "shortDescription": { - "text": "RoslynAnalyzers Optimize StringBuilder.Append/AppendLine call" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1197", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1198", - "shortDescription": { - "text": "RoslynAnalyzers Avoid unnecessary boxing of value type" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RCS1198", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1199", - "shortDescription": { - "text": "RoslynAnalyzers Unnecessary null check" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1199", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyAndroidCloexecDup", - "shortDescription": { - "text": "android-cloexec-dup clang-tidy check" - }, - "fullDescription": { - "text": "android-cloexec-dup clang-tidy check · Learn more", - "markdown": "android-cloexec-dup clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/android/cloexec-dup.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyAndroidCloexecDup", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConditionalAccessQualifierIsNonNullableAccordingToAPIContract", - "shortDescription": { - "text": "Conditional access qualifier expression is not null according to nullable reference types' annotations" - }, - "fullDescription": { - "text": "Conditional access qualifier expression is not null according to nullable reference types' annotations", - "markdown": "Conditional access qualifier expression is not null according to nullable reference types' annotations" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "ConditionalAccessQualifierIsNonNullableAccordingToAPIContract", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UsingStatementResourceInitializationExpression", - "shortDescription": { - "text": "Do not use object initializer for 'using' variable (object initializer expression may throw exception while initializing 'using' variable)" - }, - "fullDescription": { - "text": "Calculate object properties before the 'using' statement to ensure that no exception is thrown during initialization, which leaves the object not disposed Learn more...", - "markdown": "Calculate object properties before the 'using' statement to ensure that no exception is thrown during initialization, which leaves the object not disposed [Learn more...](https://www.jetbrains.com/help/rider/UsingStatementResourceInitializationExpression.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UsingStatementResourceInitializationExpression", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityQualifiedAuto", - "shortDescription": { - "text": "readability-qualified-auto clang-tidy check" - }, - "fullDescription": { - "text": "readability-qualified-auto clang-tidy check · Learn more", - "markdown": "readability-qualified-auto clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/qualified-auto.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityQualifiedAuto", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticSelector", - "shortDescription": { - "text": "selector clang diagnostic" - }, - "fullDescription": { - "text": "-Wselector clang diagnostic · Learn more", - "markdown": "-Wselector clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wselector)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticSelector", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppSmartPointerVsMakeFunction", - "shortDescription": { - "text": "Constructor of smart pointer is used instead of its make function" - }, - "fullDescription": { - "text": "Constructor of a smart pointer (boost/std::shared_ptr/unique_ptr) is used instead of the corresponding make_shared/make_unique. Make functions are exception-safe and more efficient.", - "markdown": "Constructor of a smart pointer (boost/std::shared_ptr/unique_ptr) is used instead of the corresponding make_shared/make_unique. Make functions are exception-safe and more efficient." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppSmartPointerVsMakeFunction", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Common Practices and Code Improvements", - "index": 16, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticStringPlusChar", - "shortDescription": { - "text": "string-plus-char clang diagnostic" - }, - "fullDescription": { - "text": "-Wstring-plus-char clang diagnostic · Learn more", - "markdown": "-Wstring-plus-char clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wstring-plus-char)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticStringPlusChar", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppStaticSpecifierOnAnonymousNamespaceMember", - "shortDescription": { - "text": "Redundant 'static' specifier on an anonymous namespace member" - }, - "fullDescription": { - "text": "Redundant 'static' specifier on an anonymous namespace member", - "markdown": "Redundant 'static' specifier on an anonymous namespace member" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppStaticSpecifierOnAnonymousNamespaceMember", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Redundancies in Code", - "index": 34, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticShiftCountOverflow", - "shortDescription": { - "text": "shift-count-overflow clang diagnostic" - }, - "fullDescription": { - "text": "-Wshift-count-overflow clang diagnostic · Learn more", - "markdown": "-Wshift-count-overflow clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wshift-count-overflow)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticShiftCountOverflow", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCppCompat", - "shortDescription": { - "text": "c++-compat clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++-compat clang diagnostic · Learn more", - "markdown": "-Wc++-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc--compat)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCppCompat", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticInvalidTokenPaste", - "shortDescription": { - "text": "invalid-token-paste clang diagnostic" - }, - "fullDescription": { - "text": "-Winvalid-token-paste clang diagnostic · Learn more", - "markdown": "-Winvalid-token-paste clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winvalid-token-paste)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticInvalidTokenPaste", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NotDisposedResourceIsReturnedByProperty", - "shortDescription": { - "text": "Return value of a property must be disposed by the callee" - }, - "fullDescription": { - "text": "Return value of a property must be disposed by the callee Learn more...", - "markdown": "Return value of a property must be disposed by the callee [Learn more...](https://www.jetbrains.com/help/rider/NotDisposedResourceIsReturnedByProperty.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NotDisposedResourceIsReturnedByProperty", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp11ExtraSemi", - "shortDescription": { - "text": "c++11-extra-semi clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++11-extra-semi clang diagnostic · Learn more", - "markdown": "-Wc++11-extra-semi clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-11-extra-semi)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp11ExtraSemi", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticInvalidUnevaluatedString", - "shortDescription": { - "text": "invalid-unevaluated-string clang diagnostic" - }, - "fullDescription": { - "text": "-Winvalid-unevaluated-string clang diagnostic · Learn more", - "markdown": "-Winvalid-unevaluated-string clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winvalid-unevaluated-string)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticInvalidUnevaluatedString", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1006FadeOut", - "shortDescription": { - "text": "RoslynAnalyzers Merge 'else' with nested 'if'" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1006FadeOut", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0150", - "shortDescription": { - "text": "RoslynAnalyzers Prefer 'null' check over type check" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0150", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneOptionalValueConversion", - "shortDescription": { - "text": "bugprone-optional-value-conversion clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-optional-value-conversion clang-tidy check · Learn more", - "markdown": "bugprone-optional-value-conversion clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/optional-value-conversion.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneOptionalValueConversion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticNonportableVectorInitialization", - "shortDescription": { - "text": "nonportable-vector-initialization clang diagnostic" - }, - "fullDescription": { - "text": "-Wnonportable-vector-initialization clang diagnostic · Learn more", - "markdown": "-Wnonportable-vector-initialization clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnonportable-vector-initialization)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticNonportableVectorInitialization", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.RedundantBindingModeAttribute", - "shortDescription": { - "text": "Binding mode is equal to default" - }, - "fullDescription": { - "text": "Binding mode is equal to default", - "markdown": "Binding mode is equal to default" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Xaml.RedundantBindingModeAttribute", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Redundancies in Code", - "index": 77, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBWarnings__WME006", - "shortDescription": { - "text": "Namespace should be default namespace of this project" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "VBWarnings__WME006", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Compiler Warnings", - "index": 110, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppBadDeclarationBracesLineBreaks", - "shortDescription": { - "text": "Incorrect line breaks (around declaration braces)" - }, - "fullDescription": { - "text": "Around declaration braces", - "markdown": "Around declaration braces" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppBadDeclarationBracesLineBreaks", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Formatting", - "index": 28, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityNonConstParameter", - "shortDescription": { - "text": "readability-non-const-parameter clang-tidy check" - }, - "fullDescription": { - "text": "readability-non-const-parameter clang-tidy check · Learn more", - "markdown": "readability-non-const-parameter clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/non-const-parameter.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityNonConstParameter", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1171", - "shortDescription": { - "text": "RoslynAnalyzers Simplify lazy initialization" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1171", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1172", - "shortDescription": { - "text": "RoslynAnalyzers Use 'is' operator instead of 'as' operator" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RCS1172", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1173", - "shortDescription": { - "text": "RoslynAnalyzers Use coalesce expression instead of 'if'" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1173", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1174", - "shortDescription": { - "text": "RoslynAnalyzers Remove redundant async/await" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1174", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1047FadeOut", - "shortDescription": { - "text": "RoslynAnalyzers Non-asynchronous method name should not end with 'Async'" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1047FadeOut", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneDanglingHandle", - "shortDescription": { - "text": "bugprone-dangling-handle clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-dangling-handle clang-tidy check · Learn more", - "markdown": "bugprone-dangling-handle clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/dangling-handle.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneDanglingHandle", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1170", - "shortDescription": { - "text": "RoslynAnalyzers Use read-only auto-implemented property" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1170", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "StdIsConstantEvaluatedWillAlwaysEvaluateToConstant", - "shortDescription": { - "text": "'std::is_constant_evaluated' will always evaluate to constant" - }, - "fullDescription": { - "text": "'std::is_constant_evaluated' will always evaluate to constant", - "markdown": "'std::is_constant_evaluated' will always evaluate to constant" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "StdIsConstantEvaluatedWillAlwaysEvaluateToConstant", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Common Practices and Code Improvements", - "index": 16, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMicrosoftDrectveSection", - "shortDescription": { - "text": "microsoft-drectve-section clang diagnostic" - }, - "fullDescription": { - "text": "-Wmicrosoft-drectve-section clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-drectve-section clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-drectve-section)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftDrectveSection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1085FadeOut", - "shortDescription": { - "text": "RoslynAnalyzers Use auto-implemented property" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1085FadeOut", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDocumentationHtml", - "shortDescription": { - "text": "documentation-html clang diagnostic" - }, - "fullDescription": { - "text": "-Wdocumentation-html clang diagnostic · Learn more", - "markdown": "-Wdocumentation-html clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdocumentation-html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDocumentationHtml", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticSuspiciousBzero", - "shortDescription": { - "text": "suspicious-bzero clang diagnostic" - }, - "fullDescription": { - "text": "-Wsuspicious-bzero clang diagnostic · Learn more", - "markdown": "-Wsuspicious-bzero clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wsuspicious-bzero)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticSuspiciousBzero", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerSecurityFloatLoopCounter", - "shortDescription": { - "text": "security.FloatLoopCounter clang static analyzer check" - }, - "fullDescription": { - "text": "security.FloatLoopCounter clang static analyzer check · Learn more", - "markdown": "security.FloatLoopCounter clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerSecurityFloatLoopCounter", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1168", - "shortDescription": { - "text": "RoslynAnalyzers Parameter name differs from base name" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1168", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithSingleAssignment.True", - "shortDescription": { - "text": "Replace with single assignment" - }, - "fullDescription": { - "text": "$T$ $x$ = true; if($bool1$) $x$ = false; Learn more...", - "markdown": "$T$ $x$ = true; if($bool1$) $x$ = false; [Learn more...](https://www.jetbrains.com/help/rider/ReplaceWithSingleAssignment.True.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithSingleAssignment.True", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1169", - "shortDescription": { - "text": "RoslynAnalyzers Make field read-only" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1169", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCppcoreguidelinesAvoidCapturingLambdaCoroutines", - "shortDescription": { - "text": "cppcoreguidelines-avoid-capturing-lambda-coroutines clang-tidy check" - }, - "fullDescription": { - "text": "cppcoreguidelines-avoid-capturing-lambda-coroutines clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-avoid-capturing-lambda-coroutines clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/avoid-capturing-lambda-coroutines.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyCppcoreguidelinesAvoidCapturingLambdaCoroutines", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1164", - "shortDescription": { - "text": "RoslynAnalyzers Unused type parameter" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1164", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1165", - "shortDescription": { - "text": "RoslynAnalyzers Unconstrained type parameter checked for null" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1165", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1166", - "shortDescription": { - "text": "RoslynAnalyzers Value type object is never equal to null" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1166", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "OptionalParameterHierarchyMismatch", - "shortDescription": { - "text": "Mismatch of optional parameter value in overridden method" - }, - "fullDescription": { - "text": "Mismatch of optional parameter value in overridden method", - "markdown": "Mismatch of optional parameter value in overridden method" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "OptionalParameterHierarchyMismatch", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1160", - "shortDescription": { - "text": "RoslynAnalyzers Abstract type should not have public constructors" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1160", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticFormatSignedness", - "shortDescription": { - "text": "format-signedness clang diagnostic" - }, - "fullDescription": { - "text": "-Wformat-signedness clang diagnostic · Learn more", - "markdown": "-Wformat-signedness clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wformat-signedness)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticFormatSignedness", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UsingStatementResourceInitialization", - "shortDescription": { - "text": "Do not use object initializer for 'using' variable" - }, - "fullDescription": { - "text": "Initialize object properties inside the 'using' statement to ensure that the object is disposed if an exception is thrown during initialization Learn more...", - "markdown": "Initialize object properties inside the 'using' statement to ensure that the object is disposed if an exception is thrown during initialization [Learn more...](https://www.jetbrains.com/help/rider/UsingStatementResourceInitialization.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "UsingStatementResourceInitialization", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1161", - "shortDescription": { - "text": "RoslynAnalyzers Enum should declare explicit values" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1161", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1162", - "shortDescription": { - "text": "RoslynAnalyzers Avoid chain of assignments" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1162", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppRedundantBooleanExpressionArgument", - "shortDescription": { - "text": "Redundant argument in conditional expression" - }, - "fullDescription": { - "text": "Redundant argument in conditional expression", - "markdown": "Redundant argument in conditional expression" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppRedundantBooleanExpressionArgument", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Redundancies in Code", - "index": 34, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityEnumInitialValue", - "shortDescription": { - "text": "readability-enum-initial-value clang-tidy check" - }, - "fullDescription": { - "text": "readability-enum-initial-value clang-tidy check · Learn more", - "markdown": "readability-enum-initial-value clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/enum-initial-value.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityEnumInitialValue", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticVla", - "shortDescription": { - "text": "vla clang diagnostic" - }, - "fullDescription": { - "text": "-Wvla clang diagnostic · Learn more", - "markdown": "-Wvla clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wvla)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticVla", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1163", - "shortDescription": { - "text": "RoslynAnalyzers Unused parameter" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1163", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticBuiltinRequiresHeader", - "shortDescription": { - "text": "builtin-requires-header clang diagnostic" - }, - "fullDescription": { - "text": "-Wbuiltin-requires-header clang diagnostic · Learn more", - "markdown": "-Wbuiltin-requires-header clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wbuiltin-requires-header)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticBuiltinRequiresHeader", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "StackAllocInsideLoop", - "shortDescription": { - "text": "Using stackalloc inside loop" - }, - "fullDescription": { - "text": "Memory stack allocation inside a loop can cause a temporary memory leak because the allocated memory is freed only when the method returns", - "markdown": "Memory stack allocation inside a loop can cause a temporary memory leak because the allocated memory is freed only when the method returns" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "StackAllocInsideLoop", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerCoreCallAndMessage", - "shortDescription": { - "text": "core.CallAndMessage clang static analyzer check" - }, - "fullDescription": { - "text": "core.CallAndMessage clang static analyzer check · Learn more", - "markdown": "core.CallAndMessage clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerCoreCallAndMessage", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CDeclarationWithImplicitIntType", - "shortDescription": { - "text": "Type-specifier missing, defaults to int" - }, - "fullDescription": { - "text": "No type-specifier found in a declaration. Defaults to 'int'.", - "markdown": "No type-specifier found in a declaration. Defaults to 'int'." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CDeclarationWithImplicitIntType", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit.RangeStepSignMismatch", - "shortDescription": { - "text": "NUnit. Mismatch of the range step sign." - }, - "fullDescription": { - "text": "NUnit. The sign of the 'step' parameter of [Range] does not match the range values. Learn more...", - "markdown": "NUnit. The sign of the 'step' parameter of \\[Range\\] does not match the range values. [Learn more...](https://www.jetbrains.com/help/rider/NUnit.RangeStepSignMismatch.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NUnit.RangeStepSignMismatch", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/NUnit", - "index": 26, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppRedundantNamespaceDefinition", - "shortDescription": { - "text": "Namespace definition containing single class specialization" - }, - "fullDescription": { - "text": "Don't introduce a namespace definition only for class specialization, specialization can be defined using qualified class name", - "markdown": "Don't introduce a namespace definition only for class specialization, specialization can be defined using qualified class name" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppRedundantNamespaceDefinition", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Common Practices and Code Improvements", - "index": 16, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppUEMissingStructMember", - "shortDescription": { - "text": "Struct is missing a member required by TStructOpsTypeTraits" - }, - "fullDescription": { - "text": "Struct is missing a member required by TStructOpsTypeTraits", - "markdown": "Struct is missing a member required by TStructOpsTypeTraits" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "CppUEMissingStructMember", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Unreal Engine", - "index": 6, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPreCpp23Compat", - "shortDescription": { - "text": "pre-c++23-compat clang diagnostic" - }, - "fullDescription": { - "text": "-Wpre-c++23-compat clang diagnostic · Learn more", - "markdown": "-Wpre-c++23-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpre-c-23-compat)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPreCpp23Compat", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1157", - "shortDescription": { - "text": "RoslynAnalyzers Composite enum value contains undefined flag" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1157", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1158", - "shortDescription": { - "text": "RoslynAnalyzers Static member in generic type should use a type parameter" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1158", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1159", - "shortDescription": { - "text": "RoslynAnalyzers Use EventHandler<T>" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1159", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppStringLiteralToCharPointerConversion", - "shortDescription": { - "text": "String literal to char pointer conversion" - }, - "fullDescription": { - "text": "String literal to char pointer conversion", - "markdown": "String literal to char pointer conversion" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppStringLiteralToCharPointerConversion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1154", - "shortDescription": { - "text": "RoslynAnalyzers Sort enum members" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1154", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneSuspiciousStringviewDataUsage", - "shortDescription": { - "text": "bugprone-suspicious-stringview-data-usage clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-suspicious-stringview-data-usage clang-tidy check · Learn more", - "markdown": "bugprone-suspicious-stringview-data-usage clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/suspicious-stringview-data-usage.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneSuspiciousStringviewDataUsage", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1155", - "shortDescription": { - "text": "RoslynAnalyzers Use StringComparison when comparing strings" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RCS1155", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1156", - "shortDescription": { - "text": "RoslynAnalyzers Use string.Length instead of comparison with empty string" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1156", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticImplicitFallthroughPerFunction", - "shortDescription": { - "text": "implicit-fallthrough-per-function clang diagnostic" - }, - "fullDescription": { - "text": "-Wimplicit-fallthrough-per-function clang diagnostic · Learn more", - "markdown": "-Wimplicit-fallthrough-per-function clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wimplicit-fallthrough-per-function)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticImplicitFallthroughPerFunction", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1193", - "shortDescription": { - "text": "RoslynAnalyzers Overriding member should not change 'params' modifier" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RCS1193", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1194", - "shortDescription": { - "text": "RoslynAnalyzers Implement exception constructors" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RCS1194", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1195", - "shortDescription": { - "text": "RoslynAnalyzers Use ^ operator" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1195", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1196", - "shortDescription": { - "text": "RoslynAnalyzers Call extension method as instance method" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1196", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDynamicClassMemaccess", - "shortDescription": { - "text": "dynamic-class-memaccess clang diagnostic" - }, - "fullDescription": { - "text": "-Wdynamic-class-memaccess clang diagnostic · Learn more", - "markdown": "-Wdynamic-class-memaccess clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdynamic-class-memaccess)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDynamicClassMemaccess", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1190", - "shortDescription": { - "text": "RoslynAnalyzers Join string expressions" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1190", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantAccessorBody", - "shortDescription": { - "text": "Redundant accessor body" - }, - "fullDescription": { - "text": "Accessor body with simple 'field' keyword return or assignment is redundant", - "markdown": "Accessor body with simple 'field' keyword return or assignment is redundant" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RedundantAccessorBody", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1191", - "shortDescription": { - "text": "RoslynAnalyzers Declare enum value as combination of names" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1191", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCompoundTokenSplitByMacro", - "shortDescription": { - "text": "compound-token-split-by-macro clang diagnostic" - }, - "fullDescription": { - "text": "-Wcompound-token-split-by-macro clang diagnostic · Learn more", - "markdown": "-Wcompound-token-split-by-macro clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcompound-token-split-by-macro)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCompoundTokenSplitByMacro", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1192", - "shortDescription": { - "text": "RoslynAnalyzers Unnecessary usage of verbatim string literal" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "RCS1192", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppNotAllPathsReturnValue", - "shortDescription": { - "text": "Not all control paths return a value" - }, - "fullDescription": { - "text": "Not all control paths inside a function or a lambda return a value", - "markdown": "Not all control paths inside a function or a lambda return a value" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppNotAllPathsReturnValue", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticNewReturnsNull", - "shortDescription": { - "text": "new-returns-null clang diagnostic" - }, - "fullDescription": { - "text": "-Wnew-returns-null clang diagnostic · Learn more", - "markdown": "-Wnew-returns-null clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnew-returns-null)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticNewReturnsNull", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "WebConfig.UnusedRemoveOrClearTag", - "shortDescription": { - "text": "Redundant remove or clear element" - }, - "fullDescription": { - "text": "Element does not clear anything and can be safely removed", - "markdown": "Element does not clear anything and can be safely removed" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "WebConfig.UnusedRemoveOrClearTag", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Web.Config/Redundancies in Code", - "index": 98, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyPerformanceEnumSize", - "shortDescription": { - "text": "performance-enum-size clang-tidy check" - }, - "fullDescription": { - "text": "performance-enum-size clang-tidy check · Learn more", - "markdown": "performance-enum-size clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance/enum-size.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyPerformanceEnumSize", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityUseStdMinMax", - "shortDescription": { - "text": "readability-use-std-min-max clang-tidy check" - }, - "fullDescription": { - "text": "readability-use-std-min-max clang-tidy check · Learn more", - "markdown": "readability-use-std-min-max clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/use-std-min-max.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityUseStdMinMax", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppEnforceDoStatementBraces", - "shortDescription": { - "text": "Use preferred braces style (enforce braces in 'do-while' statement)" - }, - "fullDescription": { - "text": "Use braces to separate 'do-while' statement body", - "markdown": "Use braces to separate 'do-while' statement body" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppEnforceDoStatementBraces", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Syntax Style", - "index": 91, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticSwitchDefault", - "shortDescription": { - "text": "switch-default clang diagnostic" - }, - "fullDescription": { - "text": "-Wswitch-default clang diagnostic · Learn more", - "markdown": "-Wswitch-default clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wswitch-default)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticSwitchDefault", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0100", - "shortDescription": { - "text": "RoslynAnalyzers Remove redundant equality" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0100", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnusedVolatileLvalue", - "shortDescription": { - "text": "unused-volatile-lvalue clang diagnostic" - }, - "fullDescription": { - "text": "-Wunused-volatile-lvalue clang diagnostic · Learn more", - "markdown": "-Wunused-volatile-lvalue clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunused-volatile-lvalue)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnusedVolatileLvalue", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1186", - "shortDescription": { - "text": "RoslynAnalyzers Use Regex instance instead of static method" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1186", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1187", - "shortDescription": { - "text": "RoslynAnalyzers Use constant instead of field" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1187", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1188", - "shortDescription": { - "text": "RoslynAnalyzers Remove redundant auto-property initialization" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1188", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1189", - "shortDescription": { - "text": "RoslynAnalyzers Add or remove region name" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1189", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1182", - "shortDescription": { - "text": "RoslynAnalyzers Remove redundant base interface" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1182", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneCrtpConstructorAccessibility", - "shortDescription": { - "text": "bugprone-crtp-constructor-accessibility clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-crtp-constructor-accessibility clang-tidy check · Learn more", - "markdown": "bugprone-crtp-constructor-accessibility clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/crtp-constructor-accessibility.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyBugproneCrtpConstructorAccessibility", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyLlvmNamespaceComment", - "shortDescription": { - "text": "llvm-namespace-comment clang-tidy check" - }, - "fullDescription": { - "text": "llvm-namespace-comment clang-tidy check · Learn more", - "markdown": "llvm-namespace-comment clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/llvm/namespace-comment.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyLlvmNamespaceComment", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NestedRecordUpdateCanBeSimplified", - "shortDescription": { - "text": "Nested record update can be simplified" - }, - "fullDescription": { - "text": "Nested record update can be simplified", - "markdown": "Nested record update can be simplified" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "NestedRecordUpdateCanBeSimplified", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "F#/Redundancies in Code", - "index": 73, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1180", - "shortDescription": { - "text": "RoslynAnalyzers Inline lazy initialization" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1180", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1181", - "shortDescription": { - "text": "RoslynAnalyzers Convert comment to documentation comment" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1181", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnsupportedAvailabilityGuard", - "shortDescription": { - "text": "unsupported-availability-guard clang diagnostic" - }, - "fullDescription": { - "text": "-Wunsupported-availability-guard clang diagnostic · Learn more", - "markdown": "-Wunsupported-availability-guard clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunsupported-availability-guard)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnsupportedAvailabilityGuard", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnsupportedCb", - "shortDescription": { - "text": "unsupported-cb clang diagnostic" - }, - "fullDescription": { - "text": "-Wunsupported-cb clang diagnostic · Learn more", - "markdown": "-Wunsupported-cb clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunsupported-cb)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnsupportedCb", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "FSharpExpressionCanBeReplacedWithCondition", - "shortDescription": { - "text": "'if' expression can be replaced with its condition" - }, - "fullDescription": { - "text": "'if' expression can be replaced with its condition.", - "markdown": "'if' expression can be replaced with its condition." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "FSharpExpressionCanBeReplacedWithCondition", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "F#/Redundancies in Code", - "index": 73, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HtmlErrors", - "shortDescription": { - "text": "HTML Errors" - }, - "fullDescription": { - "text": "HTML Errors", - "markdown": "HTML Errors" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "HtmlErrors", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HTML/Non configurable", - "index": 159, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Odin.OdinMemberPresentInMultipleGroups", - "shortDescription": { - "text": "Member appears in multiple UI groups simultaneously" - }, - "fullDescription": { - "text": "Member is included in multiple UI groups and will be displayed multiple times in the UI", - "markdown": "Member is included in multiple UI groups and will be displayed multiple times in the UI" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Odin.OdinMemberPresentInMultipleGroups", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1179", - "shortDescription": { - "text": "RoslynAnalyzers Unnecessary assignment" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1179", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0110", - "shortDescription": { - "text": "RoslynAnalyzers Remove unnecessary discard" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0110", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1175", - "shortDescription": { - "text": "RoslynAnalyzers Unused 'this' parameter" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1175", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1176", - "shortDescription": { - "text": "RoslynAnalyzers [deprecated] Use 'var' instead of explicit type (when the type is not obvious)" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1176", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MultipleOrderBy", - "shortDescription": { - "text": "Multiple sequential 'OrderBy' invocation" - }, - "fullDescription": { - "text": "Multiple sequential 'OrderBy' invocation is meaningless, probably 'ThenBy' is implied", - "markdown": "Multiple sequential 'OrderBy' invocation is meaningless, probably 'ThenBy' is implied" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "MultipleOrderBy", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1177", - "shortDescription": { - "text": "RoslynAnalyzers [deprecated] Use 'var' instead of explicit type (in foreach)" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1177", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticBuiltinMemcpyChkSize", - "shortDescription": { - "text": "builtin-memcpy-chk-size clang diagnostic" - }, - "fullDescription": { - "text": "-Wbuiltin-memcpy-chk-size clang diagnostic · Learn more", - "markdown": "-Wbuiltin-memcpy-chk-size clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wbuiltin-memcpy-chk-size)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticBuiltinMemcpyChkSize", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyDarwinAvoidSpinlock", - "shortDescription": { - "text": "darwin-avoid-spinlock clang-tidy check" - }, - "fullDescription": { - "text": "darwin-avoid-spinlock clang-tidy check · Learn more", - "markdown": "darwin-avoid-spinlock clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/darwin/avoid-spinlock.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyDarwinAvoidSpinlock", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyGoogleDefaultArguments", - "shortDescription": { - "text": "google-default-arguments clang-tidy check" - }, - "fullDescription": { - "text": "google-default-arguments clang-tidy check · Learn more", - "markdown": "google-default-arguments clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/google/default-arguments.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyGoogleDefaultArguments", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticExplicitInitializeCall", - "shortDescription": { - "text": "explicit-initialize-call clang diagnostic" - }, - "fullDescription": { - "text": "-Wexplicit-initialize-call clang diagnostic · Learn more", - "markdown": "-Wexplicit-initialize-call clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wexplicit-initialize-call)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticExplicitInitializeCall", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticGnuFlexibleArrayInitializer", - "shortDescription": { - "text": "gnu-flexible-array-initializer clang diagnostic" - }, - "fullDescription": { - "text": "-Wgnu-flexible-array-initializer clang diagnostic · Learn more", - "markdown": "-Wgnu-flexible-array-initializer clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-flexible-array-initializer)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticGnuFlexibleArrayInitializer", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppReturnNoValueInNonVoidFunction", - "shortDescription": { - "text": "A function or a lambda with non-void return type should return a value" - }, - "fullDescription": { - "text": "A function or a lambda with non-void return type should return a value", - "markdown": "A function or a lambda with non-void return type should return a value" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppReturnNoValueInNonVoidFunction", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUndefinedInternal", - "shortDescription": { - "text": "undefined-internal clang diagnostic" - }, - "fullDescription": { - "text": "-Wundefined-internal clang diagnostic · Learn more", - "markdown": "-Wundefined-internal clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wundefined-internal)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUndefinedInternal", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "LocalizableElement", - "shortDescription": { - "text": "Element is localizable" - }, - "fullDescription": { - "text": "You can move this element to a resource Learn more...", - "markdown": "You can move this element to a resource [Learn more...](https://www.jetbrains.com/help/rider/LocalizableElement.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "LocalizableElement", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "ResX/Potential Code Quality Issues", - "index": 68, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPropertyAttributeMismatch", - "shortDescription": { - "text": "property-attribute-mismatch clang diagnostic" - }, - "fullDescription": { - "text": "-Wproperty-attribute-mismatch clang diagnostic · Learn more", - "markdown": "-Wproperty-attribute-mismatch clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wproperty-attribute-mismatch)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPropertyAttributeMismatch", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppLocalVariableWithNonTrivialDtorIsNeverUsed", - "shortDescription": { - "text": "Local variable is never used, but may have side-effects in its destructor" - }, - "fullDescription": { - "text": "Local variable is never used, but may have side-effects in its destructor", - "markdown": "Local variable is never used, but may have side-effects in its destructor" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppLocalVariableWithNonTrivialDtorIsNeverUsed", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CanSimplifyIsInstanceOfType", - "shortDescription": { - "text": "Use 'is' operator" - }, - "fullDescription": { - "text": "IsAssignableFrom() invocation can be simplified using IsInstanceOfType() or 'is' operator Learn more...", - "markdown": "IsAssignableFrom() invocation can be simplified using IsInstanceOfType() or 'is' operator [Learn more...](https://www.jetbrains.com/help/rider/CanSimplifyIsInstanceOfType.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CanSimplifyIsInstanceOfType", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCertOop58Cpp", - "shortDescription": { - "text": "cert-oop58-cpp clang-tidy check" - }, - "fullDescription": { - "text": "cert-oop58-cpp clang-tidy check · Learn more", - "markdown": "cert-oop58-cpp clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/oop58-cpp.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyCertOop58Cpp", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticC2xExtensions", - "shortDescription": { - "text": "c2x-extensions clang diagnostic" - }, - "fullDescription": { - "text": "-Wc2x-extensions clang diagnostic · Learn more", - "markdown": "-Wc2x-extensions clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc2x-extensions)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticC2xExtensions", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppBadExpressionBracesLineBreaks", - "shortDescription": { - "text": "Incorrect line breaks (around expression braces)" - }, - "fullDescription": { - "text": "Around expression braces", - "markdown": "Around expression braces" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppBadExpressionBracesLineBreaks", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Formatting", - "index": 28, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticShadow", - "shortDescription": { - "text": "shadow clang diagnostic" - }, - "fullDescription": { - "text": "-Wshadow clang diagnostic · Learn more", - "markdown": "-Wshadow clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wshadow)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticShadow", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CanSimplifyDictionaryLookupWithTryGetValue", - "shortDescription": { - "text": "Dictionary lookup can be simplified with 'TryGetValue'" - }, - "fullDescription": { - "text": "Dictionary lookup can be simplified with 'TryGetValue' Learn more...", - "markdown": "Dictionary lookup can be simplified with 'TryGetValue' [Learn more...](https://www.jetbrains.com/help/rider/CanSimplifyDictionaryLookupWithTryGetValue.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CanSimplifyDictionaryLookupWithTryGetValue", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticOverAligned", - "shortDescription": { - "text": "over-aligned clang diagnostic" - }, - "fullDescription": { - "text": "-Wover-aligned clang diagnostic · Learn more", - "markdown": "-Wover-aligned clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wover-aligned)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticOverAligned", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0005_gen", - "shortDescription": { - "text": "RoslynAnalyzers Using directive is unnecessary." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0005_gen", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppVariableCanBeMadeConstexpr", - "shortDescription": { - "text": "Variable can be made constexpr" - }, - "fullDescription": { - "text": "Variable can be made constexpr Learn more...", - "markdown": "Variable can be made constexpr [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rconst-constexpr)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppVariableCanBeMadeConstexpr", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Common Practices and Code Improvements", - "index": 16, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "InlineTemporaryVariable", - "shortDescription": { - "text": "Inline temporary variable" - }, - "fullDescription": { - "text": "Inline temporary variable initialized with a value of other variable/parameter to reduce the amount of different names used to reference the same value Learn more...", - "markdown": "Inline temporary variable initialized with a value of other variable/parameter to reduce the amount of different names used to reference the same value [Learn more...](https://www.jetbrains.com/help/rider/InlineTemporaryVariable.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "InlineTemporaryVariable", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppAbstractFinalClass", - "shortDescription": { - "text": "Abstract final class" - }, - "fullDescription": { - "text": "An abstract final class is marked as 'final' or 'sealed'", - "markdown": "An abstract final class is marked as 'final' or 'sealed'" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppAbstractFinalClass", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnderalignedExceptionObject", - "shortDescription": { - "text": "underaligned-exception-object clang diagnostic" - }, - "fullDescription": { - "text": "-Wunderaligned-exception-object clang diagnostic · Learn more", - "markdown": "-Wunderaligned-exception-object clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunderaligned-exception-object)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnderalignedExceptionObject", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "StaticMemberInitializerReferesToMemberBelow", - "shortDescription": { - "text": "Static member initializer refers to static member below or in other part" - }, - "fullDescription": { - "text": "Static field/auto-property/event initializer refers to a static field/auto-property/event below or in another part", - "markdown": "Static field/auto-property/event initializer refers to a static field/auto-property/event below or in another part" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "StaticMemberInitializerReferesToMemberBelow", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppUsingResultOfAssignmentAsCondition", - "shortDescription": { - "text": "Result of assignment is used as condition" - }, - "fullDescription": { - "text": "Result of assignment is used as condition", - "markdown": "Result of assignment is used as condition" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppUsingResultOfAssignmentAsCondition", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RouteTemplates.ControllerRouteParameterIsNotPassedToMethods", - "shortDescription": { - "text": "Controller's route parameter can be passed to methods" - }, - "fullDescription": { - "text": "Controller's route parameter can be passed to methods", - "markdown": "Controller's route parameter can be passed to methods" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RouteTemplates.ControllerRouteParameterIsNotPassedToMethods", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "ASP.NET route templates/Code Notification", - "index": 48, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EqualExpressionComparison", - "shortDescription": { - "text": "Similar expressions comparison" - }, - "fullDescription": { - "text": "Comparing similar expressions for equality is usually redundant", - "markdown": "Comparing similar expressions for equality is usually redundant" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "EqualExpressionComparison", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticFloatZeroConversion", - "shortDescription": { - "text": "float-zero-conversion clang diagnostic" - }, - "fullDescription": { - "text": "-Wfloat-zero-conversion clang diagnostic · Learn more", - "markdown": "-Wfloat-zero-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wfloat-zero-conversion)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticFloatZeroConversion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppRedundantBaseClassInitializer", - "shortDescription": { - "text": "Redundant base class initializer" - }, - "fullDescription": { - "text": "Redundant base class initializer in a member initializer list", - "markdown": "Redundant base class initializer in a member initializer list" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppRedundantBaseClassInitializer", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Redundancies in Code", - "index": 34, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticSizeofPointerMemaccess", - "shortDescription": { - "text": "sizeof-pointer-memaccess clang diagnostic" - }, - "fullDescription": { - "text": "-Wsizeof-pointer-memaccess clang diagnostic · Learn more", - "markdown": "-Wsizeof-pointer-memaccess clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wsizeof-pointer-memaccess)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticSizeofPointerMemaccess", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneSuspiciousEnumUsage", - "shortDescription": { - "text": "bugprone-suspicious-enum-usage clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-suspicious-enum-usage clang-tidy check · Learn more", - "markdown": "bugprone-suspicious-enum-usage clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/suspicious-enum-usage.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneSuspiciousEnumUsage", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPsabi", - "shortDescription": { - "text": "psabi clang diagnostic" - }, - "fullDescription": { - "text": "-Wpsabi clang diagnostic · Learn more", - "markdown": "-Wpsabi clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpsabi)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPsabi", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantEmptyObjectOrCollectionInitializer", - "shortDescription": { - "text": "Redundant empty object or collection initializer" - }, - "fullDescription": { - "text": "Redundant empty object or collection initializer", - "markdown": "Redundant empty object or collection initializer" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "RedundantEmptyObjectOrCollectionInitializer", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnknownArgument", - "shortDescription": { - "text": "unknown-argument clang diagnostic" - }, - "fullDescription": { - "text": "-Wunknown-argument clang diagnostic · Learn more", - "markdown": "-Wunknown-argument clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunknown-argument)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnknownArgument", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyHicppUseNullptr", - "shortDescription": { - "text": "hicpp-use-nullptr clang-tidy check" - }, - "fullDescription": { - "text": "hicpp-use-nullptr clang-tidy check · Learn more", - "markdown": "hicpp-use-nullptr clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/use-nullptr.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyHicppUseNullptr", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticTautologicalNegationCompare", - "shortDescription": { - "text": "tautological-negation-compare clang diagnostic" - }, - "fullDescription": { - "text": "-Wtautological-negation-compare clang diagnostic · Learn more", - "markdown": "-Wtautological-negation-compare clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wtautological-negation-compare)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticTautologicalNegationCompare", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseNullableReferenceTypesAnnotationSyntax", - "shortDescription": { - "text": "Use type annotation syntax" - }, - "fullDescription": { - "text": "Replace nullness attributes such as [CanBeNull] or [ItemCanBeNull] with nullable reference types' annotation syntax", - "markdown": "Replace nullness attributes such as \\[CanBeNull\\] or \\[ItemCanBeNull\\] with nullable reference types' annotation syntax" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "UseNullableReferenceTypesAnnotationSyntax", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IntVariableOverflowInCheckedContext", - "shortDescription": { - "text": "Possible overflow in checked context" - }, - "fullDescription": { - "text": "Possible overflow in checked context", - "markdown": "Possible overflow in checked context" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "IntVariableOverflowInCheckedContext", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPreCpp20CompatPedantic", - "shortDescription": { - "text": "pre-c++20-compat-pedantic clang diagnostic" - }, - "fullDescription": { - "text": "-Wpre-c++20-compat-pedantic clang diagnostic · Learn more", - "markdown": "-Wpre-c++20-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpre-c-20-compat-pedantic)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPreCpp20CompatPedantic", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ClassCanBeSealed.Local", - "shortDescription": { - "text": "Class can be made sealed (non-inheritable) (private accessibility)" - }, - "fullDescription": { - "text": "Class has no inheritors and can be marked sealed (non-inheritable)", - "markdown": "Class has no inheritors and can be marked sealed (non-inheritable)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ClassCanBeSealed.Local", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "FunctionRecursiveOnAllPaths", - "shortDescription": { - "text": "Function is recursive on all execution paths" - }, - "fullDescription": { - "text": "Function or type initialization is recursive on all execution paths", - "markdown": "Function or type initialization is recursive on all execution paths" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "FunctionRecursiveOnAllPaths", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.PreferGenericMethodOverload", - "shortDescription": { - "text": "String based lookup of component type is inefficient" - }, - "fullDescription": { - "text": "Using a string type name to look up a component is slower than specifying the type as a generic type parameter Learn more...", - "markdown": "Using a string type name to look up a component is slower than specifying the type as a generic type parameter [Learn more...](https://github.com/JetBrains/resharper-unity/wiki/Prefer-using-generic-method-overload-instead-of-string)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.PreferGenericMethodOverload", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "TabsAreDisallowed", - "shortDescription": { - "text": "Usage of tabulation character for indentation is prohibited" - }, - "fullDescription": { - "text": "Use this inspection to prohibit use of tabulation character for code indentation Learn more...", - "markdown": "Use this inspection to prohibit use of tabulation character for code indentation [Learn more...](https://www.jetbrains.com/help/rider/TabsAreDisallowed.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "TabsAreDisallowed", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Syntax Style", - "index": 21, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticStringConcatenation", - "shortDescription": { - "text": "string-concatenation clang diagnostic" - }, - "fullDescription": { - "text": "-Wstring-concatenation clang diagnostic · Learn more", - "markdown": "-Wstring-concatenation clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wstring-concatenation)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticStringConcatenation", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppPrecompiledHeaderIsNotIncluded", - "shortDescription": { - "text": "Precompiled header is not included" - }, - "fullDescription": { - "text": "Precompiled header must be included at the top of source file", - "markdown": "Precompiled header must be included at the top of source file" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "CppPrecompiledHeaderIsNotIncluded", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Compiler Warnings", - "index": 75, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppNoDiscardExpression", - "shortDescription": { - "text": "Result of nodiscard function is not used" - }, - "fullDescription": { - "text": "Result of nodiscard function is not used", - "markdown": "Result of nodiscard function is not used" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppNoDiscardExpression", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantParentheses", - "shortDescription": { - "text": "Remove redundant parentheses" - }, - "fullDescription": { - "text": "Parentheses can be safely removed from expressions without changing code semantics", - "markdown": "Parentheses can be safely removed from expressions without changing code semantics" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RedundantParentheses", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Redundancies in Code", - "index": 96, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticGnuStatementExpressionFromMacroExpansion", - "shortDescription": { - "text": "gnu-statement-expression-from-macro-expansion clang diagnostic" - }, - "fullDescription": { - "text": "-Wgnu-statement-expression-from-macro-expansion clang diagnostic · Learn more", - "markdown": "-Wgnu-statement-expression-from-macro-expansion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-statement-expression-from-macro-expansion)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticGnuStatementExpressionFromMacroExpansion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUndefinedArmZt0", - "shortDescription": { - "text": "undefined-arm-zt0 clang diagnostic" - }, - "fullDescription": { - "text": "-Wundefined-arm-zt0 clang diagnostic · Learn more", - "markdown": "-Wundefined-arm-zt0 clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wundefined-arm-zt0)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUndefinedArmZt0", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnusedMemberInSuper.Local", - "shortDescription": { - "text": "Type member is never accessed via base type (private accessibility)" - }, - "fullDescription": { - "text": "Type member is never used with base type or interface, it is always accessed via more specific type Learn more...", - "markdown": "Type member is never used with base type or interface, it is always accessed via more specific type [Learn more...](https://www.jetbrains.com/help/rider/UnusedMemberInSuper.Local.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "UnusedMemberInSuper.Local", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticVlaExtension", - "shortDescription": { - "text": "vla-extension clang diagnostic" - }, - "fullDescription": { - "text": "-Wvla-extension clang diagnostic · Learn more", - "markdown": "-Wvla-extension clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wvla-extension)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticVlaExtension", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EnableGenerateDocumentationFile", - "shortDescription": { - "text": "RoslynAnalyzers Set MSBuild property 'GenerateDocumentationFile' to 'true'" - }, - "fullDescription": { - "text": "Add the following PropertyGroup to your MSBuild project file to enable IDE0005 (Remove unnecessary usings/imports) on build: True $(NoWarn),1573,1591,1712", - "markdown": "Add the following PropertyGroup to your MSBuild project file to enable IDE0005 (Remove unnecessary usings/imports) on build: True $(NoWarn),1573,1591,1712" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "EnableGenerateDocumentationFile", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CompareOfFloatsByEqualityOperator", - "shortDescription": { - "text": "Equality comparison of floating point numbers" - }, - "fullDescription": { - "text": "Equality comparison of floating point numbers Learn more...", - "markdown": "Equality comparison of floating point numbers [Learn more...](https://www.jetbrains.com/help/rider/CompareOfFloatsByEqualityOperator.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CompareOfFloatsByEqualityOperator", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCppcoreguidelinesProTypeStaticCastDowncast", - "shortDescription": { - "text": "cppcoreguidelines-pro-type-static-cast-downcast clang-tidy check" - }, - "fullDescription": { - "text": "cppcoreguidelines-pro-type-static-cast-downcast clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-pro-type-static-cast-downcast clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/pro-type-static-cast-downcast.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCppcoreguidelinesProTypeStaticCastDowncast", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityDuplicateInclude", - "shortDescription": { - "text": "readability-duplicate-include clang-tidy check" - }, - "fullDescription": { - "text": "readability-duplicate-include clang-tidy check · Learn more", - "markdown": "readability-duplicate-include clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/duplicate-include.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityDuplicateInclude", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCertDcl03C", - "shortDescription": { - "text": "cert-dcl03-c clang-tidy check" - }, - "fullDescription": { - "text": "cert-dcl03-c clang-tidy check · Learn more", - "markdown": "cert-dcl03-c clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/dcl03-c.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCertDcl03C", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDeprecatedRedundantConstexprStaticDef", - "shortDescription": { - "text": "deprecated-redundant-constexpr-static-def clang diagnostic" - }, - "fullDescription": { - "text": "-Wdeprecated-redundant-constexpr-static-def clang diagnostic · Learn more", - "markdown": "-Wdeprecated-redundant-constexpr-static-def clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-redundant-constexpr-static-def)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedRedundantConstexprStaticDef", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnreachableCodeGenericAssoc", - "shortDescription": { - "text": "unreachable-code-generic-assoc clang diagnostic" - }, - "fullDescription": { - "text": "-Wunreachable-code-generic-assoc clang diagnostic · Learn more", - "markdown": "-Wunreachable-code-generic-assoc clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunreachable-code-generic-assoc)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnreachableCodeGenericAssoc", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Odin.OdinUnknownGroupingPath", - "shortDescription": { - "text": "Group path is not defined" - }, - "fullDescription": { - "text": "Using an undefined group will lead to a runtime error", - "markdown": "Using an undefined group will lead to a runtime error" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Odin.OdinUnknownGroupingPath", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCertDcl54Cpp", - "shortDescription": { - "text": "cert-dcl54-cpp clang-tidy check" - }, - "fullDescription": { - "text": "cert-dcl54-cpp clang-tidy check · Learn more", - "markdown": "cert-dcl54-cpp clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/dcl54-cpp.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCertDcl54Cpp", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMissingFieldInitializers", - "shortDescription": { - "text": "missing-field-initializers clang diagnostic" - }, - "fullDescription": { - "text": "-Wmissing-field-initializers clang diagnostic · Learn more", - "markdown": "-Wmissing-field-initializers clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmissing-field-initializers)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMissingFieldInitializers", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NonParsableElement", - "shortDescription": { - "text": "Part of the code cannot be parsed" - }, - "fullDescription": { - "text": "Part of the code cannot be parsed because of deep nesting", - "markdown": "Part of the code cannot be parsed because of deep nesting" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NonParsableElement", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Code Notification", - "index": 160, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ShaderLabShaderReferenceMultipleCandidates", - "shortDescription": { - "text": "Multiple Shaders with the same name found" - }, - "fullDescription": { - "text": "Reference.GetName()", - "markdown": "Reference.GetName()" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "ShaderLabShaderReferenceMultipleCandidates", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MemberInitializerValueIgnored", - "shortDescription": { - "text": "Member initialized value ignored" - }, - "fullDescription": { - "text": "Member initializer value is ignored because the member is always initialized in all constructors Learn more...", - "markdown": "Member initializer value is ignored because the member is always initialized in all constructors [Learn more...](https://www.jetbrains.com/help/rider/MemberInitializerValueIgnored.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "MemberInitializerValueIgnored", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticConstantLogicalOperand", - "shortDescription": { - "text": "constant-logical-operand clang diagnostic" - }, - "fullDescription": { - "text": "-Wconstant-logical-operand clang diagnostic · Learn more", - "markdown": "-Wconstant-logical-operand clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wconstant-logical-operand)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticConstantLogicalOperand", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CheckNamespace", - "shortDescription": { - "text": "Namespace does not correspond to file location" - }, - "fullDescription": { - "text": "Namespace in file does not have a form of 'project Default Namespace plus folder names in the path to the file'. You can configure which folders form the namespace on the folder's Properties page. Learn more...", - "markdown": "Namespace in file does not have a form of 'project Default Namespace plus folder names in the path to the file'. You can configure which folders form the namespace on the folder's Properties page. [Learn more...](https://www.jetbrains.com/help/rider/CheckNamespace.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CheckNamespace", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Constraints Violations", - "index": 80, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithSingleCallToAny", - "shortDescription": { - "text": "Replace with single call to Any(..)" - }, - "fullDescription": { - "text": "$seq$.Where($x$ => $expr$).Any()", - "markdown": "$seq$.Where($x$ =\\> $expr$).Any()" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithSingleCallToAny", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConvertToAutoProperty", - "shortDescription": { - "text": "Convert property into auto-property" - }, - "fullDescription": { - "text": "Converts property declaration into C# auto-property syntax Learn more...", - "markdown": "Converts property declaration into C# auto-property syntax [Learn more...](https://www.jetbrains.com/help/rider/ConvertToAutoProperty.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ConvertToAutoProperty", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NotAccessedOutParameterVariable", - "shortDescription": { - "text": "Non-accessed local variable is only used to discard the 'out' parameter value" - }, - "fullDescription": { - "text": "Non-accessed local variable is only used to discard the 'out' parameter value Learn more...", - "markdown": "Non-accessed local variable is only used to discard the 'out' parameter value [Learn more...](https://www.jetbrains.com/help/rider/NotAccessedOutParameterVariable.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NotAccessedOutParameterVariable", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBUseFirstInstead", - "shortDescription": { - "text": "Use First() instead" - }, - "fullDescription": { - "text": "$enumerable$.FirstOrDefault().$method$(...)", - "markdown": "$enumerable$.FirstOrDefault().$method$(...)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "VBUseFirstInstead", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RouteTemplates.RouteTokenNotResolved", - "shortDescription": { - "text": "Route token not resolved" - }, - "fullDescription": { - "text": "Route token not resolved", - "markdown": "Route token not resolved" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RouteTemplates.RouteTokenNotResolved", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "ASP.NET route templates/Code Notification", - "index": 48, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnusedVariable.Compiler", - "shortDescription": { - "text": "Unused local variable" - }, - "fullDescription": { - "text": "Local variable is never used (compiler warning) Learn more...", - "markdown": "Local variable is never used (compiler warning) [Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/misc/cs0168)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "UnusedVariable.Compiler", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPreCpp14Compat", - "shortDescription": { - "text": "pre-c++14-compat clang diagnostic" - }, - "fullDescription": { - "text": "-Wpre-c++14-compat clang diagnostic · Learn more", - "markdown": "-Wpre-c++14-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpre-c-14-compat)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPreCpp14Compat", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EmptyGeneralCatchClause", - "shortDescription": { - "text": "Empty general catch clause" - }, - "fullDescription": { - "text": "A catch clause that catches System.Exception and has an empty body Learn more...", - "markdown": "A catch clause that catches System.Exception and has an empty body [Learn more...](https://www.jetbrains.com/help/rider/EmptyGeneralCatchClause.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "EmptyGeneralCatchClause", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ShaderLabErrors", - "shortDescription": { - "text": "ShaderLab Errors" - }, - "fullDescription": { - "text": "ShaderLab Errors", - "markdown": "ShaderLab Errors" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "ShaderLabErrors", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "ShaderLab/Non configurable", - "index": 150, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RiderSolutionErrorsInspection", - "shortDescription": { - "text": "Rider toolset and environment errors" - }, - "fullDescription": { - "text": "Reports toolset and environment errors detected by Rider.", - "markdown": "Reports toolset and environment errors detected by Rider." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "RiderSolutionErrorsInspection", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Rider/General", - "index": 156, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMicrosoftUnqualifiedFriend", - "shortDescription": { - "text": "microsoft-unqualified-friend clang diagnostic" - }, - "fullDescription": { - "text": "-Wmicrosoft-unqualified-friend clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-unqualified-friend clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-unqualified-friend)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftUnqualifiedFriend", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticIgnoredQualifiers", - "shortDescription": { - "text": "ignored-qualifiers clang diagnostic" - }, - "fullDescription": { - "text": "-Wignored-qualifiers clang diagnostic · Learn more", - "markdown": "-Wignored-qualifiers clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wignored-qualifiers)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticIgnoredQualifiers", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PossibleMultipleEnumeration", - "shortDescription": { - "text": "Possible multiple enumeration" - }, - "fullDescription": { - "text": "Possible multiple enumeration of IEnumerable or IAsyncEnumerable Learn more...", - "markdown": "Possible multiple enumeration of IEnumerable or IAsyncEnumerable [Learn more...](https://www.jetbrains.com/help/rider/PossibleMultipleEnumeration.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "PossibleMultipleEnumeration", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticGnuLineMarker", - "shortDescription": { - "text": "gnu-line-marker clang diagnostic" - }, - "fullDescription": { - "text": "-Wgnu-line-marker clang diagnostic · Learn more", - "markdown": "-Wgnu-line-marker clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-line-marker)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticGnuLineMarker", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AutoPropertyCanBeMadeGetOnly.Global", - "shortDescription": { - "text": "Auto-property can be made get-only (non-private accessibility)" - }, - "fullDescription": { - "text": "Auto-property has no write usages after initialization and can be made get-only Learn more...", - "markdown": "Auto-property has no write usages after initialization and can be made get-only [Learn more...](https://www.jetbrains.com/help/rider/AutoPropertyCanBeMadeGetOnly.Global.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "AutoPropertyCanBeMadeGetOnly.Global", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NotDisposedResource", - "shortDescription": { - "text": "Return value of a method annotated with [MustDisposeResource] is never disposed" - }, - "fullDescription": { - "text": "Return value of a method annotated with [MustDisposeResource] is never disposed Learn more...", - "markdown": "Return value of a method annotated with \\[MustDisposeResource\\] is never disposed [Learn more...](https://www.jetbrains.com/help/rider/NotDisposedResource.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NotDisposedResource", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticEnumFloatConversion", - "shortDescription": { - "text": "enum-float-conversion clang diagnostic" - }, - "fullDescription": { - "text": "-Wenum-float-conversion clang diagnostic · Learn more", - "markdown": "-Wenum-float-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wenum-float-conversion)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticEnumFloatConversion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBWarnings__BC42105,BC42106,BC42107", - "shortDescription": { - "text": "Function doesn't return a reference type value on all code paths" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://www.jetbrains.com/help/rider/VBWarnings_BC42105_BC42106_BC42107.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "VBWarnings__BC42105,BC42106,BC42107", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Compiler Warnings", - "index": 110, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticTemplateInDeclarationName", - "shortDescription": { - "text": "template-in-declaration-name clang diagnostic" - }, - "fullDescription": { - "text": "-Wtemplate-in-declaration-name clang diagnostic · Learn more", - "markdown": "-Wtemplate-in-declaration-name clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wtemplate-in-declaration-name)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticTemplateInDeclarationName", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppBadChildStatementIndent", - "shortDescription": { - "text": "Incorrect indent (around child statement)" - }, - "fullDescription": { - "text": "Around child statement", - "markdown": "Around child statement" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppBadChildStatementIndent", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Formatting", - "index": 28, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PassStringInterpolation", - "shortDescription": { - "text": "Pass string interpolation expression" - }, - "fullDescription": { - "text": "Replace formatting method arguments by passing string interpolation expression. Learn more...", - "markdown": "Replace formatting method arguments by passing string interpolation expression. [Learn more...](https://www.jetbrains.com/help/rider/PassStringInterpolation.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "PassStringInterpolation", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyGoogleReadabilityBracesAroundStatements", - "shortDescription": { - "text": "google-readability-braces-around-statements clang-tidy check" - }, - "fullDescription": { - "text": "google-readability-braces-around-statements clang-tidy check · Learn more", - "markdown": "google-readability-braces-around-statements clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/google/readability-braces-around-statements.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyGoogleReadabilityBracesAroundStatements", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantArrayCreationExpression", - "shortDescription": { - "text": "Array creation can be replaced with array initializer" - }, - "fullDescription": { - "text": "When initializing explicitly typed local variable or field of array type, array creation expression can be replaced with array initializer", - "markdown": "When initializing explicitly typed local variable or field of array type, array creation expression can be replaced with array initializer" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RedundantArrayCreationExpression", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConvertIfStatementToReturnStatement", - "shortDescription": { - "text": "'if-return' statement can be rewritten as 'return' statement" - }, - "fullDescription": { - "text": "Convert the following code: \r\n if (condition) return expr1;\r\n return expr2;\r\n To: \r\n return condition ? expr1 : expr2;\r\n Learn more...", - "markdown": "Convert the following code:\n\n```\n\r\n if (condition) return expr1;\r\n return expr2;\r\n```\n\nTo:\n\n```\n\r\n return condition ? expr1 : expr2;\r\n```\n\n[Learn more...](https://www.jetbrains.com/help/rider/ConvertIfStatementToReturnStatement.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "ConvertIfStatementToReturnStatement", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticIncompatibleMsPragmaSection", - "shortDescription": { - "text": "incompatible-ms-pragma-section clang diagnostic" - }, - "fullDescription": { - "text": "-Wincompatible-ms-pragma-section clang diagnostic · Learn more", - "markdown": "-Wincompatible-ms-pragma-section clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wincompatible-ms-pragma-section)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticIncompatibleMsPragmaSection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MultipleStatementsOnOneLine", - "shortDescription": { - "text": "Incorrect line breaks (multiple statements on one line)" - }, - "fullDescription": { - "text": "Multiple statements on one line Learn more...", - "markdown": "Multiple statements on one line [Learn more...](https://www.jetbrains.com/help/rider/MultipleStatementsOnOneLine.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "MultipleStatementsOnOneLine", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Formatting", - "index": 24, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseNameOfInsteadOfTypeOf", - "shortDescription": { - "text": "Use 'nameof' expression to reference type name" - }, - "fullDescription": { - "text": "Replace 'typeof(T).Name' expression with constant 'nameof' expression", - "markdown": "Replace 'typeof(T).Name' expression with constant 'nameof' expression" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UseNameOfInsteadOfTypeOf", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBWarnings__BC40056", - "shortDescription": { - "text": "Namespace or type specified in the Imports 'name' doesn't contain any public member or cannot be found" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/ms234657.aspx)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "VBWarnings__BC40056", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Compiler Warnings", - "index": 110, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticRangeLoopAnalysis", - "shortDescription": { - "text": "range-loop-analysis clang diagnostic" - }, - "fullDescription": { - "text": "-Wrange-loop-analysis clang diagnostic · Learn more", - "markdown": "-Wrange-loop-analysis clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wrange-loop-analysis)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticRangeLoopAnalysis", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseImplicitByValModifier", - "shortDescription": { - "text": "Use implicit 'ByVal' modifier" - }, - "fullDescription": { - "text": "Use implicit 'ByVal' modifier in parameter declaration", - "markdown": "Use implicit 'ByVal' modifier in parameter declaration" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UseImplicitByValModifier", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Redundancies in Code", - "index": 96, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppNodiscardFunctionWithoutReturnValue", - "shortDescription": { - "text": "[[nodiscard]] cannot be applied to functions without a return value" - }, - "fullDescription": { - "text": "The [[nodiscard]] attribute cannot be applied to functions without a return value", - "markdown": "The \\[\\[nodiscard\\]\\] attribute cannot be applied to functions without a return value" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppNodiscardFunctionWithoutReturnValue", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantImmediateDelegateInvocation", - "shortDescription": { - "text": "Immediate delegate invocation" - }, - "fullDescription": { - "text": "Immediate delegate invocation is redundant", - "markdown": "Immediate delegate invocation is redundant" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RedundantImmediateDelegateInvocation", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ArrangeTypeMemberModifiers", - "shortDescription": { - "text": "Use explicit or implicit modifier definition for type members" - }, - "fullDescription": { - "text": "'private' modifier can be safely added/removed from type members without changing code semantics Learn more...", - "markdown": "'private' modifier can be safely added/removed from type members without changing code semantics [Learn more...](https://www.jetbrains.com/help/rider/ArrangeTypeMemberModifiers.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "ArrangeTypeMemberModifiers", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Syntax Style", - "index": 21, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneStandaloneEmpty", - "shortDescription": { - "text": "bugprone-standalone-empty clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-standalone-empty clang-tidy check · Learn more", - "markdown": "bugprone-standalone-empty clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/standalone-empty.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneStandaloneEmpty", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppBadSpacesAfterKeyword", - "shortDescription": { - "text": "Incorrect spacing (between keyword and parenthesis)" - }, - "fullDescription": { - "text": "Between keyword and parenthesis", - "markdown": "Between keyword and parenthesis" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppBadSpacesAfterKeyword", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Formatting", - "index": 28, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IntroduceOptionalParameters.Local", - "shortDescription": { - "text": "Introduce optional parameters (private accessibility)" - }, - "fullDescription": { - "text": "Introduce optional parameters to overload method Learn more...", - "markdown": "Introduce optional parameters to overload method [Learn more...](https://www.jetbrains.com/help/rider/IntroduceOptionalParameters.Local.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IntroduceOptionalParameters.Local", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit.AutoFixture.RedundantArgumentInInlineAutoDataAttribute", - "shortDescription": { - "text": "NUnit.AutoFixture. Redundant argument in InlineAutoData attribute." - }, - "fullDescription": { - "text": "NUnit.AutoFixture. According to the test method signature, the argument in the [InlineAutoData] attribute is redundant.", - "markdown": "NUnit.AutoFixture. According to the test method signature, the argument in the \\[InlineAutoData\\] attribute is redundant." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NUnit.AutoFixture.RedundantArgumentInInlineAutoDataAttribute", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/NUnit", - "index": 26, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerOptinCplusplusVirtualCall", - "shortDescription": { - "text": "optin.cplusplus.VirtualCall clang static analyzer check" - }, - "fullDescription": { - "text": "optin.cplusplus.VirtualCall clang static analyzer check · Learn more", - "markdown": "optin.cplusplus.VirtualCall clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerOptinCplusplusVirtualCall", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticNullabilityExtension", - "shortDescription": { - "text": "nullability-extension clang diagnostic" - }, - "fullDescription": { - "text": "-Wnullability-extension clang diagnostic · Learn more", - "markdown": "-Wnullability-extension clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnullability-extension)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticNullabilityExtension", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticClangClPch", - "shortDescription": { - "text": "clang-cl-pch clang diagnostic" - }, - "fullDescription": { - "text": "-Wclang-cl-pch clang diagnostic · Learn more", - "markdown": "-Wclang-cl-pch clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wclang-cl-pch)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticClangClPch", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppEntityUsedOnlyInUnevaluatedContext", - "shortDescription": { - "text": "Declarator is used only in unevaluated context" - }, - "fullDescription": { - "text": "A declarator is used only in unevaluated context", - "markdown": "A declarator is used only in unevaluated context" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppEntityUsedOnlyInUnevaluatedContext", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantFixedPointerDeclaration", - "shortDescription": { - "text": "Redundant fixed pointer declaration" - }, - "fullDescription": { - "text": "Fixed pointer declaration is redundant because accessing elements of fixed size buffer does not require pinning Learn more...", - "markdown": "Fixed pointer declaration is redundant because accessing elements of fixed size buffer does not require pinning [Learn more...](https://www.jetbrains.com/help/rider/RedundantFixedPointerDeclaration.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RedundantFixedPointerDeclaration", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Html.Warning", - "shortDescription": { - "text": "HTML Warning" - }, - "fullDescription": { - "text": "HTML Warning", - "markdown": "HTML Warning" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Html.Warning", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HTML/Potential Code Quality Issues", - "index": 54, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppRedundantControlFlowJump", - "shortDescription": { - "text": "Redundant control flow jump statement" - }, - "fullDescription": { - "text": "Redundant control flow jump statement", - "markdown": "Redundant control flow jump statement" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppRedundantControlFlowJump", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Redundancies in Code", - "index": 34, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RawStringCanBeSimplified", - "shortDescription": { - "text": "Raw string can be simplified" - }, - "fullDescription": { - "text": "String presentation has redundant quotes or dollar signs", - "markdown": "String presentation has redundant quotes or dollar signs" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RawStringCanBeSimplified", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticBranchProtection", - "shortDescription": { - "text": "branch-protection clang diagnostic" - }, - "fullDescription": { - "text": "-Wbranch-protection clang diagnostic · Learn more", - "markdown": "-Wbranch-protection clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wbranch-protection)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticBranchProtection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConvertToUsingDeclaration", - "shortDescription": { - "text": "Convert into 'using' declaration" - }, - "fullDescription": { - "text": "Replace 'using' statement with 'using' declaration", - "markdown": "Replace 'using' statement with 'using' declaration" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ConvertToUsingDeclaration", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerWebkitUncountedLambdaCapturesChecker", - "shortDescription": { - "text": "webkit.UncountedLambdaCapturesChecker clang static analyzer check" - }, - "fullDescription": { - "text": "webkit.UncountedLambdaCapturesChecker clang static analyzer check · Learn more", - "markdown": "webkit.UncountedLambdaCapturesChecker clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerWebkitUncountedLambdaCapturesChecker", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMicrosoftInclude", - "shortDescription": { - "text": "microsoft-include clang diagnostic" - }, - "fullDescription": { - "text": "-Wmicrosoft-include clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-include clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-include)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftInclude", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticLiteralConversion", - "shortDescription": { - "text": "literal-conversion clang diagnostic" - }, - "fullDescription": { - "text": "-Wliteral-conversion clang diagnostic · Learn more", - "markdown": "-Wliteral-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wliteral-conversion)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticLiteralConversion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticHlslAvailability", - "shortDescription": { - "text": "hlsl-availability clang diagnostic" - }, - "fullDescription": { - "text": "-Whlsl-availability clang diagnostic · Learn more", - "markdown": "-Whlsl-availability clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#whlsl-availability)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticHlslAvailability", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticAddressOfPackedMember", - "shortDescription": { - "text": "address-of-packed-member clang diagnostic" - }, - "fullDescription": { - "text": "-Waddress-of-packed-member clang diagnostic · Learn more", - "markdown": "-Waddress-of-packed-member clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#waddress-of-packed-member)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticAddressOfPackedMember", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticGnuFoldingConstant", - "shortDescription": { - "text": "gnu-folding-constant clang diagnostic" - }, - "fullDescription": { - "text": "-Wgnu-folding-constant clang diagnostic · Learn more", - "markdown": "-Wgnu-folding-constant clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-folding-constant)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticGnuFoldingConstant", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityImplicitBoolConversion", - "shortDescription": { - "text": "readability-implicit-bool-conversion clang-tidy check" - }, - "fullDescription": { - "text": "readability-implicit-bool-conversion clang-tidy check · Learn more", - "markdown": "readability-implicit-bool-conversion clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/implicit-bool-conversion.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityImplicitBoolConversion", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticAmbiguousDelete", - "shortDescription": { - "text": "ambiguous-delete clang diagnostic" - }, - "fullDescription": { - "text": "-Wambiguous-delete clang diagnostic · Learn more", - "markdown": "-Wambiguous-delete clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wambiguous-delete)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticAmbiguousDelete", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticOpenclUnsupportedRgba", - "shortDescription": { - "text": "opencl-unsupported-rgba clang diagnostic" - }, - "fullDescription": { - "text": "-Wopencl-unsupported-rgba clang diagnostic · Learn more", - "markdown": "-Wopencl-unsupported-rgba clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wopencl-unsupported-rgba)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticOpenclUnsupportedRgba", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticThreadSafetyReference", - "shortDescription": { - "text": "thread-safety-reference clang diagnostic" - }, - "fullDescription": { - "text": "-Wthread-safety-reference clang diagnostic · Learn more", - "markdown": "-Wthread-safety-reference clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wthread-safety-reference)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticThreadSafetyReference", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticOpenmpClauses", - "shortDescription": { - "text": "openmp-clauses clang diagnostic" - }, - "fullDescription": { - "text": "-Wopenmp-clauses clang diagnostic · Learn more", - "markdown": "-Wopenmp-clauses clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wopenmp-clauses)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticOpenmpClauses", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticOpenmpTarget", - "shortDescription": { - "text": "openmp-target clang diagnostic" - }, - "fullDescription": { - "text": "-Wopenmp-target clang diagnostic · Learn more", - "markdown": "-Wopenmp-target clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wopenmp-target)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticOpenmpTarget", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RegExpErrors", - "shortDescription": { - "text": "Regular Expression Errors" - }, - "fullDescription": { - "text": "Regular Expression Errors", - "markdown": "Regular Expression Errors" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "RegExpErrors", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "RegExpBase/Non configurable", - "index": 162, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8123", - "shortDescription": { - "text": "The tuple element name is ignored because a different name or no name is specified by the target type." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8123", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyFuchsiaTrailingReturn", - "shortDescription": { - "text": "fuchsia-trailing-return clang-tidy check" - }, - "fullDescription": { - "text": "fuchsia-trailing-return clang-tidy check · Learn more", - "markdown": "fuchsia-trailing-return clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/fuchsia/trailing-return.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyFuchsiaTrailingReturn", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerCoreDivideZero", - "shortDescription": { - "text": "core.DivideZero clang static analyzer check" - }, - "fullDescription": { - "text": "core.DivideZero clang static analyzer check · Learn more", - "markdown": "core.DivideZero clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerCoreDivideZero", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneUndefinedMemoryManipulation", - "shortDescription": { - "text": "bugprone-undefined-memory-manipulation clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-undefined-memory-manipulation clang-tidy check · Learn more", - "markdown": "bugprone-undefined-memory-manipulation clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/undefined-memory-manipulation.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneUndefinedMemoryManipulation", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "OperatorIsCanBeUsed", - "shortDescription": { - "text": "Operator 'is'/'Type Of ... Is ...' can be used" - }, - "fullDescription": { - "text": "Operator 'is'/'Type Of ... Is ...' can be used instead of comparing objects GetType() and instance of System.Type object", - "markdown": "Operator 'is'/'Type Of ... Is ...' can be used instead of comparing objects GetType() and instance of System.Type object" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "OperatorIsCanBeUsed", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MethodSupportsCancellation", - "shortDescription": { - "text": "Method supports cancellation" - }, - "fullDescription": { - "text": "Method has overload with 'CancellationToken'", - "markdown": "Method has overload with 'CancellationToken'" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "MethodSupportsCancellation", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneArgumentComment", - "shortDescription": { - "text": "bugprone-argument-comment clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-argument-comment clang-tidy check · Learn more", - "markdown": "bugprone-argument-comment clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/argument-comment.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyBugproneArgumentComment", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyHicppSpecialMemberFunctions", - "shortDescription": { - "text": "hicpp-special-member-functions clang-tidy check" - }, - "fullDescription": { - "text": "hicpp-special-member-functions clang-tidy check · Learn more", - "markdown": "hicpp-special-member-functions clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/special-member-functions.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyHicppSpecialMemberFunctions", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticAssignEnum", - "shortDescription": { - "text": "assign-enum clang diagnostic" - }, - "fullDescription": { - "text": "-Wassign-enum clang diagnostic · Learn more", - "markdown": "-Wassign-enum clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wassign-enum)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticAssignEnum", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticTypeSafety", - "shortDescription": { - "text": "type-safety clang diagnostic" - }, - "fullDescription": { - "text": "-Wtype-safety clang diagnostic · Learn more", - "markdown": "-Wtype-safety clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wtype-safety)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticTypeSafety", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppRedundantStaticSpecifierOnMemberAllocationFunction", - "shortDescription": { - "text": "Redundant 'static' specifier on a member allocation/deallocation function" - }, - "fullDescription": { - "text": "The 'static' specifier is optional for member allocation/deallocation functions", - "markdown": "The 'static' specifier is optional for member allocation/deallocation functions" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppRedundantStaticSpecifierOnMemberAllocationFunction", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Redundancies in Code", - "index": 34, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticExcessiveRegsave", - "shortDescription": { - "text": "excessive-regsave clang diagnostic" - }, - "fullDescription": { - "text": "-Wexcessive-regsave clang diagnostic · Learn more", - "markdown": "-Wexcessive-regsave clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wexcessive-regsave)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticExcessiveRegsave", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticAmbiguousReversedOperator", - "shortDescription": { - "text": "ambiguous-reversed-operator clang diagnostic" - }, - "fullDescription": { - "text": "-Wambiguous-reversed-operator clang diagnostic · Learn more", - "markdown": "-Wambiguous-reversed-operator clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wambiguous-reversed-operator)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticAmbiguousReversedOperator", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantParams", - "shortDescription": { - "text": "'params' modifier is always ignored on overrides" - }, - "fullDescription": { - "text": "'params' modifier is always ignored on overrides", - "markdown": "'params' modifier is always ignored on overrides" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantParams", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "YamlErrors", - "shortDescription": { - "text": "YAML Errors" - }, - "fullDescription": { - "text": "YAML Errors", - "markdown": "YAML Errors" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "YamlErrors", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "YAML/Non configurable", - "index": 163, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticIncompatibleExceptionSpec", - "shortDescription": { - "text": "incompatible-exception-spec clang diagnostic" - }, - "fullDescription": { - "text": "-Wincompatible-exception-spec clang diagnostic · Learn more", - "markdown": "-Wincompatible-exception-spec clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wincompatible-exception-spec)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticIncompatibleExceptionSpec", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMisexpect", - "shortDescription": { - "text": "misexpect clang diagnostic" - }, - "fullDescription": { - "text": "-Wmisexpect clang diagnostic · Learn more", - "markdown": "-Wmisexpect clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmisexpect)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMisexpect", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerUnixAPI", - "shortDescription": { - "text": "unix.API clang static analyzer check" - }, - "fullDescription": { - "text": "unix.API clang static analyzer check · Learn more", - "markdown": "unix.API clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerUnixAPI", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "LoopCanBePartlyConvertedToQuery", - "shortDescription": { - "text": "Part of loop's body can be converted into LINQ-expression" - }, - "fullDescription": { - "text": "Part of 'foreach' ('For Each' for VB.NET) statement's body can be converted into a LINQ-expression", - "markdown": "Part of 'foreach' ('For Each' for VB.NET) statement's body can be converted into a LINQ-expression" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "LoopCanBePartlyConvertedToQuery", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerCoreNonNullParamChecker", - "shortDescription": { - "text": "core.NonNullParamChecker clang static analyzer check" - }, - "fullDescription": { - "text": "core.NonNullParamChecker clang static analyzer check · Learn more", - "markdown": "core.NonNullParamChecker clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerCoreNonNullParamChecker", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "BadChildStatementIndent", - "shortDescription": { - "text": "Incorrect indent (around child statement)" - }, - "fullDescription": { - "text": "Around child statement Learn more...", - "markdown": "Around child statement [Learn more...](https://www.jetbrains.com/help/rider/BadChildStatementIndent.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "BadChildStatementIndent", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Formatting", - "index": 24, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyGoogleObjcGlobalVariableDeclaration", - "shortDescription": { - "text": "google-objc-global-variable-declaration clang-tidy check" - }, - "fullDescription": { - "text": "google-objc-global-variable-declaration clang-tidy check · Learn more", - "markdown": "google-objc-global-variable-declaration clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/google/objc-global-variable-declaration.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyGoogleObjcGlobalVariableDeclaration", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticLongLong", - "shortDescription": { - "text": "long-long clang diagnostic" - }, - "fullDescription": { - "text": "-Wlong-long clang diagnostic · Learn more", - "markdown": "-Wlong-long clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wlong-long)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticLongLong", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppMemberFunctionMayBeConst", - "shortDescription": { - "text": "Member function can be made const" - }, - "fullDescription": { - "text": "Member function can be made const Learn more...", - "markdown": "Member function can be made const [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rconst-fct)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppMemberFunctionMayBeConst", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Common Practices and Code Improvements", - "index": 16, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp98CompatExtraSemi", - "shortDescription": { - "text": "c++98-compat-extra-semi clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++98-compat-extra-semi clang diagnostic · Learn more", - "markdown": "-Wc++98-compat-extra-semi clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-98-compat-extra-semi)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp98CompatExtraSemi", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IfStdIsConstantEvaluatedCanBeReplaced", - "shortDescription": { - "text": "'if' can be replaced by 'if consteval'" - }, - "fullDescription": { - "text": "'if' can be replaced by 'if consteval'", - "markdown": "'if' can be replaced by 'if consteval'" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IfStdIsConstantEvaluatedCanBeReplaced", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Common Practices and Code Improvements", - "index": 16, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMissingNoescape", - "shortDescription": { - "text": "missing-noescape clang diagnostic" - }, - "fullDescription": { - "text": "-Wmissing-noescape clang diagnostic · Learn more", - "markdown": "-Wmissing-noescape clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmissing-noescape)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMissingNoescape", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticIntToVoidPointerCast", - "shortDescription": { - "text": "int-to-void-pointer-cast clang diagnostic" - }, - "fullDescription": { - "text": "-Wint-to-void-pointer-cast clang diagnostic · Learn more", - "markdown": "-Wint-to-void-pointer-cast clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wint-to-void-pointer-cast)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticIntToVoidPointerCast", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS1522", - "shortDescription": { - "text": "Empty switch block" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/x68b4s45.aspx)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS1522", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ArgumentsStyleNamedExpression", - "shortDescription": { - "text": "Use preferred argument style for named expressions" - }, - "fullDescription": { - "text": "Prefer using named/positional argument for named expressions Learn more...", - "markdown": "Prefer using named/positional argument for named expressions [Learn more...](https://www.jetbrains.com/help/rider/ArgumentsStyleNamedExpression.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ArgumentsStyleNamedExpression", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Syntax Style", - "index": 21, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantOverload.Local", - "shortDescription": { - "text": "Redundant method overload (private accessibility)" - }, - "fullDescription": { - "text": "Redundant method overload. Use another method with optional parameters.", - "markdown": "Redundant method overload. Use another method with optional parameters." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RedundantOverload.Local", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyMiscUnusedParameters", - "shortDescription": { - "text": "misc-unused-parameters clang-tidy check" - }, - "fullDescription": { - "text": "misc-unused-parameters clang-tidy check · Learn more", - "markdown": "misc-unused-parameters clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/unused-parameters.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyMiscUnusedParameters", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ExpressionIsAlwaysNull", - "shortDescription": { - "text": "Expression is always 'null'" - }, - "fullDescription": { - "text": "The expression is always evaluated to 'null' at this point Learn more...", - "markdown": "The expression is always evaluated to 'null' at this point [Learn more...](https://www.jetbrains.com/help/rider/ExpressionIsAlwaysNull.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "ExpressionIsAlwaysNull", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyAlteraStructPackAlign", - "shortDescription": { - "text": "altera-struct-pack-align clang-tidy check" - }, - "fullDescription": { - "text": "altera-struct-pack-align clang-tidy check · Learn more", - "markdown": "altera-struct-pack-align clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/altera/struct-pack-align.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyAlteraStructPackAlign", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyLlvmPreferRegisterOverUnsigned", - "shortDescription": { - "text": "llvm-prefer-register-over-unsigned clang-tidy check" - }, - "fullDescription": { - "text": "llvm-prefer-register-over-unsigned clang-tidy check · Learn more", - "markdown": "llvm-prefer-register-over-unsigned clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/llvm/prefer-register-over-unsigned.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyLlvmPreferRegisterOverUnsigned", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppUseAuto", - "shortDescription": { - "text": "Use preferred 'auto' style (type can be replaced with auto)" - }, - "fullDescription": { - "text": "Type can be replaced with 'auto'", - "markdown": "Type can be replaced with 'auto'" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppUseAuto", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Syntax Style", - "index": 91, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCppcoreguidelinesNoMalloc", - "shortDescription": { - "text": "cppcoreguidelines-no-malloc clang-tidy check" - }, - "fullDescription": { - "text": "cppcoreguidelines-no-malloc clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-no-malloc clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/no-malloc.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCppcoreguidelinesNoMalloc", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticNonLiteralNullConversion", - "shortDescription": { - "text": "non-literal-null-conversion clang diagnostic" - }, - "fullDescription": { - "text": "-Wnon-literal-null-conversion clang diagnostic · Learn more", - "markdown": "-Wnon-literal-null-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnon-literal-null-conversion)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticNonLiteralNullConversion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MemberCanBeProtected.Local", - "shortDescription": { - "text": "Member can be made protected (private accessibility)" - }, - "fullDescription": { - "text": "Member can be made protected Learn more...", - "markdown": "Member can be made protected [Learn more...](https://www.jetbrains.com/help/rider/MemberCanBeProtected.Local.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "MemberCanBeProtected.Local", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnsafeBufferUsageInContainer", - "shortDescription": { - "text": "unsafe-buffer-usage-in-container clang diagnostic" - }, - "fullDescription": { - "text": "-Wunsafe-buffer-usage-in-container clang diagnostic · Learn more", - "markdown": "-Wunsafe-buffer-usage-in-container clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunsafe-buffer-usage-in-container)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnsafeBufferUsageInContainer", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerCoreUninitializedAssign", - "shortDescription": { - "text": "core.uninitialized.Assign clang static analyzer check" - }, - "fullDescription": { - "text": "core.uninitialized.Assign clang static analyzer check · Learn more", - "markdown": "core.uninitialized.Assign clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerCoreUninitializedAssign", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SuggestBaseTypeForParameterInConstructor", - "shortDescription": { - "text": "Parameter of the constructor can be declared with the base type" - }, - "fullDescription": { - "text": "Parameter can be declared with the base type. Note that when the base type is IEnumerable, another inspection 'Parameter type can be IEnumerable' will be applied.", - "markdown": "Parameter can be declared with the base type. Note that when the base type is IEnumerable, another inspection 'Parameter type can be IEnumerable' will be applied." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "SuggestBaseTypeForParameterInConstructor", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyAndroidCloexecSocket", - "shortDescription": { - "text": "android-cloexec-socket clang-tidy check" - }, - "fullDescription": { - "text": "android-cloexec-socket clang-tidy check · Learn more", - "markdown": "android-cloexec-socket clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/android/cloexec-socket.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyAndroidCloexecSocket", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NotObservableAnnotationRedundancy", - "shortDescription": { - "text": "Nullability attribute used with declaration that cannot be directly referenced from other code" - }, - "fullDescription": { - "text": "Redundant nullability attribute used with declaration that cannot be directly referenced from other code", - "markdown": "Redundant nullability attribute used with declaration that cannot be directly referenced from other code" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NotObservableAnnotationRedundancy", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SuppressNullableWarningExpressionAsInvertedIsExpression", - "shortDescription": { - "text": "Nullable warning suppression operator might be confused with inverted 'is' expression" - }, - "fullDescription": { - "text": "'!is' looks like an inverted 'is' expression but instead applies nullable warning suppression operator to its operand", - "markdown": "'!is' looks like an inverted 'is' expression but instead applies nullable warning suppression operator to its operand" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "SuppressNullableWarningExpressionAsInvertedIsExpression", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyHicppUseOverride", - "shortDescription": { - "text": "hicpp-use-override clang-tidy check" - }, - "fullDescription": { - "text": "hicpp-use-override clang-tidy check · Learn more", - "markdown": "hicpp-use-override clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/use-override.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyHicppUseOverride", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp2bExtensions", - "shortDescription": { - "text": "c++2b-extensions clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++2b-extensions clang diagnostic · Learn more", - "markdown": "-Wc++2b-extensions clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-2b-extensions)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp2bExtensions", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneNotNullTerminatedResult", - "shortDescription": { - "text": "bugprone-not-null-terminated-result clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-not-null-terminated-result clang-tidy check · Learn more", - "markdown": "bugprone-not-null-terminated-result clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/not-null-terminated-result.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneNotNullTerminatedResult", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "BadPreprocessorIndent", - "shortDescription": { - "text": "Incorrect indent (around preprocessor directive)" - }, - "fullDescription": { - "text": "Around preprocessor directive Learn more...", - "markdown": "Around preprocessor directive [Learn more...](https://www.jetbrains.com/help/rider/BadPreprocessorIndent.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "BadPreprocessorIndent", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Formatting", - "index": 24, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.PerformanceCriticalCodeCameraMain", - "shortDescription": { - "text": "'Camera.main' is expensive" - }, - "fullDescription": { - "text": "'Camera.main' is slow and does not cache its result. Using 'Camera.main' in frequently called methods is very inefficient. Prefer caching the result in 'Start()' or 'Awake()'. Learn more...", - "markdown": "'Camera.main' is slow and does not cache its result. Using 'Camera.main' in frequently called methods is very inefficient. Prefer caching the result in 'Start()' or 'Awake()'. [Learn more...](https://github.com/JetBrains/resharper-unity/wiki/Camera.main-is-inefficient-in-frequently-called-methods)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "Unity.PerformanceCriticalCodeCameraMain", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity Performance Inspections", - "index": 128, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "FieldCanBeMadeReadOnly.Local", - "shortDescription": { - "text": "Field can be made readonly (private accessibility)" - }, - "fullDescription": { - "text": "Field has no write usages after initialization and can be made readonly Learn more...", - "markdown": "Field has no write usages after initialization and can be made readonly [Learn more...](https://www.jetbrains.com/help/rider/FieldCanBeMadeReadOnly.Local.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "FieldCanBeMadeReadOnly.Local", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPointerCompare", - "shortDescription": { - "text": "pointer-compare clang diagnostic" - }, - "fullDescription": { - "text": "-Wpointer-compare clang diagnostic · Learn more", - "markdown": "-Wpointer-compare clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpointer-compare)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPointerCompare", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppRedundantTemplateKeyword", - "shortDescription": { - "text": "Redundant 'template' keyword" - }, - "fullDescription": { - "text": "Redundant 'template' keyword", - "markdown": "Redundant 'template' keyword" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppRedundantTemplateKeyword", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Redundancies in Code", - "index": 34, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticAbstractVbaseInit", - "shortDescription": { - "text": "abstract-vbase-init clang diagnostic" - }, - "fullDescription": { - "text": "-Wabstract-vbase-init clang diagnostic · Learn more", - "markdown": "-Wabstract-vbase-init clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wabstract-vbase-init)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticAbstractVbaseInit", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticInvalidOrNonexistentDirectory", - "shortDescription": { - "text": "invalid-or-nonexistent-directory clang diagnostic" - }, - "fullDescription": { - "text": "-Winvalid-or-nonexistent-directory clang diagnostic · Learn more", - "markdown": "-Winvalid-or-nonexistent-directory clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winvalid-or-nonexistent-directory)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticInvalidOrNonexistentDirectory", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantJumpStatement", - "shortDescription": { - "text": "Redundant control flow jump statement" - }, - "fullDescription": { - "text": "Redundant control flow jump statement Learn more...", - "markdown": "Redundant control flow jump statement [Learn more...](https://www.jetbrains.com/help/rider/RedundantJumpStatement.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantJumpStatement", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1250", - "shortDescription": { - "text": "RoslynAnalyzers Use implicit/explicit object creation" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1250", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1251", - "shortDescription": { - "text": "RoslynAnalyzers Remove unnecessary braces from record declaration" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1251", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConvertToLambdaExpression", - "shortDescription": { - "text": "Convert into lambda expression" - }, - "fullDescription": { - "text": "Convert statement-bodied lambda into expression-bodied. Does not suggest the conversion when the expression contains nested closures or explicit side-effects. Learn more...", - "markdown": "Convert statement-bodied lambda into expression-bodied. Does not suggest the conversion when the expression contains nested closures or explicit side-effects. [Learn more...](https://www.jetbrains.com/help/rider/ConvertToLambdaExpression.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ConvertToLambdaExpression", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyLinuxkernelMustCheckErrs", - "shortDescription": { - "text": "linuxkernel-must-check-errs clang-tidy check" - }, - "fullDescription": { - "text": "linuxkernel-must-check-errs clang-tidy check · Learn more", - "markdown": "linuxkernel-must-check-errs clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/linuxkernel/must-check-errs.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyLinuxkernelMustCheckErrs", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticLogicalOpParentheses", - "shortDescription": { - "text": "logical-op-parentheses clang diagnostic" - }, - "fullDescription": { - "text": "-Wlogical-op-parentheses clang diagnostic · Learn more", - "markdown": "-Wlogical-op-parentheses clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wlogical-op-parentheses)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticLogicalOpParentheses", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS1587", - "shortDescription": { - "text": "XML comment is not placed on a valid language element" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/d3x6ez1z.aspx)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "CSharpWarnings__CS1587", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS1589", - "shortDescription": { - "text": "Unable to include XML fragment" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/3y857kz5.aspx)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "CSharpWarnings__CS1589", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpErrors", - "shortDescription": { - "text": "C# Compiler Errors" - }, - "fullDescription": { - "text": "C# Compiler Errors", - "markdown": "C# Compiler Errors" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "CSharpErrors", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Non configurable", - "index": 52, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS1584", - "shortDescription": { - "text": "Syntax error in XML comment" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/hz13h4se.aspx)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "CSharpWarnings__CS1584", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1249", - "shortDescription": { - "text": "RoslynAnalyzers Unnecessary null-forgiving operator" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "RCS1249", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS1580", - "shortDescription": { - "text": "Incorrect signature in XML comment" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/03t96cfx.aspx)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "CSharpWarnings__CS1580", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPotentiallyEvaluatedExpression", - "shortDescription": { - "text": "potentially-evaluated-expression clang diagnostic" - }, - "fullDescription": { - "text": "-Wpotentially-evaluated-expression clang diagnostic · Learn more", - "markdown": "-Wpotentially-evaluated-expression clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpotentially-evaluated-expression)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPotentiallyEvaluatedExpression", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MISMATCHED_ASMDEF_FILENAME", - "shortDescription": { - "text": "File name should match the name of the assembly" - }, - "fullDescription": { - "text": "To avoid confusion, the name of the assembly definition file should match the name of the assembly being defined.", - "markdown": "To avoid confusion, the name of the assembly definition file should match the name of the assembly being defined." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "MISMATCHED_ASMDEF_FILENAME", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1246", - "shortDescription": { - "text": "RoslynAnalyzers Use element access" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "RCS1246", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1247", - "shortDescription": { - "text": "RoslynAnalyzers Fix documentation comment tag" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1247", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantBaseConstructorCall", - "shortDescription": { - "text": "Redundant base constructor call" - }, - "fullDescription": { - "text": "Explicit call to the base class constructor with no arguments. It is generated by the compiler by default and can be omitted.", - "markdown": "Explicit call to the base class constructor with no arguments. It is generated by the compiler by default and can be omitted." - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "RedundantBaseConstructorCall", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1248", - "shortDescription": { - "text": "RoslynAnalyzers Normalize null check" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1248", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticComment", - "shortDescription": { - "text": "comment clang diagnostic" - }, - "fullDescription": { - "text": "-Wcomment clang diagnostic · Learn more", - "markdown": "-Wcomment clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcomment)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticComment", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1241", - "shortDescription": { - "text": "RoslynAnalyzers Implement non-generic counterpart" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1241", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantUsingDirective", - "shortDescription": { - "text": "Redundant using directive" - }, - "fullDescription": { - "text": "Using directive is not required by the code and can be safely removed Learn more...", - "markdown": "Using directive is not required by the code and can be safely removed [Learn more...](https://www.jetbrains.com/help/rider/RedundantUsingDirective.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "RedundantUsingDirective", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1242", - "shortDescription": { - "text": "RoslynAnalyzers Do not pass non-read-only struct by read-only reference" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RCS1242", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1243", - "shortDescription": { - "text": "RoslynAnalyzers Duplicate word in a comment" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1243", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticTypedefRedefinition", - "shortDescription": { - "text": "typedef-redefinition clang diagnostic" - }, - "fullDescription": { - "text": "-Wtypedef-redefinition clang diagnostic · Learn more", - "markdown": "-Wtypedef-redefinition clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wtypedef-redefinition)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticTypedefRedefinition", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1244", - "shortDescription": { - "text": "RoslynAnalyzers Simplify 'default' expression" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1244", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1240", - "shortDescription": { - "text": "RoslynAnalyzers Operator is unnecessary" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1240", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyFuchsiaMultipleInheritance", - "shortDescription": { - "text": "fuchsia-multiple-inheritance clang-tidy check" - }, - "fullDescription": { - "text": "fuchsia-multiple-inheritance clang-tidy check · Learn more", - "markdown": "fuchsia-multiple-inheritance clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/fuchsia/multiple-inheritance.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyFuchsiaMultipleInheritance", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ArrangeNullCheckingPattern", - "shortDescription": { - "text": "Arrange null checking pattern" - }, - "fullDescription": { - "text": "Use preferred null checking pattern style (either 'not null' or '{ }') Learn more...", - "markdown": "Use preferred null checking pattern style (either 'not null' or '{ }') [Learn more...](https://www.jetbrains.com/help/rider/ArrangeNullCheckingPattern.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ArrangeNullCheckingPattern", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Syntax Style", - "index": 21, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantQueryOrderByAscendingKeyword", - "shortDescription": { - "text": "Redundant 'orderby' clause 'ascending' keyword" - }, - "fullDescription": { - "text": "LINQ query syntax 'orderby' clause sorting is 'ascending' by default", - "markdown": "LINQ query syntax 'orderby' clause sorting is 'ascending' by default" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RedundantQueryOrderByAscendingKeyword", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "StructLacksIEquatable.Local", - "shortDescription": { - "text": "Struct lacks 'IEquatable' implementation (private accessibility)" - }, - "fullDescription": { - "text": "Struct overrides equality members but lacks an 'IEquatable' implementation. To prevent boxing in a generic context, implement 'IEquatable'. This inspection only triggers when the struct or its containing type (such as record) is actually used for equality comparisons in the solution. Learn more...", - "markdown": "Struct overrides equality members but lacks an 'IEquatable' implementation. To prevent boxing in a generic context, implement 'IEquatable'. This inspection only triggers when the struct or its containing type (such as record) is actually used for equality comparisons in the solution. [Learn more...](https://www.jetbrains.com/help/rider/StructLacksIEquatable.Local.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "StructLacksIEquatable.Local", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1238", - "shortDescription": { - "text": "RoslynAnalyzers Avoid nested ?: operators" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1238", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS1590", - "shortDescription": { - "text": "Invalid XML include element" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/549c3y6s.aspx)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS1590", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1239", - "shortDescription": { - "text": "RoslynAnalyzers Use 'for' statement instead of 'while' statement" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1239", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS1591", - "shortDescription": { - "text": "Missing XML comment for publicly visible type or member" - }, - "fullDescription": { - "text": "Compiler only produces XML documentation related warnings when 'XML Documentation' output generation option is enabled in project configuration settings (Project | Properties) Learn more...", - "markdown": "Compiler only produces XML documentation related warnings when 'XML Documentation' output generation option is enabled in project configuration settings (Project \\| Properties) [Learn more...](https://msdn.microsoft.com/en-us/library/zk18c1w9.aspx)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS1591", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS1592", - "shortDescription": { - "text": "Badly formed XML in included comments file" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/89c331t3.aspx)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS1592", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticStaticInlineExplicitInstantiation", - "shortDescription": { - "text": "static-inline-explicit-instantiation clang diagnostic" - }, - "fullDescription": { - "text": "-Wstatic-inline-explicit-instantiation clang diagnostic · Learn more", - "markdown": "-Wstatic-inline-explicit-instantiation clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wstatic-inline-explicit-instantiation)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticStaticInlineExplicitInstantiation", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1234", - "shortDescription": { - "text": "RoslynAnalyzers Duplicate enum value" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1234", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1235", - "shortDescription": { - "text": "RoslynAnalyzers Optimize method call" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1235", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1236", - "shortDescription": { - "text": "RoslynAnalyzers Use exception filter" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1236", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1237", - "shortDescription": { - "text": "RoslynAnalyzers [deprecated] Use bit shift operator" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1237", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1230", - "shortDescription": { - "text": "RoslynAnalyzers Unnecessary explicit use of enumerator" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1230", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1231", - "shortDescription": { - "text": "RoslynAnalyzers Make parameter ref read-only" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1231", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1232", - "shortDescription": { - "text": "RoslynAnalyzers Order elements in documentation comment" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1232", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1233", - "shortDescription": { - "text": "RoslynAnalyzers Use short-circuiting operator" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1233", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CollectionNeverQueried.Global", - "shortDescription": { - "text": "Collection content is never queried (non-private accessibility)" - }, - "fullDescription": { - "text": "Elements are only added to the collection but never used Learn more...", - "markdown": "Elements are only added to the collection but never used [Learn more...](https://www.jetbrains.com/help/rider/CollectionNeverQueried.Global.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CollectionNeverQueried.Global", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "BaseMemberHasParams", - "shortDescription": { - "text": "Base member has 'params' parameter, but the overrider does not have it" - }, - "fullDescription": { - "text": "Base member has 'params' parameter, but the overrider does not have it", - "markdown": "Base member has 'params' parameter, but the overrider does not have it" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "BaseMemberHasParams", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnusedExceptionParameter", - "shortDescription": { - "text": "unused-exception-parameter clang diagnostic" - }, - "fullDescription": { - "text": "-Wunused-exception-parameter clang diagnostic · Learn more", - "markdown": "-Wunused-exception-parameter clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunused-exception-parameter)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnusedExceptionParameter", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneNonZeroEnumToBoolConversion", - "shortDescription": { - "text": "bugprone-non-zero-enum-to-bool-conversion clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-non-zero-enum-to-bool-conversion clang-tidy check · Learn more", - "markdown": "bugprone-non-zero-enum-to-bool-conversion clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/non-zero-enum-to-bool-conversion.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneNonZeroEnumToBoolConversion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppZeroConstantCanBeReplacedWithNullptr", - "shortDescription": { - "text": "Zero constant can be replaced with nullptr" - }, - "fullDescription": { - "text": "Zero constant can be replaced with nullptr Learn more...", - "markdown": "Zero constant can be replaced with nullptr [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Res-nullptr)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppZeroConstantCanBeReplacedWithNullptr", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Common Practices and Code Improvements", - "index": 16, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AnnotationConflictInHierarchy", - "shortDescription": { - "text": "Annotation conflict in hierarchy" - }, - "fullDescription": { - "text": "There is base member that has conflicting nullness annotation", - "markdown": "There is base member that has conflicting nullness annotation" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "AnnotationConflictInHierarchy", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Mvc.InvalidModelType", - "shortDescription": { - "text": "MVC (mismatch Model Type)" - }, - "fullDescription": { - "text": "Mismatch ASP.NET MVC Model Type", - "markdown": "Mismatch ASP.NET MVC Model Type" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "Mvc.InvalidModelType", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Aspx/Potential Code Quality Issues", - "index": 64, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneMultipleStatementMacro", - "shortDescription": { - "text": "bugprone-multiple-statement-macro clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-multiple-statement-macro clang-tidy check · Learn more", - "markdown": "bugprone-multiple-statement-macro clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/multiple-statement-macro.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneMultipleStatementMacro", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticOrderedCompareFunctionPointers", - "shortDescription": { - "text": "ordered-compare-function-pointers clang diagnostic" - }, - "fullDescription": { - "text": "-Wordered-compare-function-pointers clang diagnostic · Learn more", - "markdown": "-Wordered-compare-function-pointers clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wordered-compare-function-pointers)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticOrderedCompareFunctionPointers", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDeprecatedDynamicExceptionSpec", - "shortDescription": { - "text": "deprecated-dynamic-exception-spec clang diagnostic" - }, - "fullDescription": { - "text": "-Wdeprecated-dynamic-exception-spec clang diagnostic · Learn more", - "markdown": "-Wdeprecated-dynamic-exception-spec clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-dynamic-exception-spec)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedDynamicExceptionSpec", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticExtractapiMisuse", - "shortDescription": { - "text": "extractapi-misuse clang diagnostic" - }, - "fullDescription": { - "text": "-Wextractapi-misuse clang diagnostic · Learn more", - "markdown": "-Wextractapi-misuse clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wextractapi-misuse)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticExtractapiMisuse", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1267", - "shortDescription": { - "text": "RoslynAnalyzers Use string interpolation instead of 'string.Concat'" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "RCS1267", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerOptinPortabilityUnixAPI", - "shortDescription": { - "text": "optin.portability.UnixAPI clang static analyzer check" - }, - "fullDescription": { - "text": "optin.portability.UnixAPI clang static analyzer check · Learn more", - "markdown": "optin.portability.UnixAPI clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerOptinPortabilityUnixAPI", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1268", - "shortDescription": { - "text": "RoslynAnalyzers Simplify numeric comparison" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1268", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "InactivePreprocessorBranch", - "shortDescription": { - "text": "Inactive preprocessor branch" - }, - "fullDescription": { - "text": "Inactive preprocessor branch", - "markdown": "Inactive preprocessor branch" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "InactivePreprocessorBranch", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Code Notification", - "index": 166, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "InvocationIsSkipped", - "shortDescription": { - "text": "Method invocation is skipped" - }, - "fullDescription": { - "text": "Method invocation is skipped. Compiler will not generate method invocation because the method is conditional, or it is a partial method without implementation. Learn more...", - "markdown": "Method invocation is skipped. Compiler will not generate method invocation because the method is conditional, or it is a partial method without implementation. [Learn more...](https://www.jetbrains.com/help/rider/InvocationIsSkipped.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "InvocationIsSkipped", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Code Notification", - "index": 160, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1263", - "shortDescription": { - "text": "RoslynAnalyzers Invalid reference in a documentation comment" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RCS1263", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerOsxCoreFoundationCFNumber", - "shortDescription": { - "text": "osx.coreFoundation.CFNumber clang static analyzer check" - }, - "fullDescription": { - "text": "osx.coreFoundation.CFNumber clang static analyzer check · Learn more", - "markdown": "osx.coreFoundation.CFNumber clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerOsxCoreFoundationCFNumber", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1264", - "shortDescription": { - "text": "RoslynAnalyzers Use 'var' or explicit type" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1264", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1265", - "shortDescription": { - "text": "RoslynAnalyzers Remove redundant catch block" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1265", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1266", - "shortDescription": { - "text": "RoslynAnalyzers Use raw string literal" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "RCS1266", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1260", - "shortDescription": { - "text": "RoslynAnalyzers Add/remove trailing comma" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1260", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1261", - "shortDescription": { - "text": "RoslynAnalyzers Resource can be disposed asynchronously" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1261", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1262", - "shortDescription": { - "text": "RoslynAnalyzers Unnecessary raw string literal" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1262", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDeleteNonVirtualDtor", - "shortDescription": { - "text": "delete-non-virtual-dtor clang diagnostic" - }, - "fullDescription": { - "text": "-Wdelete-non-virtual-dtor clang diagnostic · Learn more", - "markdown": "-Wdelete-non-virtual-dtor clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdelete-non-virtual-dtor)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDeleteNonVirtualDtor", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMicrosoftCharize", - "shortDescription": { - "text": "microsoft-charize clang diagnostic" - }, - "fullDescription": { - "text": "-Wmicrosoft-charize clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-charize clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-charize)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftCharize", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCalledOnceParameter", - "shortDescription": { - "text": "called-once-parameter clang diagnostic" - }, - "fullDescription": { - "text": "-Wcalled-once-parameter clang diagnostic · Learn more", - "markdown": "-Wcalled-once-parameter clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcalled-once-parameter)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCalledOnceParameter", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS1571", - "shortDescription": { - "text": "Duplicate param tag in XML comment" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/a5c6cbk0.aspx)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "CSharpWarnings__CS1571", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS1572", - "shortDescription": { - "text": "XML comment has a 'param' tag for 'Parameter', but there is no parameter by that name" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS1572", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS1573", - "shortDescription": { - "text": "Parameter has no matching param tag in the XML comment" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/01248w2b.aspx)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "CSharpWarnings__CS1573", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS1574", - "shortDescription": { - "text": "Ambiguous reference in XML comment" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/26x4hk2a.aspx)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "CSharpWarnings__CS1574", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReturnTypeCanBeEnumerable.Global", - "shortDescription": { - "text": "Return type can be IEnumerable<T> (non-private accessibility)" - }, - "fullDescription": { - "text": "All usages of a method (or read-only property/indexer) use returned value as IEnumerable, but it is declared with more specific type (e.g. List) Learn more...", - "markdown": "All usages of a method (or read-only property/indexer) use returned value as IEnumerable, but it is declared with more specific type (e.g. List) [Learn more...](https://www.jetbrains.com/help/rider/ReturnTypeCanBeEnumerable.Global.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReturnTypeCanBeEnumerable.Global", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS1570", - "shortDescription": { - "text": "Invalid XML in XML comment" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/c20zzdxx.aspx)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "CSharpWarnings__CS1570", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBWarnings__BC40000", - "shortDescription": { - "text": "Use obsolete member" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "VBWarnings__BC40000", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Compiler Warnings", - "index": 110, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1256", - "shortDescription": { - "text": "RoslynAnalyzers Invalid argument null check" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "RCS1256", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1257", - "shortDescription": { - "text": "RoslynAnalyzers Use enum field explicitly" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1257", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1258", - "shortDescription": { - "text": "RoslynAnalyzers Unnecessary enum flag" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1258", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1259", - "shortDescription": { - "text": "RoslynAnalyzers Remove empty syntax" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1259", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1252", - "shortDescription": { - "text": "RoslynAnalyzers Normalize usage of infinite loop" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1252", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1253", - "shortDescription": { - "text": "RoslynAnalyzers Format documentation comment summary" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1253", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1254", - "shortDescription": { - "text": "RoslynAnalyzers Normalize format of enum flag value" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1254", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBWarnings__BC40008", - "shortDescription": { - "text": "Use obsolete member (without message)" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/s5f0ewa6.aspx)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "VBWarnings__BC40008", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Compiler Warnings", - "index": 110, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1255", - "shortDescription": { - "text": "RoslynAnalyzers Simplify argument null check" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1255", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithOfType.First.1", - "shortDescription": { - "text": "Replace with OfType<T>().First()" - }, - "fullDescription": { - "text": "$seq$.Select($x$ => $x$ as $T$).First($y$ => $y$ != null)", - "markdown": "$seq$.Select($x$ =\\> $x$ as $T$).First($y$ =\\> $y$ != null)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithOfType.First.1", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticFormatExtraArgs", - "shortDescription": { - "text": "format-extra-args clang diagnostic" - }, - "fullDescription": { - "text": "-Wformat-extra-args clang diagnostic · Learn more", - "markdown": "-Wformat-extra-args clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wformat-extra-args)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticFormatExtraArgs", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithOfType.First.2", - "shortDescription": { - "text": "Replace with OfType<T>().First() (replace with OfType<T>().First(..))" - }, - "fullDescription": { - "text": "$seq$.Select($x$ => $x$ as $T$).First($y$ => $y$ != null && $expr$)", - "markdown": "$seq$.Select($x$ =\\> $x$ as $T$).First($y$ =\\> $y$ != null \\&\\& $expr$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithOfType.First.2", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBStringIndexOfIsCultureSpecific.1", - "shortDescription": { - "text": "String.IndexOf is culture-specific (string.IndexOf(string) is culture-specific)" - }, - "fullDescription": { - "text": "$s$.IndexOf($sarg$)", - "markdown": "$s$.IndexOf($sarg$)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "VBStringIndexOfIsCultureSpecific.1", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBStringIndexOfIsCultureSpecific.3", - "shortDescription": { - "text": "String.IndexOf is culture-specific (string.IndexOf(string, int) is culture-specific)" - }, - "fullDescription": { - "text": "$s$.IndexOf($sarg$, $iarg1$, $iarg2$)", - "markdown": "$s$.IndexOf($sarg$, $iarg1$, $iarg2$)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "VBStringIndexOfIsCultureSpecific.3", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyAndroidCloexecEpollCreate1", - "shortDescription": { - "text": "android-cloexec-epoll-create1 clang-tidy check" - }, - "fullDescription": { - "text": "android-cloexec-epoll-create1 clang-tidy check · Learn more", - "markdown": "android-cloexec-epoll-create1 clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/android/cloexec-epoll-create1.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyAndroidCloexecEpollCreate1", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBStringIndexOfIsCultureSpecific.2", - "shortDescription": { - "text": "String.IndexOf is culture-specific (string.IndexOf(string, int) is culture-specific)" - }, - "fullDescription": { - "text": "$s$.IndexOf($sarg$, $iarg1$)", - "markdown": "$s$.IndexOf($sarg$, $iarg1$)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "VBStringIndexOfIsCultureSpecific.2", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneSwappedArguments", - "shortDescription": { - "text": "bugprone-swapped-arguments clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-swapped-arguments clang-tidy check · Learn more", - "markdown": "bugprone-swapped-arguments clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/swapped-arguments.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneSwappedArguments", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1209", - "shortDescription": { - "text": "RoslynAnalyzers Order type parameter constraints" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1209", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1205", - "shortDescription": { - "text": "RoslynAnalyzers Order named arguments according to the order of parameters" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "RCS1205", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1206", - "shortDescription": { - "text": "RoslynAnalyzers Use conditional access instead of conditional expression" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1206", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0161", - "shortDescription": { - "text": "RoslynAnalyzers Convert to file-scoped namespace" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0161", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0160", - "shortDescription": { - "text": "RoslynAnalyzers Convert to block scoped namespace" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0160", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1207", - "shortDescription": { - "text": "RoslynAnalyzers Use anonymous function or method group" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1207", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1208", - "shortDescription": { - "text": "RoslynAnalyzers Reduce 'if' nesting" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1208", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1201", - "shortDescription": { - "text": "RoslynAnalyzers Use method chaining" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1201", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppReplaceMemsetWithZeroInitialization", - "shortDescription": { - "text": "Zero initialization can be used instead of memset" - }, - "fullDescription": { - "text": "Zero initialization can be used instead of memset Learn more...", - "markdown": "Zero initialization can be used instead of memset [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rc-memset)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppReplaceMemsetWithZeroInitialization", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Common Practices and Code Improvements", - "index": 16, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1202", - "shortDescription": { - "text": "RoslynAnalyzers Avoid NullReferenceException" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1202", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1203", - "shortDescription": { - "text": "RoslynAnalyzers Use AttributeUsageAttribute" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RCS1203", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantVerbatimStringPrefix", - "shortDescription": { - "text": "Redundant verbatim string prefix" - }, - "fullDescription": { - "text": "String can be converted into a regular string without any changes Learn more...", - "markdown": "String can be converted into a regular string without any changes [Learn more...](https://www.jetbrains.com/help/rider/RedundantVerbatimStringPrefix.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "RedundantVerbatimStringPrefix", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1204", - "shortDescription": { - "text": "RoslynAnalyzers Use EventArgs.Empty" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1204", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1200", - "shortDescription": { - "text": "RoslynAnalyzers Call 'Enumerable.ThenBy' instead of 'Enumerable.OrderBy'" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1200", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnusablePartialSpecialization", - "shortDescription": { - "text": "unusable-partial-specialization clang diagnostic" - }, - "fullDescription": { - "text": "-Wunusable-partial-specialization clang diagnostic · Learn more", - "markdown": "-Wunusable-partial-specialization clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunusable-partial-specialization)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnusablePartialSpecialization", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CA2252", - "shortDescription": { - "text": "Opt in to preview features before using them." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca2252)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "CSharpWarnings__CA2252", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IsExpressionAlwaysTrue", - "shortDescription": { - "text": "The given expression of 'is' operator is always of the provided type" - }, - "fullDescription": { - "text": "The expression of 'is' operator is always of the provided type Learn more...", - "markdown": "The expression of 'is' operator is always of the provided type [Learn more...](https://www.jetbrains.com/help/rider/IsExpressionAlwaysTrue.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "IsExpressionAlwaysTrue", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneIncDecInConditions", - "shortDescription": { - "text": "bugprone-inc-dec-in-conditions clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-inc-dec-in-conditions clang-tidy check · Learn more", - "markdown": "bugprone-inc-dec-in-conditions clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/inc-dec-in-conditions.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneIncDecInConditions", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppPrintfMissedArg", - "shortDescription": { - "text": "Not enough arguments in a call to printf" - }, - "fullDescription": { - "text": "Not enough arguments in a call to printf. Some format directives do not have matching arguments.", - "markdown": "Not enough arguments in a call to printf. Some format directives do not have matching arguments." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "CppPrintfMissedArg", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantBoolCompare", - "shortDescription": { - "text": "Redundant boolean comparison" - }, - "fullDescription": { - "text": "Comparison of a boolean value with 'true' or 'false' constant", - "markdown": "Comparison of a boolean value with 'true' or 'false' constant" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "RedundantBoolCompare", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AccessToModifiedClosure", - "shortDescription": { - "text": "Access to modified captured variable" - }, - "fullDescription": { - "text": "Access to captured variable from anonymous method when the variable is modified externally Learn more...", - "markdown": "Access to captured variable from anonymous method when the variable is modified externally [Learn more...](https://www.jetbrains.com/help/rider/AccessToModifiedClosure.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "AccessToModifiedClosure", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantStringFormatCall", - "shortDescription": { - "text": "Redundant 'string.Format()' call" - }, - "fullDescription": { - "text": "Redundant 'string.Format()' call Learn more...", - "markdown": "Redundant 'string.Format()' call [Learn more...](https://www.jetbrains.com/help/rider/RedundantStringFormatCall.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "RedundantStringFormatCall", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0170", - "shortDescription": { - "text": "RoslynAnalyzers Property pattern can be simplified" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0170", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "LambdaExpressionMustBeStatic", - "shortDescription": { - "text": "Lambda expression/anonymous method must be 'static' to avoid allocations" - }, - "fullDescription": { - "text": "Lambda expression/anonymous method passed to parameter annotated by '[RequireStaticDelegate]' must be 'static' to help avoid introducing heap allocations", - "markdown": "Lambda expression/anonymous method passed to parameter annotated by '\\[RequireStaticDelegate\\]' must be 'static' to help avoid introducing heap allocations" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "LambdaExpressionMustBeStatic", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnknownSanitizers", - "shortDescription": { - "text": "unknown-sanitizers clang diagnostic" - }, - "fullDescription": { - "text": "-Wunknown-sanitizers clang diagnostic · Learn more", - "markdown": "-Wunknown-sanitizers clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunknown-sanitizers)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnknownSanitizers", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PossibleUnintendedLinearSearchInSet", - "shortDescription": { - "text": "Possibly unintended linear search in set" - }, - "fullDescription": { - "text": "Usage of 'Enumerable.Contains' extension method will perform a linear search. Consider providing equality comparer to the set's constructor and using its own '.Contains' method.", - "markdown": "Usage of 'Enumerable.Contains' extension method will perform a linear search. Consider providing equality comparer to the set's constructor and using its own '.Contains' method." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "PossibleUnintendedLinearSearchInSet", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EnforceForeachStatementBraces", - "shortDescription": { - "text": "Use preferred braces style (enforce braces in 'foreach' statement)" - }, - "fullDescription": { - "text": "Use braces to separate 'foreach' statement body Learn more...", - "markdown": "Use braces to separate 'foreach' statement body [Learn more...](https://www.jetbrains.com/help/rider/EnforceForeachStatementBraces.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "EnforceForeachStatementBraces", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Syntax Style", - "index": 21, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyPerformanceUnnecessaryCopyInitialization", - "shortDescription": { - "text": "performance-unnecessary-copy-initialization clang-tidy check" - }, - "fullDescription": { - "text": "performance-unnecessary-copy-initialization clang-tidy check · Learn more", - "markdown": "performance-unnecessary-copy-initialization clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance/unnecessary-copy-initialization.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyPerformanceUnnecessaryCopyInitialization", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppEntityAssignedButNoRead", - "shortDescription": { - "text": "Declarator is only assigned but never accessed" - }, - "fullDescription": { - "text": "A declarator is only assigned but never accessed", - "markdown": "A declarator is only assigned but never accessed" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppEntityAssignedButNoRead", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnusedGetterReturnValue", - "shortDescription": { - "text": "unused-getter-return-value clang diagnostic" - }, - "fullDescription": { - "text": "-Wunused-getter-return-value clang diagnostic · Learn more", - "markdown": "-Wunused-getter-return-value clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunused-getter-return-value)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnusedGetterReturnValue", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticAmbiguousEllipsis", - "shortDescription": { - "text": "ambiguous-ellipsis clang diagnostic" - }, - "fullDescription": { - "text": "-Wambiguous-ellipsis clang diagnostic · Learn more", - "markdown": "-Wambiguous-ellipsis clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wambiguous-ellipsis)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticAmbiguousEllipsis", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AsxxErrors", - "shortDescription": { - "text": "Asxx Errors" - }, - "fullDescription": { - "text": "Asxx Errors", - "markdown": "Asxx Errors" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "AsxxErrors", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HttpHandler or WebService/Non configurable", - "index": 167, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticFloatEqual", - "shortDescription": { - "text": "float-equal clang diagnostic" - }, - "fullDescription": { - "text": "-Wfloat-equal clang diagnostic · Learn more", - "markdown": "-Wfloat-equal clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wfloat-equal)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticFloatEqual", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "DefaultValueAttributeForOptionalParameter", - "shortDescription": { - "text": "Possibly misleading 'DefaultValueAttribute' usage to define optional parameter value" - }, - "fullDescription": { - "text": "Possibly misleading 'DefaultValueAttribute' usage to define optional parameter value. 'DefaultParameterValueAttribute' must be used instead.", - "markdown": "Possibly misleading 'DefaultValueAttribute' usage to define optional parameter value. 'DefaultParameterValueAttribute' must be used instead." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "DefaultValueAttributeForOptionalParameter", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMisleadingIndentation", - "shortDescription": { - "text": "misleading-indentation clang diagnostic" - }, - "fullDescription": { - "text": "-Wmisleading-indentation clang diagnostic · Learn more", - "markdown": "-Wmisleading-indentation clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmisleading-indentation)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMisleadingIndentation", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0180", - "shortDescription": { - "text": "RoslynAnalyzers Use tuple to swap values" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0180", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityRedundantSmartptrGet", - "shortDescription": { - "text": "readability-redundant-smartptr-get clang-tidy check" - }, - "fullDescription": { - "text": "readability-redundant-smartptr-get clang-tidy check · Learn more", - "markdown": "readability-redundant-smartptr-get clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/redundant-smartptr-get.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityRedundantSmartptrGet", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1227", - "shortDescription": { - "text": "RoslynAnalyzers Validate arguments correctly" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "RCS1227", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1228", - "shortDescription": { - "text": "RoslynAnalyzers Unused element in a documentation comment" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1228", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1229", - "shortDescription": { - "text": "RoslynAnalyzers Use async/await when necessary" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1229", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "FSharpConsWithEmptyListPat", - "shortDescription": { - "text": "Redundant concatenation with empty list" - }, - "fullDescription": { - "text": "Redundant concatenation with empty list.", - "markdown": "Redundant concatenation with empty list." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "FSharpConsWithEmptyListPat", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "F#/Redundancies in Code", - "index": 73, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDanglingInitializerList", - "shortDescription": { - "text": "dangling-initializer-list clang diagnostic" - }, - "fullDescription": { - "text": "-Wdangling-initializer-list clang diagnostic · Learn more", - "markdown": "-Wdangling-initializer-list clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdangling-initializer-list)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDanglingInitializerList", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticIncompatibleLibraryRedeclaration", - "shortDescription": { - "text": "incompatible-library-redeclaration clang diagnostic" - }, - "fullDescription": { - "text": "-Wincompatible-library-redeclaration clang diagnostic · Learn more", - "markdown": "-Wincompatible-library-redeclaration clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wincompatible-library-redeclaration)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticIncompatibleLibraryRedeclaration", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1223", - "shortDescription": { - "text": "RoslynAnalyzers Mark publicly visible type with DebuggerDisplay attribute" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1223", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppRedundantTemplateArguments", - "shortDescription": { - "text": "Redundant template arguments" - }, - "fullDescription": { - "text": "Redundant template arguments", - "markdown": "Redundant template arguments" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppRedundantTemplateArguments", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Redundancies in Code", - "index": 34, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1224", - "shortDescription": { - "text": "RoslynAnalyzers Make method an extension method" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1224", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMicrosoftExceptionSpec", - "shortDescription": { - "text": "microsoft-exception-spec clang diagnostic" - }, - "fullDescription": { - "text": "-Wmicrosoft-exception-spec clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-exception-spec clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-exception-spec)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftExceptionSpec", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1225", - "shortDescription": { - "text": "RoslynAnalyzers Make class sealed" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1225", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1226", - "shortDescription": { - "text": "RoslynAnalyzers Add paragraph to documentation comment" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1226", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp14BinaryLiteral", - "shortDescription": { - "text": "c++14-binary-literal clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++14-binary-literal clang diagnostic · Learn more", - "markdown": "-Wc++14-binary-literal clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-14-binary-literal)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp14BinaryLiteral", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1220", - "shortDescription": { - "text": "RoslynAnalyzers Use pattern matching instead of combination of 'is' operator and cast operator" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1220", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1221", - "shortDescription": { - "text": "RoslynAnalyzers Use pattern matching instead of combination of 'as' operator and null check" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1221", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1222", - "shortDescription": { - "text": "RoslynAnalyzers Merge preprocessor directives" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1222", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnusedAutoPropertyAccessor.Global", - "shortDescription": { - "text": "Auto-property accessor is never used (non-private accessibility)" - }, - "fullDescription": { - "text": "Accessor in auto-property is never used Learn more...", - "markdown": "Accessor in auto-property is never used [Learn more...](https://www.jetbrains.com/help/rider/UnusedAutoPropertyAccessor.Global.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "UnusedAutoPropertyAccessor.Global", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyDarwinDispatchOnceNonstatic", - "shortDescription": { - "text": "darwin-dispatch-once-nonstatic clang-tidy check" - }, - "fullDescription": { - "text": "darwin-dispatch-once-nonstatic clang-tidy check · Learn more", - "markdown": "darwin-dispatch-once-nonstatic clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/darwin/dispatch-once-nonstatic.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyDarwinDispatchOnceNonstatic", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithSingleCallToFirst", - "shortDescription": { - "text": "Replace with single call to First(..)" - }, - "fullDescription": { - "text": "$seq$.Where($x$ => $expr$).First()", - "markdown": "$seq$.Where($x$ =\\> $expr$).First()" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithSingleCallToFirst", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyLlvmElseAfterReturn", - "shortDescription": { - "text": "llvm-else-after-return clang-tidy check" - }, - "fullDescription": { - "text": "llvm-else-after-return clang-tidy check · Learn more", - "markdown": "llvm-else-after-return clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/llvm/else-after-return.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyLlvmElseAfterReturn", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UsageOfDefaultStructEquality", - "shortDescription": { - "text": "Usage of default struct equality" - }, - "fullDescription": { - "text": "Default implementations of the 'Equals' and 'GetHashCode' methods of a struct are reflection-based and bad-performing Learn more...", - "markdown": "Default implementations of the 'Equals' and 'GetHashCode' methods of a struct are reflection-based and bad-performing [Learn more...](https://www.jetbrains.com/help/rider/UsageOfDefaultStructEquality.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "UsageOfDefaultStructEquality", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDeprecateLaxVecConvAll", - "shortDescription": { - "text": "deprecate-lax-vec-conv-all clang diagnostic" - }, - "fullDescription": { - "text": "-Wdeprecate-lax-vec-conv-all clang diagnostic · Learn more", - "markdown": "-Wdeprecate-lax-vec-conv-all clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecate-lax-vec-conv-all)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDeprecateLaxVecConvAll", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CanReplaceCastWithLambdaReturnType", - "shortDescription": { - "text": "Cast expression can be replaced with lambda return type" - }, - "fullDescription": { - "text": "Replace cast expression with lambda return type to enhance compile-time safety Learn more...", - "markdown": "Replace cast expression with lambda return type to enhance compile-time safety [Learn more...](https://www.jetbrains.com/help/rider/CanReplaceCastWithLambdaReturnType.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "CanReplaceCastWithLambdaReturnType", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1216", - "shortDescription": { - "text": "RoslynAnalyzers Unnecessary unsafe context" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1216", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1217", - "shortDescription": { - "text": "RoslynAnalyzers Convert interpolated string to concatenation" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1217", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS0282", - "shortDescription": { - "text": "There is no defined ordering between fields in multiple declarations of partial struct. To specify an ordering, all instance fields must be in the same declaration." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/misc/cs0282)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS0282", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticEnumCompareConditional", - "shortDescription": { - "text": "enum-compare-conditional clang diagnostic" - }, - "fullDescription": { - "text": "-Wenum-compare-conditional clang diagnostic · Learn more", - "markdown": "-Wenum-compare-conditional clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wenum-compare-conditional)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticEnumCompareConditional", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1218", - "shortDescription": { - "text": "RoslynAnalyzers Simplify code branching" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1218", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCoveredSwitchDefault", - "shortDescription": { - "text": "covered-switch-default clang diagnostic" - }, - "fullDescription": { - "text": "-Wcovered-switch-default clang diagnostic · Learn more", - "markdown": "-Wcovered-switch-default clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcovered-switch-default)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCoveredSwitchDefault", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1212", - "shortDescription": { - "text": "RoslynAnalyzers Remove redundant assignment" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1212", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1213", - "shortDescription": { - "text": "RoslynAnalyzers Remove unused member declaration" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1213", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1214", - "shortDescription": { - "text": "RoslynAnalyzers Unnecessary interpolated string" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "RCS1214", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1215", - "shortDescription": { - "text": "RoslynAnalyzers Expression is always equal to true/false" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RCS1215", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithPrimaryConstructorParameter", - "shortDescription": { - "text": "Replace with primary constructor parameter" - }, - "fullDescription": { - "text": "Replace explicit field declaration with a corresponding primary constructor parameter", - "markdown": "Replace explicit field declaration with a corresponding primary constructor parameter" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithPrimaryConstructorParameter", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "XMLWarnings", - "shortDescription": { - "text": "XML Warnings" - }, - "fullDescription": { - "text": "XML Warnings", - "markdown": "XML Warnings" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "XMLWarnings", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XML/Non configurable", - "index": 168, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1210", - "shortDescription": { - "text": "RoslynAnalyzers Return completed task instead of returning null" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RCS1210", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Mvc.ViewComponentNotResolved", - "shortDescription": { - "text": "MVC (unknown view component)" - }, - "fullDescription": { - "text": "Unknown ASP.NET MVC View Component", - "markdown": "Unknown ASP.NET MVC View Component" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Mvc.ViewComponentNotResolved", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Aspx/Potential Code Quality Issues", - "index": 64, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticReturnType", - "shortDescription": { - "text": "return-type clang diagnostic" - }, - "fullDescription": { - "text": "-Wreturn-type clang diagnostic · Learn more", - "markdown": "-Wreturn-type clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wreturn-type)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticReturnType", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseNameofExpressionForPartOfTheString", - "shortDescription": { - "text": "Use 'nameof' expression to reference name in part of the string literal" - }, - "fullDescription": { - "text": "Replace part of the string literal with statically typed 'nameof' expression", - "markdown": "Replace part of the string literal with statically typed 'nameof' expression" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UseNameofExpressionForPartOfTheString", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1211", - "shortDescription": { - "text": "RoslynAnalyzers Remove unnecessary 'else'" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1211", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerApiModelingErrno", - "shortDescription": { - "text": "apiModeling.Errno clang static analyzer check" - }, - "fullDescription": { - "text": "apiModeling.Errno clang static analyzer check · Learn more", - "markdown": "apiModeling.Errno clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerApiModelingErrno", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2356", - "shortDescription": { - "text": "RoslynAnalyzers Unsafe DataSet or DataTable type in web deserializable object graph" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2356", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1024", - "shortDescription": { - "text": "RoslynAnalyzers Use properties where appropriate" - }, - "fullDescription": { - "text": "A public or protected method has a name that starts with \"\"Get\"\", takes no parameters, and returns a value that is not an array. The method might be a good candidate to become a property.", - "markdown": "A public or protected method has a name that starts with \"\"Get\"\", takes no parameters, and returns a value that is not an array. The method might be a good candidate to become a property." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1024", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit2046", - "shortDescription": { - "text": "RoslynAnalyzers Use CollectionConstraint for better assertion messages in case of failure" - }, - "fullDescription": { - "text": "Use Has.Length/Has.Count/Is.Empty instead of testing property directly.", - "markdown": "Use Has.Length/Has.Count/Is.Empty instead of testing property directly." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "NUnit2046", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0009", - "shortDescription": { - "text": "RoslynAnalyzers Member access should be qualified." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0009", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0008", - "shortDescription": { - "text": "RoslynAnalyzers Use explicit type" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0008", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit2047", - "shortDescription": { - "text": "RoslynAnalyzers Incompatible types for Within constraint" - }, - "fullDescription": { - "text": "The Within modifier should only be used for numeric or Date/Time arguments or tuples containing only these element types. Using it on other types will not have any effect.", - "markdown": "The Within modifier should only be used for numeric or Date/Time arguments or tuples containing only these element types. Using it on other types will not have any effect." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NUnit2047", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit2044", - "shortDescription": { - "text": "RoslynAnalyzers Non-delegate actual parameter" - }, - "fullDescription": { - "text": "The actual argument needs to be evaluated by the Assert to catch any exceptions.", - "markdown": "The actual argument needs to be evaluated by the Assert to catch any exceptions." - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "NUnit2044", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0007", - "shortDescription": { - "text": "RoslynAnalyzers Use implicit type" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0007", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CannotApplyEqualityOperatorToType", - "shortDescription": { - "text": "Values of types marked with 'CannotApplyEqualityOperatorAttribute' should be compared using 'Equals()'" - }, - "fullDescription": { - "text": "Type is marked by 'CannotApplyEqualityOperatorAttribute' attribute but it is compared using '==' or '!=' operators Learn more...", - "markdown": "Type is marked by 'CannotApplyEqualityOperatorAttribute' attribute but it is compared using '==' or '!=' operators [Learn more...](https://www.jetbrains.com/help/rider/CannotApplyEqualityOperatorToType.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CannotApplyEqualityOperatorToType", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Constraints Violations", - "index": 80, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticReturnMismatch", - "shortDescription": { - "text": "return-mismatch clang diagnostic" - }, - "fullDescription": { - "text": "-Wreturn-mismatch clang diagnostic · Learn more", - "markdown": "-Wreturn-mismatch clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wreturn-mismatch)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticReturnMismatch", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1021", - "shortDescription": { - "text": "RoslynAnalyzers Avoid out parameters" - }, - "fullDescription": { - "text": "Passing types by reference (using 'out' or 'ref') requires experience with pointers, understanding how value types and reference types differ, and handling methods with multiple return values. Also, the difference between 'out' and 'ref' parameters is not widely understood.", - "markdown": "Passing types by reference (using 'out' or 'ref') requires experience with pointers, understanding how value types and reference types differ, and handling methods with multiple return values. Also, the difference between 'out' and 'ref' parameters is not widely understood." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1021", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit2045", - "shortDescription": { - "text": "RoslynAnalyzers Use Assert.Multiple" - }, - "fullDescription": { - "text": "Hosting Asserts inside an Assert.Multiple allows detecting more than one failure.", - "markdown": "Hosting Asserts inside an Assert.Multiple allows detecting more than one failure." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "NUnit2045", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantAttributeParentheses", - "shortDescription": { - "text": "Parentheses are redundant if attribute has no arguments" - }, - "fullDescription": { - "text": "Parentheses are redundant if attribute has no arguments Learn more...", - "markdown": "Parentheses are redundant if attribute has no arguments [Learn more...](https://www.jetbrains.com/help/rider/RedundantAttributeParentheses.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RedundantAttributeParentheses", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMicrosoftSealed", - "shortDescription": { - "text": "microsoft-sealed clang diagnostic" - }, - "fullDescription": { - "text": "-Wmicrosoft-sealed clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-sealed clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-sealed)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftSealed", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit2048", - "shortDescription": { - "text": "RoslynAnalyzers Consider using Assert.That(...) instead of StringAssert(...)" - }, - "fullDescription": { - "text": "Consider using the constraint model, Assert.That(actual, {0}(expected)), instead of the classic model, StringAssert.{1}(expected, actual).", - "markdown": "Consider using the constraint model, Assert.That(actual, {0}(expected)), instead of the classic model, StringAssert.{1}(expected, actual)." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NUnit2048", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit2049", - "shortDescription": { - "text": "RoslynAnalyzers Consider using Assert.That(...) instead of CollectionAssert(...)" - }, - "fullDescription": { - "text": "Consider using the constraint model, Assert.That(actual, {0}(expected)), instead of the classic model, CollectionAssert.{1}(expected, actual).", - "markdown": "Consider using the constraint model, Assert.That(actual, {0}(expected)), instead of the classic model, CollectionAssert.{1}(expected, actual)." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NUnit2049", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerSecurityInsecureAPIBcopy", - "shortDescription": { - "text": "security.insecureAPI.bcopy clang static analyzer check" - }, - "fullDescription": { - "text": "security.insecureAPI.bcopy clang static analyzer check · Learn more", - "markdown": "security.insecureAPI.bcopy clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerSecurityInsecureAPIBcopy", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp2aExtensions", - "shortDescription": { - "text": "c++2a-extensions clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++2a-extensions clang diagnostic · Learn more", - "markdown": "-Wc++2a-extensions clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-2a-extensions)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp2aExtensions", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticFloatOverflowConversion", - "shortDescription": { - "text": "float-overflow-conversion clang diagnostic" - }, - "fullDescription": { - "text": "-Wfloat-overflow-conversion clang diagnostic · Learn more", - "markdown": "-Wfloat-overflow-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wfloat-overflow-conversion)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticFloatOverflowConversion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "FSharpRedundantBackticks", - "shortDescription": { - "text": "Redundant identifier escaping" - }, - "fullDescription": { - "text": "Redundant use of `` escaping sequences.", - "markdown": "Redundant use of \\`\\` escaping sequences." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "FSharpRedundantBackticks", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "F#/Redundancies in Code", - "index": 73, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnknownDirectives", - "shortDescription": { - "text": "unknown-directives clang diagnostic" - }, - "fullDescription": { - "text": "-Wunknown-directives clang diagnostic · Learn more", - "markdown": "-Wunknown-directives clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunknown-directives)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnknownDirectives", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "OtherTagsInsideUnclosedScript", - "shortDescription": { - "text": "Script tag errors (unclosed <script> with other tags inside)" - }, - "fullDescription": { - "text": "<([)script(]) $a1$>$c1$", - "markdown": "\\<(\\[)script(\\]) $a1$\\>$c1$" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "OtherTagsInsideUnclosedScript", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HTML/Potential Code Quality Issues", - "index": 54, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Html.AttributeNotResolved", - "shortDescription": { - "text": "Unknown attribute" - }, - "fullDescription": { - "text": "Unknown attribute in HTML and related technologies", - "markdown": "Unknown attribute in HTML and related technologies" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Html.AttributeNotResolved", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HTML/Potential Code Quality Issues", - "index": 54, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ArrangeDefaultValueWhenTypeNotEvident", - "shortDescription": { - "text": "Use preferred style of default value expression when type is not evident" - }, - "fullDescription": { - "text": "Add or remove explicit type specification in default value expression when type is not evident from the usage Learn more...", - "markdown": "Add or remove explicit type specification in default value expression when type is not evident from the usage [Learn more...](https://www.jetbrains.com/help/rider/ArrangeDefaultValueWhenTypeNotEvident.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ArrangeDefaultValueWhenTypeNotEvident", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Syntax Style", - "index": 21, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ExtractCommonBranchingCode", - "shortDescription": { - "text": "Extract common code" - }, - "fullDescription": { - "text": "Extract common code out of branching statements such as 'if' or 'switch' to streamline and consolidate it, ensuring that shared logic is executed regardless of the branching path taken Learn more...", - "markdown": "Extract common code out of branching statements such as 'if' or 'switch' to streamline and consolidate it, ensuring that shared logic is executed regardless of the branching path taken [Learn more...](https://www.jetbrains.com/help/rider/ExtractCommonBranchingCode.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ExtractCommonBranchingCode", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1019", - "shortDescription": { - "text": "RoslynAnalyzers Define accessors for attribute arguments" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1019", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2361", - "shortDescription": { - "text": "RoslynAnalyzers Ensure auto-generated class containing DataSet.ReadXml() is not used with untrusted data" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2361", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1018", - "shortDescription": { - "text": "RoslynAnalyzers Mark attributes with AttributeUsageAttribute" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1018", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2362", - "shortDescription": { - "text": "RoslynAnalyzers Unsafe DataSet or DataTable in auto-generated serializable type can be vulnerable to remote code execution attacks" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2362", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMissingVariableDeclarations", - "shortDescription": { - "text": "missing-variable-declarations clang diagnostic" - }, - "fullDescription": { - "text": "-Wmissing-variable-declarations clang diagnostic · Learn more", - "markdown": "-Wmissing-variable-declarations clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmissing-variable-declarations)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMissingVariableDeclarations", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit2042", - "shortDescription": { - "text": "RoslynAnalyzers Comparison constraint on object" - }, - "fullDescription": { - "text": "The comparison constraint might fail as the actual and the expected value might not implement IComparable.", - "markdown": "The comparison constraint might fail as the actual and the expected value might not implement IComparable." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "NUnit2042", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1017", - "shortDescription": { - "text": "RoslynAnalyzers Mark assemblies with ComVisible" - }, - "fullDescription": { - "text": "ComVisibleAttribute determines how COM clients access managed code. Good design dictates that assemblies explicitly indicate COM visibility. COM visibility can be set for the whole assembly and then overridden for individual types and type members. If this attribute is not present, the contents of the assembly are visible to COM clients.", - "markdown": "ComVisibleAttribute determines how COM clients access managed code. Good design dictates that assemblies explicitly indicate COM visibility. COM visibility can be set for the whole assembly and then overridden for individual types and type members. If this attribute is not present, the contents of the assembly are visible to COM clients." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1017", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0005", - "shortDescription": { - "text": "RoslynAnalyzers Using directive is unnecessary." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0005", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit2043", - "shortDescription": { - "text": "RoslynAnalyzers Use ComparisonConstraint for better assertion messages in case of failure" - }, - "fullDescription": { - "text": "Using ComparisonConstraint will lead to better assertion messages in case of failure.", - "markdown": "Using ComparisonConstraint will lead to better assertion messages in case of failure." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "NUnit2043", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0004", - "shortDescription": { - "text": "RoslynAnalyzers Remove Unnecessary Cast" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0004", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1016", - "shortDescription": { - "text": "RoslynAnalyzers Mark assemblies with assembly version" - }, - "fullDescription": { - "text": "The .NET Framework uses the version number to uniquely identify an assembly, and to bind to types in strongly named assemblies. The version number is used together with version and publisher policy. By default, applications run only with the assembly version with which they were built.", - "markdown": "The .NET Framework uses the version number to uniquely identify an assembly, and to bind to types in strongly named assemblies. The version number is used together with version and publisher policy. By default, applications run only with the assembly version with which they were built." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1016", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMissingDesignatedFieldInitializers", - "shortDescription": { - "text": "missing-designated-field-initializers clang diagnostic" - }, - "fullDescription": { - "text": "-Wmissing-designated-field-initializers clang diagnostic · Learn more", - "markdown": "-Wmissing-designated-field-initializers clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmissing-designated-field-initializers)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMissingDesignatedFieldInitializers", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPrivateHeader", - "shortDescription": { - "text": "private-header clang diagnostic" - }, - "fullDescription": { - "text": "-Wprivate-header clang diagnostic · Learn more", - "markdown": "-Wprivate-header clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wprivate-header)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPrivateHeader", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit2040", - "shortDescription": { - "text": "RoslynAnalyzers Non-reference types for SameAs constraint" - }, - "fullDescription": { - "text": "The SameAs constraint always fails on value types as the actual and the expected value cannot be the same reference.", - "markdown": "The SameAs constraint always fails on value types as the actual and the expected value cannot be the same reference." - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "NUnit2040", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit2041", - "shortDescription": { - "text": "RoslynAnalyzers Incompatible types for comparison constraint" - }, - "fullDescription": { - "text": "The comparison constraint always fails as the actual and the expected value are not comparable.", - "markdown": "The comparison constraint always fails as the actual and the expected value are not comparable." - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "NUnit2041", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1014", - "shortDescription": { - "text": "RoslynAnalyzers Mark assemblies with CLSCompliant" - }, - "fullDescription": { - "text": "The Common Language Specification (CLS) defines naming restrictions, data types, and rules to which assemblies must conform if they will be used across programming languages. Good design dictates that all assemblies explicitly indicate CLS compliance by using CLSCompliantAttribute . If this attribute is not present on an assembly, the assembly is not compliant.", - "markdown": "The Common Language Specification (CLS) defines naming restrictions, data types, and rules to which assemblies must conform if they will be used across programming languages. Good design dictates that all assemblies explicitly indicate CLS compliance by using CLSCompliantAttribute . If this attribute is not present on an assembly, the assembly is not compliant." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1014", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit2035", - "shortDescription": { - "text": "RoslynAnalyzers Consider using Assert.That(collection, Is.Empty) instead of ClassicAssert.IsEmpty(collection)" - }, - "fullDescription": { - "text": "Consider using the constraint model, Assert.That(collection, Is.Empty), instead of the classic model, ClassicAssert.IsEmpty(collection).", - "markdown": "Consider using the constraint model, Assert.That(collection, Is.Empty), instead of the classic model, ClassicAssert.IsEmpty(collection)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "NUnit2035", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit2036", - "shortDescription": { - "text": "RoslynAnalyzers Consider using Assert.That(collection, Is.Not.Empty) instead of ClassicAssert.IsNotEmpty(collection)" - }, - "fullDescription": { - "text": "Consider using the constraint model, Assert.That(collection, Is.Not.Empty), instead of the classic model, ClassicAssert.IsNotEmpty(collection).", - "markdown": "Consider using the constraint model, Assert.That(collection, Is.Not.Empty), instead of the classic model, ClassicAssert.IsNotEmpty(collection)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "NUnit2036", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1012", - "shortDescription": { - "text": "RoslynAnalyzers Abstract types should not have public constructors" - }, - "fullDescription": { - "text": "Constructors on abstract types can be called only by derived types. Because public constructors create instances of a type, and you cannot create instances of an abstract type, an abstract type that has a public constructor is incorrectly designed.", - "markdown": "Constructors on abstract types can be called only by derived types. Because public constructors create instances of a type, and you cannot create instances of an abstract type, an abstract type that has a public constructor is incorrectly designed." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1012", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0019", - "shortDescription": { - "text": "RoslynAnalyzers Use pattern matching" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0019", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "BadSpacesAfterKeyword", - "shortDescription": { - "text": "Incorrect spacing (between keyword and parenthesis)" - }, - "fullDescription": { - "text": "Between keyword and parenthesis Learn more...", - "markdown": "Between keyword and parenthesis [Learn more...](https://www.jetbrains.com/help/rider/BadSpacesAfterKeyword.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "BadSpacesAfterKeyword", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Formatting", - "index": 24, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit2033", - "shortDescription": { - "text": "RoslynAnalyzers Consider using Assert.That(expr, Is.Not.Zero) instead of ClassicAssert.NotZero(expr)" - }, - "fullDescription": { - "text": "Consider using the constraint model, Assert.That(expr, Is.Not.Zero), instead of the classic model, ClassicAssert.NotZero(expr).", - "markdown": "Consider using the constraint model, Assert.That(expr, Is.Not.Zero), instead of the classic model, ClassicAssert.NotZero(expr)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "NUnit2033", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0018", - "shortDescription": { - "text": "RoslynAnalyzers Inline variable declaration" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0018", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0017", - "shortDescription": { - "text": "RoslynAnalyzers Simplify object initialization" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0017", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1010", - "shortDescription": { - "text": "RoslynAnalyzers Generic interface should also be implemented" - }, - "fullDescription": { - "text": "To broaden the usability of a type, implement one of the generic interfaces. This is especially true for collections as they can then be used to populate generic collection types.", - "markdown": "To broaden the usability of a type, implement one of the generic interfaces. This is especially true for collections as they can then be used to populate generic collection types." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1010", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit2034", - "shortDescription": { - "text": "RoslynAnalyzers Consider using Assert.That(expr, Is.NaN) instead of ClassicAssert.IsNaN(expr)" - }, - "fullDescription": { - "text": "Consider using the constraint model, Assert.That(expr, Is.NaN), instead of the classic model, ClassicAssert.IsNaN(expr).", - "markdown": "Consider using the constraint model, Assert.That(expr, Is.NaN), instead of the classic model, ClassicAssert.IsNaN(expr)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "NUnit2034", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit2039", - "shortDescription": { - "text": "RoslynAnalyzers Consider using Assert.That(actual, Is.Not.InstanceOf(expected)) instead of ClassicAssert.IsNotInstanceOf(expected, actual)" - }, - "fullDescription": { - "text": "Consider using the constraint model, Assert.That(actual, Is.Not.InstanceOf(expected)), instead of the classic model, ClassicAssert.IsNotInstanceOf(expected, actual).", - "markdown": "Consider using the constraint model, Assert.That(actual, Is.Not.InstanceOf(expected)), instead of the classic model, ClassicAssert.IsNotInstanceOf(expected, actual)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "NUnit2039", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit2037", - "shortDescription": { - "text": "RoslynAnalyzers Consider using Assert.That(collection, Does.Contain(instance)) instead of ClassicAssert.Contains(instance, collection)" - }, - "fullDescription": { - "text": "Consider using the constraint model, Assert.That(collection, Does.Contain(instance)), instead of the classic model, ClassicAssert.Contains(instance, collection).", - "markdown": "Consider using the constraint model, Assert.That(collection, Does.Contain(instance)), instead of the classic model, ClassicAssert.Contains(instance, collection)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "NUnit2037", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerCoreBuiltinNoReturnFunctions", - "shortDescription": { - "text": "core.builtin.NoReturnFunctions clang static analyzer check" - }, - "fullDescription": { - "text": "core.builtin.NoReturnFunctions clang static analyzer check · Learn more", - "markdown": "core.builtin.NoReturnFunctions clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerCoreBuiltinNoReturnFunctions", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit2038", - "shortDescription": { - "text": "RoslynAnalyzers Consider using Assert.That(actual, Is.InstanceOf(expected)) instead of ClassicAssert.IsInstanceOf(expected, actual)" - }, - "fullDescription": { - "text": "Consider using the constraint model, Assert.That(actual, Is.InstanceOf(expected)), instead of the classic model, ClassicAssert.IsInstanceOf(expected, actual).", - "markdown": "Consider using the constraint model, Assert.That(actual, Is.InstanceOf(expected)), instead of the classic model, ClassicAssert.IsInstanceOf(expected, actual)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "NUnit2038", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCertExp42C", - "shortDescription": { - "text": "cert-exp42-c clang-tidy check" - }, - "fullDescription": { - "text": "cert-exp42-c clang-tidy check · Learn more", - "markdown": "cert-exp42-c clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/exp42-c.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCertExp42C", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.StyleClassNotFound", - "shortDescription": { - "text": "Style class not found" - }, - "fullDescription": { - "text": "Style class not found", - "markdown": "Style class not found" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Xaml.StyleClassNotFound", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Code Notification", - "index": 5, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8947", - "shortDescription": { - "text": "Parameter occurs after interpolated string handler parameter in the parameter list." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8947", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppRedundantElaboratedTypeSpecifier", - "shortDescription": { - "text": "Redundant elaborated type specifier" - }, - "fullDescription": { - "text": "Elaborated type specifier is redundant and can be deleted", - "markdown": "Elaborated type specifier is redundant and can be deleted" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppRedundantElaboratedTypeSpecifier", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Redundancies in Code", - "index": 34, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBStringStartsWithIsCultureSpecific", - "shortDescription": { - "text": "String.StartsWith is culture-specific (string.StartsWith(string) is culture-specific)" - }, - "fullDescription": { - "text": "$s$.StartsWith($sarg$)", - "markdown": "$s$.StartsWith($sarg$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBStringStartsWithIsCultureSpecific", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticConstexprNotConst", - "shortDescription": { - "text": "constexpr-not-const clang diagnostic" - }, - "fullDescription": { - "text": "-Wconstexpr-not-const clang diagnostic · Learn more", - "markdown": "-Wconstexpr-not-const clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wconstexpr-not-const)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticConstexprNotConst", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0011", - "shortDescription": { - "text": "RoslynAnalyzers Add braces" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0011", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1008", - "shortDescription": { - "text": "RoslynAnalyzers Enums should have zero value" - }, - "fullDescription": { - "text": "The default value of an uninitialized enumeration, just as other value types, is zero. A nonflags-attributed enumeration should define a member by using the value of zero so that the default value is a valid value of the enumeration. If an enumeration that has the FlagsAttribute attribute applied defines a zero-valued member, its name should be \"\"None\"\" to indicate that no values have been set in the enumeration.", - "markdown": "The default value of an uninitialized enumeration, just as other value types, is zero. A nonflags-attributed enumeration should define a member by using the value of zero so that the default value is a valid value of the enumeration. If an enumeration that has the FlagsAttribute attribute applied defines a zero-valued member, its name should be \"\"None\"\" to indicate that no values have been set in the enumeration." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1008", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0010", - "shortDescription": { - "text": "RoslynAnalyzers Add missing cases" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0010", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA5400", - "shortDescription": { - "text": "RoslynAnalyzers Ensure HttpClient certificate revocation list check is not disabled" - }, - "fullDescription": { - "text": "Using HttpClient without providing a platform specific handler (WinHttpHandler or CurlHandler or HttpClientHandler) where the CheckCertificateRevocationList property is set to true, will allow revoked certificates to be accepted by the HttpClient as valid.", - "markdown": "Using HttpClient without providing a platform specific handler (WinHttpHandler or CurlHandler or HttpClientHandler) where the CheckCertificateRevocationList property is set to true, will allow revoked certificates to be accepted by the HttpClient as valid." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA5400", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0016", - "shortDescription": { - "text": "RoslynAnalyzers Use 'throw' expression" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0016", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit2031", - "shortDescription": { - "text": "RoslynAnalyzers Consider using Assert.That(actual, Is.Not.SameAs(expected)) instead of ClassicAssert.AreNotSame(expected, actual)" - }, - "fullDescription": { - "text": "Consider using the constraint model, Assert.That(actual, Is.Not.SameAs(expected)), instead of the classic model, ClassicAssert.AreNotSame(expected, actual).", - "markdown": "Consider using the constraint model, Assert.That(actual, Is.Not.SameAs(expected)), instead of the classic model, ClassicAssert.AreNotSame(expected, actual)." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NUnit2031", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit2032", - "shortDescription": { - "text": "RoslynAnalyzers Consider using Assert.That(expr, Is.Zero) instead of ClassicAssert.Zero(expr)" - }, - "fullDescription": { - "text": "Consider using the constraint model, Assert.That(expr, Is.Zero), instead of the classic model, ClassicAssert.Zero(expr).", - "markdown": "Consider using the constraint model, Assert.That(expr, Is.Zero), instead of the classic model, ClassicAssert.Zero(expr)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "NUnit2032", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1005", - "shortDescription": { - "text": "RoslynAnalyzers Avoid excessive parameters on generic types" - }, - "fullDescription": { - "text": "The more type parameters a generic type contains, the more difficult it is to know and remember what each type parameter represents.", - "markdown": "The more type parameters a generic type contains, the more difficult it is to know and remember what each type parameter represents." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1005", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RegExpInspections", - "shortDescription": { - "text": "Regular Expression Inspections" - }, - "fullDescription": { - "text": "Regular Expression language inspections", - "markdown": "Regular Expression language inspections" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RegExpInspections", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "RegExpBase/Language Usage Opportunities", - "index": 169, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA5402", - "shortDescription": { - "text": "RoslynAnalyzers Use CreateEncryptor with the default IV" - }, - "fullDescription": { - "text": "Symmetric encryption should always use a non-repeatable initialization vector to prevent dictionary attacks.", - "markdown": "Symmetric encryption should always use a non-repeatable initialization vector to prevent dictionary attacks." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA5402", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit2030", - "shortDescription": { - "text": "RoslynAnalyzers Consider using Assert.That(actual, Is.LessThanOrEqualTo(expected)) instead of ClassicAssert.LessOrEqual(actual, expected)" - }, - "fullDescription": { - "text": "Consider using the constraint model, Assert.That(actual, Is.LessThanOrEqualTo(expected)), instead of the classic model, ClassicAssert.LessOrEqual(actual, expected).", - "markdown": "Consider using the constraint model, Assert.That(actual, Is.LessThanOrEqualTo(expected)), instead of the classic model, ClassicAssert.LessOrEqual(actual, expected)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "NUnit2030", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1003", - "shortDescription": { - "text": "RoslynAnalyzers Use generic event handler instances" - }, - "fullDescription": { - "text": "A type contains a delegate that returns void, whose signature contains two parameters (the first an object and the second a type that is assignable to EventArgs), and the containing assembly targets Microsoft .NET Framework?2.0.", - "markdown": "A type contains a delegate that returns void, whose signature contains two parameters (the first an object and the second a type that is assignable to EventArgs), and the containing assembly targets Microsoft .NET Framework?2.0." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1003", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA5401", - "shortDescription": { - "text": "RoslynAnalyzers Do not use CreateEncryptor with non-default IV" - }, - "fullDescription": { - "text": "Symmetric encryption should always use a non-repeatable initialization vector to prevent dictionary attacks.", - "markdown": "Symmetric encryption should always use a non-repeatable initialization vector to prevent dictionary attacks." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA5401", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA5404", - "shortDescription": { - "text": "RoslynAnalyzers Do not disable token validation checks" - }, - "fullDescription": { - "text": "Token validation checks ensure that while validating tokens, all aspects are analyzed and verified. Turning off validation can lead to security holes by allowing untrusted tokens to make it through validation.", - "markdown": "Token validation checks ensure that while validating tokens, all aspects are analyzed and verified. Turning off validation can lead to security holes by allowing untrusted tokens to make it through validation." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA5404", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1002", - "shortDescription": { - "text": "RoslynAnalyzers Do not expose generic lists" - }, - "fullDescription": { - "text": "System.Collections.Generic.List is a generic collection that's designed for performance and not inheritance. List does not contain virtual members that make it easier to change the behavior of an inherited class.", - "markdown": "System.Collections.Generic.List is a generic collection that's designed for performance and not inheritance. List does not contain virtual members that make it easier to change the behavior of an inherited class." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1002", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA5403", - "shortDescription": { - "text": "RoslynAnalyzers Do not hard-code certificate" - }, - "fullDescription": { - "text": "Hard-coded certificates in source code are vulnerable to being exploited.", - "markdown": "Hard-coded certificates in source code are vulnerable to being exploited." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA5403", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1001", - "shortDescription": { - "text": "RoslynAnalyzers Types that own disposable fields should be disposable" - }, - "fullDescription": { - "text": "A class declares and implements an instance field that is a System.IDisposable type, and the class does not implement IDisposable. A class that declares an IDisposable field indirectly owns an unmanaged resource and should implement the IDisposable interface.", - "markdown": "A class declares and implements an instance field that is a System.IDisposable type, and the class does not implement IDisposable. A class that declares an IDisposable field indirectly owns an unmanaged resource and should implement the IDisposable interface." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1001", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1000", - "shortDescription": { - "text": "RoslynAnalyzers Do not declare static members on generic types" - }, - "fullDescription": { - "text": "When a static member of a generic type is called, the type argument must be specified for the type. When a generic instance member that does not support inference is called, the type argument must be specified for the member. In these two cases, the syntax for specifying the type argument is different and easily confused.", - "markdown": "When a static member of a generic type is called, the type argument must be specified for the type. When a generic instance member that does not support inference is called, the type argument must be specified for the member. In these two cases, the syntax for specifying the type argument is different and easily confused." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1000", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0029", - "shortDescription": { - "text": "RoslynAnalyzers Use coalesce expression" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0029", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA5405", - "shortDescription": { - "text": "RoslynAnalyzers Do not always skip token validation in delegates" - }, - "fullDescription": { - "text": "By setting critical TokenValidationParameter validation delegates to true, important authentication safeguards are disabled which can lead to tokens from any issuer or expired tokens being wrongly validated.", - "markdown": "By setting critical TokenValidationParameter validation delegates to true, important authentication safeguards are disabled which can lead to tokens from any issuer or expired tokens being wrongly validated." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA5405", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0028", - "shortDescription": { - "text": "RoslynAnalyzers Simplify collection initialization" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0028", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticOptionIgnored", - "shortDescription": { - "text": "option-ignored clang diagnostic" - }, - "fullDescription": { - "text": "-Woption-ignored clang diagnostic · Learn more", - "markdown": "-Woption-ignored clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#woption-ignored)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticOptionIgnored", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCppcoreguidelinesRvalueReferenceParamNotMoved", - "shortDescription": { - "text": "cppcoreguidelines-rvalue-reference-param-not-moved clang-tidy check" - }, - "fullDescription": { - "text": "cppcoreguidelines-rvalue-reference-param-not-moved clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-rvalue-reference-param-not-moved clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/rvalue-reference-param-not-moved.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyCppcoreguidelinesRvalueReferenceParamNotMoved", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.PreferAddressByIdToGraphicsParams", - "shortDescription": { - "text": "String based graphics property lookup is inefficient" - }, - "fullDescription": { - "text": "String based property lookup is inefficient, as each time the method is called, the string name is converted into an integer value. Prefer calculating the integer value once and caching the result. Learn more...", - "markdown": "String based property lookup is inefficient, as each time the method is called, the string name is converted into an integer value. Prefer calculating the integer value once and caching the result. [Learn more...](https://github.com/JetBrains/resharper-unity/wiki/Avoid-using-string-based-names-for-setting-and-getting-properties-on-Animators,-Shaders-and-Materials)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.PreferAddressByIdToGraphicsParams", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticFloatConversion", - "shortDescription": { - "text": "float-conversion clang diagnostic" - }, - "fullDescription": { - "text": "-Wfloat-conversion clang diagnostic · Learn more", - "markdown": "-Wfloat-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wfloat-conversion)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticFloatConversion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SYSLIB1090", - "shortDescription": { - "text": "RoslynAnalyzers 'GeneratedComInterfaceType' does not support the 'ComInterfaceType' value supplied to 'InterfaceTypeAttribute' on the same type." - }, - "fullDescription": { - "text": "Using 'GeneratedComInterfaceAttribute' and 'InterfaceTypeAttribute' is not supported with 'ComInterfaceType' value '{0}'.", - "markdown": "Using 'GeneratedComInterfaceAttribute' and 'InterfaceTypeAttribute' is not supported with 'ComInterfaceType' value '{0}'." - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "SYSLIB1090", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCppcoreguidelinesNoexceptDestructor", - "shortDescription": { - "text": "cppcoreguidelines-noexcept-destructor clang-tidy check" - }, - "fullDescription": { - "text": "cppcoreguidelines-noexcept-destructor clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-noexcept-destructor clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/noexcept-destructor.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyCppcoreguidelinesNoexceptDestructor", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS0197", - "shortDescription": { - "text": "Taking address of marshal-by-reference class field" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/y545659k.aspx)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS0197", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.MappedPathHighlighting", - "shortDescription": { - "text": "Mapped path" - }, - "fullDescription": { - "text": "Path is mapped to a different path in project settings", - "markdown": "Path is mapped to a different path in project settings" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "Xaml.MappedPathHighlighting", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Code Notification", - "index": 5, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SYSLIB1096", - "shortDescription": { - "text": "RoslynAnalyzers Convert to 'GeneratedComInterface'" - }, - "fullDescription": { - "text": "Use 'GeneratedComInterfaceAttribute' instead of 'ComImportAttribute' to generate COM marshalling code at compile time", - "markdown": "Use 'GeneratedComInterfaceAttribute' instead of 'ComImportAttribute' to generate COM marshalling code at compile time" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "SYSLIB1096", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SYSLIB1097", - "shortDescription": { - "text": "RoslynAnalyzers Add 'GeneratedComClassAttribute' to enable passing objects of this type to COM" - }, - "fullDescription": { - "text": "This type implements at least one type with the 'GeneratedComInterfaceAttribute' attribute. Add the 'GeneratedComClassAttribute' to enable passing this type to COM and exposing the COM interfaces for the types with the 'GeneratedComInterfaceAttribute' from objects of this type.", - "markdown": "This type implements at least one type with the 'GeneratedComInterfaceAttribute' attribute. Add the 'GeneratedComClassAttribute' to enable passing this type to COM and exposing the COM interfaces for the types with the 'GeneratedComInterfaceAttribute' from objects of this type." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "SYSLIB1097", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SYSLIB1098", - "shortDescription": { - "text": "RoslynAnalyzers .NET COM hosting with 'EnableComHosting' does not support interfaces with the 'GeneratedComInterfaceAttribute'" - }, - "fullDescription": { - "text": ".NET COM hosting with 'EnableComHosting' only supports built-in COM interop. It does not support source-generated COM interop with 'GeneratedComInterfaceAttribute'.", - "markdown": ".NET COM hosting with 'EnableComHosting' only supports built-in COM interop. It does not support source-generated COM interop with 'GeneratedComInterfaceAttribute'." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "SYSLIB1098", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppAccessSpecifierWithNoDeclarations", - "shortDescription": { - "text": "Access specifier does not affect any declaration" - }, - "fullDescription": { - "text": "An access specifier does not affect any declaration and is redundant", - "markdown": "An access specifier does not affect any declaration and is redundant" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppAccessSpecifierWithNoDeclarations", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Redundancies in Code", - "index": 34, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SYSLIB1099", - "shortDescription": { - "text": "RoslynAnalyzers COM Interop APIs on 'System.Runtime.InteropServices.Marshal' do not support source-generated COM" - }, - "fullDescription": { - "text": "COM Interop APIs on 'System.Runtime.InteropServices.Marshal' do not support source-generated COM and will fail at runtime", - "markdown": "COM Interop APIs on 'System.Runtime.InteropServices.Marshal' do not support source-generated COM and will fail at runtime" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "SYSLIB1099", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0023", - "shortDescription": { - "text": "RoslynAnalyzers Use expression body for conversion operator" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0023", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0022", - "shortDescription": { - "text": "RoslynAnalyzers Use expression body for method" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0022", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "StructuredMessageTemplateProblem", - "shortDescription": { - "text": "Structured message template problems" - }, - "fullDescription": { - "text": "Structured message template syntax errors (unescaped braces, unused arguments, etc.) Learn more...", - "markdown": "Structured message template syntax errors (unescaped braces, unused arguments, etc.) [Learn more...](https://www.jetbrains.com/help/rider/StructuredMessageTemplateProblem.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "StructuredMessageTemplateProblem", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0021", - "shortDescription": { - "text": "RoslynAnalyzers Use expression body for constructor" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0021", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0020", - "shortDescription": { - "text": "RoslynAnalyzers Use pattern matching" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0020", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCppcoreguidelinesNoSuspendWithLock", - "shortDescription": { - "text": "cppcoreguidelines-no-suspend-with-lock clang-tidy check" - }, - "fullDescription": { - "text": "cppcoreguidelines-no-suspend-with-lock clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-no-suspend-with-lock clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/no-suspend-with-lock.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyCppcoreguidelinesNoSuspendWithLock", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0027", - "shortDescription": { - "text": "RoslynAnalyzers Use expression body for accessor" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0027", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0026", - "shortDescription": { - "text": "RoslynAnalyzers Use expression body for indexer" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0026", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0025", - "shortDescription": { - "text": "RoslynAnalyzers Use expression body for property" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0025", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0024", - "shortDescription": { - "text": "RoslynAnalyzers Use expression body for operator" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0024", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0039", - "shortDescription": { - "text": "RoslynAnalyzers Use local function" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0039", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticVisibility", - "shortDescription": { - "text": "visibility clang diagnostic" - }, - "fullDescription": { - "text": "-Wvisibility clang diagnostic · Learn more", - "markdown": "-Wvisibility clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wvisibility)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticVisibility", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDanglingGsl", - "shortDescription": { - "text": "dangling-gsl clang diagnostic" - }, - "fullDescription": { - "text": "-Wdangling-gsl clang diagnostic · Learn more", - "markdown": "-Wdangling-gsl clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdangling-gsl)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDanglingGsl", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EntityNameCapturedOnly.Global", - "shortDescription": { - "text": "Entity is only used to capture its name (non-private accessibility)" - }, - "fullDescription": { - "text": "Local variable/parameter is only used to capture its name via 'nameof' expression", - "markdown": "Local variable/parameter is only used to capture its name via 'nameof' expression" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "EntityNameCapturedOnly.Global", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppEnforceWhileStatementBraces", - "shortDescription": { - "text": "Use preferred braces style (enforce braces in 'while' statement)" - }, - "fullDescription": { - "text": "Use braces to separate 'while' statement body", - "markdown": "Use braces to separate 'while' statement body" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppEnforceWhileStatementBraces", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Syntax Style", - "index": 91, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyPerformanceUnnecessaryValueParam", - "shortDescription": { - "text": "performance-unnecessary-value-param clang-tidy check" - }, - "fullDescription": { - "text": "performance-unnecessary-value-param clang-tidy check · Learn more", - "markdown": "performance-unnecessary-value-param clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance/unnecessary-value-param.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyPerformanceUnnecessaryValueParam", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerOsxCocoaIncompatibleMethodTypes", - "shortDescription": { - "text": "osx.cocoa.IncompatibleMethodTypes clang static analyzer check" - }, - "fullDescription": { - "text": "osx.cocoa.IncompatibleMethodTypes clang static analyzer check · Learn more", - "markdown": "osx.cocoa.IncompatibleMethodTypes clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerOsxCocoaIncompatibleMethodTypes", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConvertToNullCoalescingCompoundAssignment", - "shortDescription": { - "text": "Use compound assignment" - }, - "fullDescription": { - "text": "Replace null-coalescing expression with compound assignment Learn more...", - "markdown": "Replace null-coalescing expression with compound assignment [Learn more...](https://www.jetbrains.com/help/rider/ConvertToNullCoalescingCompoundAssignment.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ConvertToNullCoalescingCompoundAssignment", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseStringInterpolation", - "shortDescription": { - "text": "Use string interpolation expression" - }, - "fullDescription": { - "text": "Replace string construction by 'String.Format()' method invocation with string interpolation expression Learn more...", - "markdown": "Replace string construction by 'String.Format()' method invocation with string interpolation expression [Learn more...](https://www.jetbrains.com/help/rider/UseStringInterpolation.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UseStringInterpolation", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilitySimplifySubscriptExpr", - "shortDescription": { - "text": "readability-simplify-subscript-expr clang-tidy check" - }, - "fullDescription": { - "text": "readability-simplify-subscript-expr clang-tidy check · Learn more", - "markdown": "readability-simplify-subscript-expr clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/simplify-subscript-expr.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyReadabilitySimplifySubscriptExpr", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticIgnoredPragmaOptimize", - "shortDescription": { - "text": "ignored-pragma-optimize clang diagnostic" - }, - "fullDescription": { - "text": "-Wignored-pragma-optimize clang diagnostic · Learn more", - "markdown": "-Wignored-pragma-optimize clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wignored-pragma-optimize)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticIgnoredPragmaOptimize", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDeprecatedPragma", - "shortDescription": { - "text": "deprecated-pragma clang diagnostic" - }, - "fullDescription": { - "text": "-Wdeprecated-pragma clang diagnostic · Learn more", - "markdown": "-Wdeprecated-pragma clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-pragma)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedPragma", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0030", - "shortDescription": { - "text": "RoslynAnalyzers Use coalesce expression" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0030", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MultipleSpaces", - "shortDescription": { - "text": "Incorrect spacing (multiple spaces are prohibited)" - }, - "fullDescription": { - "text": "Multiple spaces are prohibited Learn more...", - "markdown": "Multiple spaces are prohibited [Learn more...](https://www.jetbrains.com/help/rider/MultipleSpaces.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "MultipleSpaces", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Formatting", - "index": 24, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "FSharpRedundantStringInterpolation", - "shortDescription": { - "text": "Redundant string interpolation" - }, - "fullDescription": { - "text": "String interpolation expression without arguments is redundant.", - "markdown": "String interpolation expression without arguments is redundant." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "FSharpRedundantStringInterpolation", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "F#/Redundancies in Code", - "index": 73, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConvertConditionalTernaryExpressionToSwitchExpression", - "shortDescription": { - "text": "Replace ternary expression with 'switch' expression" - }, - "fullDescription": { - "text": "Replace chain of ternary expressions with 'switch' expression", - "markdown": "Replace chain of ternary expressions with 'switch' expression" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ConvertConditionalTernaryExpressionToSwitchExpression", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "FSharpErrors", - "shortDescription": { - "text": "F# Errors" - }, - "fullDescription": { - "text": "F# Errors", - "markdown": "F# Errors" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "FSharpErrors", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "F#/Non configurable", - "index": 171, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0034", - "shortDescription": { - "text": "RoslynAnalyzers Simplify 'default' expression" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0034", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyGoogleGlobalNamesInHeaders", - "shortDescription": { - "text": "google-global-names-in-headers clang-tidy check" - }, - "fullDescription": { - "text": "google-global-names-in-headers clang-tidy check · Learn more", - "markdown": "google-global-names-in-headers clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/google/global-names-in-headers.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyGoogleGlobalNamesInHeaders", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnusedValue", - "shortDescription": { - "text": "unused-value clang diagnostic" - }, - "fullDescription": { - "text": "-Wunused-value clang diagnostic · Learn more", - "markdown": "-Wunused-value clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunused-value)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnusedValue", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit2050", - "shortDescription": { - "text": "RoslynAnalyzers NUnit 4 no longer supports string.Format specification" - }, - "fullDescription": { - "text": "Replace format specification with interpolated string.", - "markdown": "Replace format specification with interpolated string." - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "NUnit2050", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0033", - "shortDescription": { - "text": "RoslynAnalyzers Use explicitly provided tuple name" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0033", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticOdr", - "shortDescription": { - "text": "odr clang diagnostic" - }, - "fullDescription": { - "text": "-Wodr clang diagnostic · Learn more", - "markdown": "-Wodr clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wodr)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticOdr", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0032", - "shortDescription": { - "text": "RoslynAnalyzers Use auto property" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0032", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "BuiltInTypeReferenceStyleForMemberAccess", - "shortDescription": { - "text": "Replace built-in type reference with a CLR type name or a keyword in static member access expressions" - }, - "fullDescription": { - "text": "CLR type names and corresponding C# keyword are interchangeable and do not affect code semantics Learn more...", - "markdown": "CLR type names and corresponding C# keyword are interchangeable and do not affect code semantics [Learn more...](https://www.jetbrains.com/help/rider/BuiltInTypeReferenceStyleForMemberAccess.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "BuiltInTypeReferenceStyleForMemberAccess", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Syntax Style", - "index": 21, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0031", - "shortDescription": { - "text": "RoslynAnalyzers Use null propagation" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0031", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit2053", - "shortDescription": { - "text": "RoslynAnalyzers Consider using Assert.That(actual, Is.AssignableFrom(expected)) instead of ClassicAssert.IsAssignableFrom(expected, actual)" - }, - "fullDescription": { - "text": "Consider using the constraint model, Assert.That(actual, Is.AssignableFrom(expected)), instead of the classic model, ClassicAssert.IsAssignableFrom(expected, actual).", - "markdown": "Consider using the constraint model, Assert.That(actual, Is.AssignableFrom(expected)), instead of the classic model, ClassicAssert.IsAssignableFrom(expected, actual)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "NUnit2053", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit2054", - "shortDescription": { - "text": "RoslynAnalyzers Consider using Assert.That(actual, Is.Not.AssignableFrom(expected)) instead of ClassicAssert.IsNotAssignableFrom(expected, actual)" - }, - "fullDescription": { - "text": "Consider using the constraint model, Assert.That(actual, Is.Not.AssignableFrom(expected)), instead of the classic model, ClassicAssert.IsNotAssignableFrom(expected, actual).", - "markdown": "Consider using the constraint model, Assert.That(actual, Is.Not.AssignableFrom(expected)), instead of the classic model, ClassicAssert.IsNotAssignableFrom(expected, actual)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "NUnit2054", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0037", - "shortDescription": { - "text": "RoslynAnalyzers Use inferred member name" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0037", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0036", - "shortDescription": { - "text": "RoslynAnalyzers Order modifiers" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0036", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit2051", - "shortDescription": { - "text": "RoslynAnalyzers Consider using Assert.That(expr, Is.Positive) instead of ClassicAssert.Positive(expr)" - }, - "fullDescription": { - "text": "Consider using the constraint model, Assert.That(expr, Is.Positive), instead of the classic model, ClassicAssert.Positive(expr).", - "markdown": "Consider using the constraint model, Assert.That(expr, Is.Positive), instead of the classic model, ClassicAssert.Positive(expr)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "NUnit2051", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDeprecatedIncrementBool", - "shortDescription": { - "text": "deprecated-increment-bool clang diagnostic" - }, - "fullDescription": { - "text": "-Wdeprecated-increment-bool clang diagnostic · Learn more", - "markdown": "-Wdeprecated-increment-bool clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-increment-bool)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedIncrementBool", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0035", - "shortDescription": { - "text": "RoslynAnalyzers Unreachable code detected" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0035", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit2052", - "shortDescription": { - "text": "RoslynAnalyzers Consider using Assert.That(expr, Is.Negative) instead of ClassicAssert.Negative(expr)" - }, - "fullDescription": { - "text": "Consider using the constraint model, Assert.That(expr, Is.Negative), instead of the classic model, ClassicAssert.Negative(expr).", - "markdown": "Consider using the constraint model, Assert.That(expr, Is.Negative), instead of the classic model, ClassicAssert.Negative(expr)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "NUnit2052", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SpecifyStringComparison", - "shortDescription": { - "text": "Specify string comparison explicitly" - }, - "fullDescription": { - "text": "Specify string comparison explicitly Learn more...", - "markdown": "Specify string comparison explicitly [Learn more...](https://www.jetbrains.com/help/rider/SpecifyStringComparison.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "SpecifyStringComparison", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.RedundantAttributeOnTarget", - "shortDescription": { - "text": "Redundant attribute usage (attribute is redundant when applied to this declaration type)" - }, - "fullDescription": { - "text": "The attribute does not define any restrictions on valid targets, but is only useful when applied to specific declarations, e.g. field, class or method. Learn more...", - "markdown": "The attribute does not define any restrictions on valid targets, but is only useful when applied to specific declarations, e.g. field, class or method. [Learn more...](https://github.com/JetBrains/resharper-unity/wiki/Attribute-is-redundant-when-applied-to-this-declaration-type)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.RedundantAttributeOnTarget", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerSecurityInsecureAPIRand", - "shortDescription": { - "text": "security.insecureAPI.rand clang static analyzer check" - }, - "fullDescription": { - "text": "security.insecureAPI.rand clang static analyzer check · Learn more", - "markdown": "security.insecureAPI.rand clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerSecurityInsecureAPIRand", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantVerbatimPrefix", - "shortDescription": { - "text": "Redundant verbatim prefix" - }, - "fullDescription": { - "text": "'@' prefix can be safely removed from identifier", - "markdown": "'@' prefix can be safely removed from identifier" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RedundantVerbatimPrefix", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantEmptySwitchSection", - "shortDescription": { - "text": "Redundant empty switch section" - }, - "fullDescription": { - "text": "Redundant default switch branch: \r\n switch (foo)\r\n {\r\n case Bar:\r\n DoSomething;\r\n break;\r\n default: // here\r\n break;\r\n }\r\n Learn more...", - "markdown": "Redundant default switch branch:\n\n```\n\r\n switch (foo)\r\n {\r\n case Bar:\r\n DoSomething;\r\n break;\r\n default: // here\r\n break;\r\n }\r\n```\n\n[Learn more...](https://www.jetbrains.com/help/rider/RedundantEmptySwitchSection.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantEmptySwitchSection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Mvc.ControllerNotResolved", - "shortDescription": { - "text": "MVC (unknown controller)" - }, - "fullDescription": { - "text": "Unknown ASP.NET MVC Controller", - "markdown": "Unknown ASP.NET MVC Controller" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Mvc.ControllerNotResolved", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Aspx/Potential Code Quality Issues", - "index": 64, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticInfiniteRecursion", - "shortDescription": { - "text": "infinite-recursion clang diagnostic" - }, - "fullDescription": { - "text": "-Winfinite-recursion clang diagnostic · Learn more", - "markdown": "-Winfinite-recursion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winfinite-recursion)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticInfiniteRecursion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SimplifyConditionalOperator", - "shortDescription": { - "text": "Simplify conditional operator" - }, - "fullDescription": { - "text": "Conditional operator contains 'True' or 'False' in result branch, for example \r\n If(condition, True, elseBranch)\r\n If(condition, thenBranch : True)", - "markdown": "Conditional operator contains 'True' or 'False' in result branch, for example\n\n```\n\r\n If(condition, True, elseBranch)\r\n If(condition, thenBranch : True)\r\n \n```" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "SimplifyConditionalOperator", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCertDcl51Cpp", - "shortDescription": { - "text": "cert-dcl51-cpp clang-tidy check" - }, - "fullDescription": { - "text": "cert-dcl51-cpp clang-tidy check · Learn more", - "markdown": "cert-dcl51-cpp clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/dcl51-cpp.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCertDcl51Cpp", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8974", - "shortDescription": { - "text": "Converting method group to non-delegate type 'object'." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8974", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NegativeIndex", - "shortDescription": { - "text": "Possible 'System.ArgumentOutOfRangeException'. Index must be a non-negative integer." - }, - "fullDescription": { - "text": "'System.Index' requires a non-negative argument", - "markdown": "'System.Index' requires a non-negative argument" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NegativeIndex", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "XMLErrors", - "shortDescription": { - "text": "XML Errors" - }, - "fullDescription": { - "text": "XML Errors", - "markdown": "XML Errors" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "XMLErrors", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XML/Non configurable", - "index": 168, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8971", - "shortDescription": { - "text": "[InterpolatedStringHandlerArgument] has no effect when applied to lambda parameters and will be ignored at the call site." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/lambda-expression-errors#syntax-limitations-in-lambda-expressions)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8971", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyHicppUseEqualsDelete", - "shortDescription": { - "text": "hicpp-use-equals-delete clang-tidy check" - }, - "fullDescription": { - "text": "hicpp-use-equals-delete clang-tidy check · Learn more", - "markdown": "hicpp-use-equals-delete clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/use-equals-delete.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyHicppUseEqualsDelete", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticGnuNullPointerArithmetic", - "shortDescription": { - "text": "gnu-null-pointer-arithmetic clang diagnostic" - }, - "fullDescription": { - "text": "-Wgnu-null-pointer-arithmetic clang diagnostic · Learn more", - "markdown": "-Wgnu-null-pointer-arithmetic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-null-pointer-arithmetic)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticGnuNullPointerArithmetic", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit.MethodWithParametersAndTestAttribute", - "shortDescription": { - "text": "NUnit. Values for test method parameters are not provided." - }, - "fullDescription": { - "text": "Parameters of NUnit test method must be provided with values through either [Values] or [TestCase] attribute. Learn more...", - "markdown": "Parameters of NUnit test method must be provided with values through either \\[Values\\] or \\[TestCase\\] attribute. [Learn more...](https://www.jetbrains.com/help/rider/NUnit.MethodWithParametersAndTestAttribute.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NUnit.MethodWithParametersAndTestAttribute", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/NUnit", - "index": 26, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "DefaultStructEqualityIsUsed.Local", - "shortDescription": { - "text": "Struct with default equality members is used for comparison (private accessibility)" - }, - "fullDescription": { - "text": "Default implementations of the 'Equals' and 'GetHashCode' methods of a struct are based on reflection and perform poorly. To prevent boxing and improve performance, overriding the equality members is recommended. This inspection only triggers if the struct or its containing type (such as record) is actually used for equality comparisons in the solution. Learn more...", - "markdown": "Default implementations of the 'Equals' and 'GetHashCode' methods of a struct are based on reflection and perform poorly. To prevent boxing and improve performance, overriding the equality members is recommended. This inspection only triggers if the struct or its containing type (such as record) is actually used for equality comparisons in the solution. [Learn more...](https://www.jetbrains.com/help/rider/DefaultStructEqualityIsUsed.Local.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "DefaultStructEqualityIsUsed.Local", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Asp.CustomPageParserFilterType", - "shortDescription": { - "text": "Unsupported pageParserFilterType" - }, - "fullDescription": { - "text": "ReSharper does not support pageParserFilterType specified in web.config", - "markdown": "ReSharper does not support pageParserFilterType specified in web.config" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Asp.CustomPageParserFilterType", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Aspx/Potential Code Quality Issues", - "index": 64, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDistributedObjectModifiers", - "shortDescription": { - "text": "distributed-object-modifiers clang diagnostic" - }, - "fullDescription": { - "text": "-Wdistributed-object-modifiers clang diagnostic · Learn more", - "markdown": "-Wdistributed-object-modifiers clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdistributed-object-modifiers)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDistributedObjectModifiers", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CanSimplifySetAddingWithSingleCall", - "shortDescription": { - "text": "Can simplify 'Contains' before 'Add'" - }, - "fullDescription": { - "text": "Calling 'Contains' before 'Add' on a set is redundant and can be simplified with a single 'Add' call Learn more...", - "markdown": "Calling 'Contains' before 'Add' on a set is redundant and can be simplified with a single 'Add' call [Learn more...](https://www.jetbrains.com/help/rider/CanSimplifySetAddingWithSingleCall.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CanSimplifySetAddingWithSingleCall", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "BadGenericBracketsSpaces", - "shortDescription": { - "text": "Incorrect spacing (around generic brackets)" - }, - "fullDescription": { - "text": "Around generic brackets Learn more...", - "markdown": "Around generic brackets [Learn more...](https://www.jetbrains.com/help/rider/BadGenericBracketsSpaces.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "BadGenericBracketsSpaces", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Formatting", - "index": 24, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyFuchsiaHeaderAnonNamespaces", - "shortDescription": { - "text": "fuchsia-header-anon-namespaces clang-tidy check" - }, - "fullDescription": { - "text": "fuchsia-header-anon-namespaces clang-tidy check · Learn more", - "markdown": "fuchsia-header-anon-namespaces clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/fuchsia/header-anon-namespaces.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyFuchsiaHeaderAnonNamespaces", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantOverriddenMember", - "shortDescription": { - "text": "Redundant member override" - }, - "fullDescription": { - "text": "Override of a virtual member is redundant because it consists of only a call to the base member Learn more...", - "markdown": "Override of a virtual member is redundant because it consists of only a call to the base member [Learn more...](https://www.jetbrains.com/help/rider/RedundantOverriddenMember.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantOverriddenMember", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticImplicitFallthrough", - "shortDescription": { - "text": "implicit-fallthrough clang diagnostic" - }, - "fullDescription": { - "text": "-Wimplicit-fallthrough clang diagnostic · Learn more", - "markdown": "-Wimplicit-fallthrough clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wimplicit-fallthrough)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticImplicitFallthrough", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NotResolvedInText", - "shortDescription": { - "text": "Cannot resolve symbol in text argument" - }, - "fullDescription": { - "text": "Cannot resolve symbol in text argument Learn more...", - "markdown": "Cannot resolve symbol in text argument [Learn more...](https://www.jetbrains.com/help/rider/NotResolvedInText.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NotResolvedInText", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppCompileTimeConstantCanBeReplacedWithBooleanConstant", - "shortDescription": { - "text": "Compile-time constant expression can be replaced with either 'true' or 'false'" - }, - "fullDescription": { - "text": "Compile-time integral constant expression or nullptr is converted to bool and can be replaced with 'true' or 'false'", - "markdown": "Compile-time integral constant expression or nullptr is converted to bool and can be replaced with 'true' or 'false'" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppCompileTimeConstantCanBeReplacedWithBooleanConstant", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Common Practices and Code Improvements", - "index": 16, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnusedImportClause", - "shortDescription": { - "text": "Unused import clause" - }, - "fullDescription": { - "text": "Import clause is not used in the file and could be safely removed", - "markdown": "Import clause is not used in the file and could be safely removed" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "UnusedImportClause", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Redundancies in Code", - "index": 96, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticExcessInitializers", - "shortDescription": { - "text": "excess-initializers clang diagnostic" - }, - "fullDescription": { - "text": "-Wexcess-initializers clang diagnostic · Learn more", - "markdown": "-Wexcess-initializers clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wexcess-initializers)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticExcessInitializers", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithOfType.Where", - "shortDescription": { - "text": "Replace with OfType<T>().Where() (replace with OfType<T>().Where(..))" - }, - "fullDescription": { - "text": "$seq$.Select($x$ => $x$ as $T$).Where($y$ => $y$ != null && $expr$)", - "markdown": "$seq$.Select($x$ =\\> $x$ as $T$).Where($y$ =\\> $y$ != null \\&\\& $expr$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithOfType.Where", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppRedundantStaticSpecifierOnThreadLocalLocalVariable", - "shortDescription": { - "text": "Redundant 'static' specifier on a 'thread_local' local variable" - }, - "fullDescription": { - "text": "Redundant 'static' specifier on a 'thread_local' local variable", - "markdown": "Redundant 'static' specifier on a 'thread_local' local variable" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppRedundantStaticSpecifierOnThreadLocalLocalVariable", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Redundancies in Code", - "index": 34, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8981", - "shortDescription": { - "text": "The type name only contains lower-cased ASCII characters. Such names may become reserved for the language" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/warning-waves#cs8981---the-type-name-only-contains-lower-cased-ascii-characters)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8981", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseImplicitlyTypedVariable", - "shortDescription": { - "text": "Use implicitly typed variable declaration" - }, - "fullDescription": { - "text": "Use implicitly typed variable declaration", - "markdown": "Use implicitly typed variable declaration" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UseImplicitlyTypedVariable", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Redundancies in Code", - "index": 96, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityMathMissingParentheses", - "shortDescription": { - "text": "readability-math-missing-parentheses clang-tidy check" - }, - "fullDescription": { - "text": "readability-math-missing-parentheses clang-tidy check · Learn more", - "markdown": "readability-math-missing-parentheses clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/math-missing-parentheses.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityMathMissingParentheses", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticBuiltinAssumeAlignedAlignment", - "shortDescription": { - "text": "builtin-assume-aligned-alignment clang diagnostic" - }, - "fullDescription": { - "text": "-Wbuiltin-assume-aligned-alignment clang diagnostic · Learn more", - "markdown": "-Wbuiltin-assume-aligned-alignment clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wbuiltin-assume-aligned-alignment)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticBuiltinAssumeAlignedAlignment", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerWebkitNoUncountedMemberChecker", - "shortDescription": { - "text": "webkit.NoUncountedMemberChecker clang static analyzer check" - }, - "fullDescription": { - "text": "webkit.NoUncountedMemberChecker clang static analyzer check · Learn more", - "markdown": "webkit.NoUncountedMemberChecker clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerWebkitNoUncountedMemberChecker", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUndef", - "shortDescription": { - "text": "undef clang diagnostic" - }, - "fullDescription": { - "text": "-Wundef clang diagnostic · Learn more", - "markdown": "-Wundef clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wundef)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUndef", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.RedundantCollectionProperty", - "shortDescription": { - "text": "Redundant empty collection property setter" - }, - "fullDescription": { - "text": "Empty collection property setter is redundant and can be safely removed", - "markdown": "Empty collection property setter is redundant and can be safely removed" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Xaml.RedundantCollectionProperty", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Redundancies in Code", - "index": 77, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticImplicitlyUnsignedLiteral", - "shortDescription": { - "text": "implicitly-unsigned-literal clang diagnostic" - }, - "fullDescription": { - "text": "-Wimplicitly-unsigned-literal clang diagnostic · Learn more", - "markdown": "-Wimplicitly-unsigned-literal clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wimplicitly-unsigned-literal)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticImplicitlyUnsignedLiteral", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "OutParameterWithHandlesResourceDisposalAttribute", - "shortDescription": { - "text": "Meaningless [HandlesResourceDisposal] annotation for an output parameter" - }, - "fullDescription": { - "text": "Meaningless [HandlesResourceDisposal] annotation for an output parameter", - "markdown": "Meaningless \\[HandlesResourceDisposal\\] annotation for an output parameter" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "OutParameterWithHandlesResourceDisposalAttribute", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnavailableDeclarations", - "shortDescription": { - "text": "unavailable-declarations clang diagnostic" - }, - "fullDescription": { - "text": "-Wunavailable-declarations clang diagnostic · Learn more", - "markdown": "-Wunavailable-declarations clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunavailable-declarations)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnavailableDeclarations", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Asp.Entity", - "shortDescription": { - "text": "Unknown HTML entity" - }, - "fullDescription": { - "text": "Unknown HTML entity", - "markdown": "Unknown HTML entity" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Asp.Entity", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HTML/Potential Code Quality Issues", - "index": 54, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyObjcForbiddenSubclassing", - "shortDescription": { - "text": "objc-forbidden-subclassing clang-tidy check" - }, - "fullDescription": { - "text": "objc-forbidden-subclassing clang-tidy check · Learn more", - "markdown": "objc-forbidden-subclassing clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/objc/forbidden-subclassing.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyObjcForbiddenSubclassing", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneUnusedReturnValue", - "shortDescription": { - "text": "bugprone-unused-return-value clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-unused-return-value clang-tidy check · Learn more", - "markdown": "bugprone-unused-return-value clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/unused-return-value.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneUnusedReturnValue", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyModernizeRedundantVoidArg", - "shortDescription": { - "text": "modernize-redundant-void-arg clang-tidy check" - }, - "fullDescription": { - "text": "modernize-redundant-void-arg clang-tidy check · Learn more", - "markdown": "modernize-redundant-void-arg clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/redundant-void-arg.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyModernizeRedundantVoidArg", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ClassCannotBeInstantiated", - "shortDescription": { - "text": "Class cannot be instantiated" - }, - "fullDescription": { - "text": "Remove 'sealed' modifier or make constructor public or internal", - "markdown": "Remove 'sealed' modifier or make constructor public or internal" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "ClassCannotBeInstantiated", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8966", - "shortDescription": { - "text": "The CallerArgumentExpressionAttribute will have no effect because it applies to a member that is used in contexts that do not allow optional arguments" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8966", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8965", - "shortDescription": { - "text": "The CallerArgumentExpressionAttribute applied to parameter will have no effect because it's self-referential" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8965", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ArrangeTrailingCommaInMultilineLists", - "shortDescription": { - "text": "Use preferred style for trailing comma before new line in multiline lists" - }, - "fullDescription": { - "text": "Add or remove trailing comma before new line in multiline lists according to code style settings Learn more...", - "markdown": "Add or remove trailing comma before new line in multiline lists according to code style settings [Learn more...](https://www.jetbrains.com/help/rider/ArrangeTrailingCommaInMultilineLists.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "ArrangeTrailingCommaInMultilineLists", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Syntax Style", - "index": 21, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8963", - "shortDescription": { - "text": "The CallerArgumentExpressionAttribute is applied with an invalid parameter name." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8963", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyGoogleObjcAvoidNsobjectNew", - "shortDescription": { - "text": "google-objc-avoid-nsobject-new clang-tidy check" - }, - "fullDescription": { - "text": "google-objc-avoid-nsobject-new clang-tidy check · Learn more", - "markdown": "google-objc-avoid-nsobject-new clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/google/objc-avoid-nsobject-new.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyGoogleObjcAvoidNsobjectNew", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8962", - "shortDescription": { - "text": "The CallerArgumentExpressionAttribute will have no effect; it is overridden by the CallerMemberNameAttribute" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8962", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneStringIntegerAssignment", - "shortDescription": { - "text": "bugprone-string-integer-assignment clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-string-integer-assignment clang-tidy check · Learn more", - "markdown": "bugprone-string-integer-assignment clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/string-integer-assignment.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneStringIntegerAssignment", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8961", - "shortDescription": { - "text": "The CallerArgumentExpressionAttribute will have no effect; it is overridden by the CallerFilePathAttribute" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8961", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyModernizeUseNodiscard", - "shortDescription": { - "text": "modernize-use-nodiscard clang-tidy check" - }, - "fullDescription": { - "text": "modernize-use-nodiscard clang-tidy check · Learn more", - "markdown": "modernize-use-nodiscard clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-nodiscard.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyModernizeUseNodiscard", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8960", - "shortDescription": { - "text": "The CallerArgumentExpressionAttribute will have no effect; it is overridden by the CallerLineNumberAttribute" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8960", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDeprecatedAnonEnumEnumConversion", - "shortDescription": { - "text": "deprecated-anon-enum-enum-conversion clang diagnostic" - }, - "fullDescription": { - "text": "-Wdeprecated-anon-enum-enum-conversion clang diagnostic · Learn more", - "markdown": "-Wdeprecated-anon-enum-enum-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-anon-enum-enum-conversion)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedAnonEnumEnumConversion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EnforceForStatementBraces", - "shortDescription": { - "text": "Use preferred braces style (enforce braces in 'for' statement)" - }, - "fullDescription": { - "text": "Use braces to separate 'for' statement body Learn more...", - "markdown": "Use braces to separate 'for' statement body [Learn more...](https://www.jetbrains.com/help/rider/EnforceForStatementBraces.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "EnforceForStatementBraces", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Syntax Style", - "index": 21, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticFormatNonIso", - "shortDescription": { - "text": "format-non-iso clang diagnostic" - }, - "fullDescription": { - "text": "-Wformat-non-iso clang diagnostic · Learn more", - "markdown": "-Wformat-non-iso clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wformat-non-iso)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticFormatNonIso", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseAwaitUsing", - "shortDescription": { - "text": "Convert into 'await using' statement or declaration" - }, - "fullDescription": { - "text": "Replace 'using' statement or declaration with 'await using' form Learn more...", - "markdown": "Replace 'using' statement or declaration with 'await using' form [Learn more...](https://www.jetbrains.com/help/rider/UseAwaitUsing.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UseAwaitUsing", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppOutdentIsOffPrevLevel", - "shortDescription": { - "text": "Incorrect indent (indent level is not restored)" - }, - "fullDescription": { - "text": "Indent level is not restored", - "markdown": "Indent level is not restored" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppOutdentIsOffPrevLevel", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Formatting", - "index": 28, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyPerformanceMoveConstructorInit", - "shortDescription": { - "text": "performance-move-constructor-init clang-tidy check" - }, - "fullDescription": { - "text": "performance-move-constructor-init clang-tidy check · Learn more", - "markdown": "performance-move-constructor-init clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance/move-constructor-init.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyPerformanceMoveConstructorInit", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "LambdaShouldNotCaptureContext", - "shortDescription": { - "text": "Lambda expression/anonymous method must not have captures of the containing context" - }, - "fullDescription": { - "text": "Lambda expression/anonymous method passed to parameter annotated by '[RequireStaticDelegate]' attribute must not have captures of the containing context (local variables, local functions, 'this' reference) to avoid heap allocations Learn more...", - "markdown": "Lambda expression/anonymous method passed to parameter annotated by '\\[RequireStaticDelegate\\]' attribute must not have captures of the containing context (local variables, local functions, 'this' reference) to avoid heap allocations [Learn more...](https://www.jetbrains.com/help/rider/LambdaShouldNotCaptureContext.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "LambdaShouldNotCaptureContext", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp11Extensions", - "shortDescription": { - "text": "c++11-extensions clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++11-extensions clang diagnostic · Learn more", - "markdown": "-Wc++11-extensions clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-11-extensions)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp11Extensions", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "BadColonSpaces", - "shortDescription": { - "text": "Incorrect spacing (around colon)" - }, - "fullDescription": { - "text": "Around colon Learn more...", - "markdown": "Around colon [Learn more...](https://www.jetbrains.com/help/rider/BadColonSpaces.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "BadColonSpaces", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Formatting", - "index": 24, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyMiscConstCorrectness", - "shortDescription": { - "text": "misc-const-correctness clang-tidy check" - }, - "fullDescription": { - "text": "misc-const-correctness clang-tidy check · Learn more", - "markdown": "misc-const-correctness clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/const-correctness.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyMiscConstCorrectness", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppStaticAssertFailure", - "shortDescription": { - "text": "static_assert failed" - }, - "fullDescription": { - "text": "static_assert failed", - "markdown": "static_assert failed" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "CppStaticAssertFailure", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Compiler Warnings", - "index": 75, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantSetterValueParameterDeclaration", - "shortDescription": { - "text": "Explicit 'value' parameter declaration is redundant" - }, - "fullDescription": { - "text": "Explicit set accessor 'value' parameter declaration is redundant", - "markdown": "Explicit set accessor 'value' parameter declaration is redundant" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RedundantSetterValueParameterDeclaration", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Redundancies in Code", - "index": 96, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppCompilerErrors", - "shortDescription": { - "text": "C++ Compiler Errors" - }, - "fullDescription": { - "text": "C++ Compiler Errors", - "markdown": "C++ Compiler Errors" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "CppCompilerErrors", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Non configurable", - "index": 127, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBReplaceWithOfType.FirstOrDefault.2", - "shortDescription": { - "text": "Replace with OfType<T>().FirstOrDefault() (replace with OfType(Of ..)().FirstOrDefault(..))" - }, - "fullDescription": { - "text": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).FirstOrDefault(Function ($y$) $y$ IsNot Nothing AndAlso $expr$)", - "markdown": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).FirstOrDefault(Function ($y$) $y$ IsNot Nothing AndAlso $expr$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBReplaceWithOfType.FirstOrDefault.2", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBReplaceWithOfType.FirstOrDefault.1", - "shortDescription": { - "text": "Replace with OfType<T>().FirstOrDefault() (replace with OfType(Of ..)().FirstOrDefault())" - }, - "fullDescription": { - "text": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).FirstOrDefault(Function ($y$) $y$ IsNot Nothing)", - "markdown": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).FirstOrDefault(Function ($y$) $y$ IsNot Nothing)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBReplaceWithOfType.FirstOrDefault.1", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPragmaSystemHeaderOutsideHeader", - "shortDescription": { - "text": "pragma-system-header-outside-header clang diagnostic" - }, - "fullDescription": { - "text": "-Wpragma-system-header-outside-header clang diagnostic · Learn more", - "markdown": "-Wpragma-system-header-outside-header clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpragma-system-header-outside-header)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPragmaSystemHeaderOutsideHeader", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithOfType.Last.1", - "shortDescription": { - "text": "Replace with OfType<T>().Last()" - }, - "fullDescription": { - "text": "$seq$.Select($x$ => $x$ as $T$).Last($y$ => $y$ != null)", - "markdown": "$seq$.Select($x$ =\\> $x$ as $T$).Last($y$ =\\> $y$ != null)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithOfType.Last.1", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithOfType.Last.2", - "shortDescription": { - "text": "Replace with OfType<T>().Last() (replace with OfType<T>().Last(..))" - }, - "fullDescription": { - "text": "$seq$.Select($x$ => $x$ as $T$).Last($y$ => $y$ != null && $expr$)", - "markdown": "$seq$.Select($x$ =\\> $x$ as $T$).Last($y$ =\\> $y$ != null \\&\\& $expr$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithOfType.Last.2", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.BurstLocalStringVariableDeclaration", - "shortDescription": { - "text": "Burst: The variable resolves to System.String, which may result in invalid managed method calls at the Burst-compiled call stack" - }, - "fullDescription": { - "text": "Burst: The variable resolves to System.String, which may result in invalid managed method calls at the Burst-compiled call stack", - "markdown": "Burst: The variable resolves to System.String, which may result in invalid managed method calls at the Burst-compiled call stack" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "Unity.BurstLocalStringVariableDeclaration", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity Burst Compiler Warnings", - "index": 57, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMicrosoftFlexibleArray", - "shortDescription": { - "text": "microsoft-flexible-array clang diagnostic" - }, - "fullDescription": { - "text": "-Wmicrosoft-flexible-array clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-flexible-array clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-flexible-array)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftFlexibleArray", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PossibleWriteToMe", - "shortDescription": { - "text": "Possible write to 'Me'" - }, - "fullDescription": { - "text": "Possible write to 'Me'.", - "markdown": "Possible write to 'Me'." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "PossibleWriteToMe", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Potential Code Quality Issues", - "index": 62, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnableToOpenStatsFile", - "shortDescription": { - "text": "unable-to-open-stats-file clang diagnostic" - }, - "fullDescription": { - "text": "-Wunable-to-open-stats-file clang diagnostic · Learn more", - "markdown": "-Wunable-to-open-stats-file clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunable-to-open-stats-file)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnableToOpenStatsFile", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ByRefArgumentIsVolatileField", - "shortDescription": { - "text": "Captured reference to 'volatile' field will not be treated as 'volatile'" - }, - "fullDescription": { - "text": "Captured reference to 'volatile' field will not be treated as 'volatile'", - "markdown": "Captured reference to 'volatile' field will not be treated as 'volatile'" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "ByRefArgumentIsVolatileField", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppMissingBlankLines", - "shortDescription": { - "text": "Incorrect blank lines (blank lines are missing elsewhere)" - }, - "fullDescription": { - "text": "Blank lines are missing elsewhere", - "markdown": "Blank lines are missing elsewhere" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppMissingBlankLines", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Formatting", - "index": 28, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticHlslExtensions", - "shortDescription": { - "text": "hlsl-extensions clang diagnostic" - }, - "fullDescription": { - "text": "-Whlsl-extensions clang diagnostic · Learn more", - "markdown": "-Whlsl-extensions clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#whlsl-extensions)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticHlslExtensions", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyAbseilStringFindStartswith", - "shortDescription": { - "text": "abseil-string-find-startswith clang-tidy check" - }, - "fullDescription": { - "text": "abseil-string-find-startswith clang-tidy check · Learn more", - "markdown": "abseil-string-find-startswith clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/string-find-startswith.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyAbseilStringFindStartswith", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneReturnConstRefFromParameter", - "shortDescription": { - "text": "bugprone-return-const-ref-from-parameter clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-return-const-ref-from-parameter clang-tidy check · Learn more", - "markdown": "bugprone-return-const-ref-from-parameter clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/return-const-ref-from-parameter.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneReturnConstRefFromParameter", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "WebConfig.UnusedAddTag", - "shortDescription": { - "text": "Redundant add element" - }, - "fullDescription": { - "text": "Add element is redundant because it is cleared later and can be safely removed", - "markdown": "Add element is redundant because it is cleared later and can be safely removed" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "WebConfig.UnusedAddTag", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Web.Config/Redundancies in Code", - "index": 98, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyModernizeUseConstraints", - "shortDescription": { - "text": "modernize-use-constraints clang-tidy check" - }, - "fullDescription": { - "text": "modernize-use-constraints clang-tidy check · Learn more", - "markdown": "modernize-use-constraints clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-constraints.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyModernizeUseConstraints", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantCatchClause", - "shortDescription": { - "text": "Redundant catch clause" - }, - "fullDescription": { - "text": "Catch clause with single 'throw' statement is redundant Learn more...", - "markdown": "Catch clause with single 'throw' statement is redundant [Learn more...](https://www.jetbrains.com/help/rider/RedundantCatchClause.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "RedundantCatchClause", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.FieldModifierRequiresNameAttribute", - "shortDescription": { - "text": "x:FieldModifier attribute requires x:Name attribute" - }, - "fullDescription": { - "text": "x:FieldModifier attribute requires x:Name attribute", - "markdown": "x:FieldModifier attribute requires x:Name attribute" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Xaml.FieldModifierRequiresNameAttribute", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Code Notification", - "index": 5, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1872", - "shortDescription": { - "text": "RoslynAnalyzers Prefer 'Convert.ToHexString' and 'Convert.ToHexStringLower' over call chains based on 'BitConverter.ToString'" - }, - "fullDescription": { - "text": "Use 'Convert.ToHexString' or 'Convert.ToHexStringLower' when encoding bytes to a hexadecimal string representation. These methods are more efficient and allocation-friendly than using 'BitConverter.ToString' in combination with 'String.Replace' to replace dashes and 'String.ToLower'.", - "markdown": "Use 'Convert.ToHexString' or 'Convert.ToHexStringLower' when encoding bytes to a hexadecimal string representation. These methods are more efficient and allocation-friendly than using 'BitConverter.ToString' in combination with 'String.Replace' to replace dashes and 'String.ToLower'." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1872", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1871", - "shortDescription": { - "text": "RoslynAnalyzers Do not pass a nullable struct to 'ArgumentNullException.ThrowIfNull'" - }, - "fullDescription": { - "text": "'ArgumentNullException.ThrowIfNull' accepts an 'object', so passing a nullable struct may cause the value to be boxed.", - "markdown": "'ArgumentNullException.ThrowIfNull' accepts an 'object', so passing a nullable struct may cause the value to be boxed." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1871", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1870", - "shortDescription": { - "text": "RoslynAnalyzers Use a cached 'SearchValues' instance" - }, - "fullDescription": { - "text": "Using a cached 'SearchValues' instance is more efficient than passing values to 'IndexOfAny'/'ContainsAny' directly.", - "markdown": "Using a cached 'SearchValues' instance is more efficient than passing values to 'IndexOfAny'/'ContainsAny' directly." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1870", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticArcBridgeCastsDisallowedInNonarc", - "shortDescription": { - "text": "arc-bridge-casts-disallowed-in-nonarc clang diagnostic" - }, - "fullDescription": { - "text": "-Warc-bridge-casts-disallowed-in-nonarc clang diagnostic · Learn more", - "markdown": "-Warc-bridge-casts-disallowed-in-nonarc clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#warc-bridge-casts-disallowed-in-nonarc)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticArcBridgeCastsDisallowedInNonarc", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyObjcSuperSelf", - "shortDescription": { - "text": "objc-super-self clang-tidy check" - }, - "fullDescription": { - "text": "objc-super-self clang-tidy check · Learn more", - "markdown": "objc-super-self clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/objc/super-self.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyObjcSuperSelf", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantPartialMethodEmptyImplementation", - "shortDescription": { - "text": "Empty implementation of 'partial void' method is redundant" - }, - "fullDescription": { - "text": "Empty implementation of 'partial void' method is redundant", - "markdown": "Empty implementation of 'partial void' method is redundant" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantPartialMethodEmptyImplementation", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS0017", - "shortDescription": { - "text": "RoslynAnalyzers Remove deleted types and members from the declared API" - }, - "fullDescription": { - "text": "When removing a public type or member, put that entry in PublicAPI.Unshipped.txt with '*REMOVED*' prefix. This draws attention to API changes in the code reviews and source control history, and helps prevent breaking changes.", - "markdown": "When removing a public type or member, put that entry in PublicAPI.Unshipped.txt with '\\*REMOVED\\*' prefix. This draws attention to API changes in the code reviews and source control history, and helps prevent breaking changes." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS0017", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS0016", - "shortDescription": { - "text": "RoslynAnalyzers Add public types and members to the declared API" - }, - "fullDescription": { - "text": "All public types and members should be declared in PublicAPI.txt. This draws attention to API changes in the code reviews and source control history, and helps prevent breaking changes.", - "markdown": "All public types and members should be declared in PublicAPI.txt. This draws attention to API changes in the code reviews and source control history, and helps prevent breaking changes." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS0016", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppUE4BlueprintCallableFunctionMayBeConst", - "shortDescription": { - "text": "BlueprintCallable function can be made const" - }, - "fullDescription": { - "text": "BlueprintCallable function can be made const", - "markdown": "BlueprintCallable function can be made const" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppUE4BlueprintCallableFunctionMayBeConst", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Unreal Engine", - "index": 6, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticAbsoluteValue", - "shortDescription": { - "text": "absolute-value clang diagnostic" - }, - "fullDescription": { - "text": "-Wabsolute-value clang diagnostic · Learn more", - "markdown": "-Wabsolute-value clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wabsolute-value)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticAbsoluteValue", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1869", - "shortDescription": { - "text": "RoslynAnalyzers Cache and reuse 'JsonSerializerOptions' instances" - }, - "fullDescription": { - "text": "Avoid creating a new 'JsonSerializerOptions' instance for every serialization operation. Cache and reuse instances instead. Single use 'JsonSerializerOptions' instances can substantially degrade the performance of your application.", - "markdown": "Avoid creating a new 'JsonSerializerOptions' instance for every serialization operation. Cache and reuse instances instead. Single use 'JsonSerializerOptions' instances can substantially degrade the performance of your application." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1869", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1868", - "shortDescription": { - "text": "RoslynAnalyzers Unnecessary call to 'Contains(item)'" - }, - "fullDescription": { - "text": "Do not guard 'Add(item)' or 'Remove(item)' with 'Contains(item)' for the set. The former two already check whether the item exists and will return if it was added or removed.", - "markdown": "Do not guard 'Add(item)' or 'Remove(item)' with 'Contains(item)' for the set. The former two already check whether the item exists and will return if it was added or removed." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1868", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1867", - "shortDescription": { - "text": "RoslynAnalyzers Use char overload" - }, - "fullDescription": { - "text": "The char overload is a better performing overload than a string with a single char.", - "markdown": "The char overload is a better performing overload than a string with a single char." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1867", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1866", - "shortDescription": { - "text": "RoslynAnalyzers Use char overload" - }, - "fullDescription": { - "text": "The char overload is a better performing overload than a string with a single char.", - "markdown": "The char overload is a better performing overload than a string with a single char." - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "CA1866", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1865", - "shortDescription": { - "text": "RoslynAnalyzers Use char overload" - }, - "fullDescription": { - "text": "The char overload is a better performing overload than a string with a single char.", - "markdown": "The char overload is a better performing overload than a string with a single char." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1865", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1864", - "shortDescription": { - "text": "RoslynAnalyzers Prefer the 'IDictionary.TryAdd(TKey, TValue)' method" - }, - "fullDescription": { - "text": "Prefer a 'TryAdd' call over an 'Add' call guarded by a 'ContainsKey' check. 'TryAdd' behaves the same as 'Add', except that when the specified key already exists, it returns 'false' instead of throwing an exception.", - "markdown": "Prefer a 'TryAdd' call over an 'Add' call guarded by a 'ContainsKey' check. 'TryAdd' behaves the same as 'Add', except that when the specified key already exists, it returns 'false' instead of throwing an exception." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1864", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1863", - "shortDescription": { - "text": "RoslynAnalyzers Use 'CompositeFormat'" - }, - "fullDescription": { - "text": "Cache and use a 'CompositeFormat' instance as the argument to this formatting operation, rather than passing in the original format string. This reduces the cost of the formatting operation.", - "markdown": "Cache and use a 'CompositeFormat' instance as the argument to this formatting operation, rather than passing in the original format string. This reduces the cost of the formatting operation." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1863", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1862", - "shortDescription": { - "text": "RoslynAnalyzers Use the 'StringComparison' method overloads to perform case-insensitive string comparisons" - }, - "fullDescription": { - "text": "Avoid calling 'ToLower', 'ToUpper', 'ToLowerInvariant' and 'ToUpperInvariant' to perform case-insensitive string comparisons because they lead to an allocation. Instead, prefer calling the method overloads of 'Contains', 'IndexOf' and 'StartsWith' that take a 'StringComparison' enum value to perform case-insensitive comparisons. Switching to using an overload that takes a 'StringComparison' might cause subtle changes in behavior, so it's important to conduct thorough testing after applying the suggestion. Additionally, if a culturally sensitive comparison is not required, consider using 'StringComparison.OrdinalIgnoreCase'.", - "markdown": "Avoid calling 'ToLower', 'ToUpper', 'ToLowerInvariant' and 'ToUpperInvariant' to perform case-insensitive string comparisons because they lead to an allocation. Instead, prefer calling the method overloads of 'Contains', 'IndexOf' and 'StartsWith' that take a 'StringComparison' enum value to perform case-insensitive comparisons. Switching to using an overload that takes a 'StringComparison' might cause subtle changes in behavior, so it's important to conduct thorough testing after applying the suggestion. Additionally, if a culturally sensitive comparison is not required, consider using 'StringComparison.OrdinalIgnoreCase'." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1862", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDeprecatedNoRelaxedTemplateTemplateArgs", - "shortDescription": { - "text": "deprecated-no-relaxed-template-template-args clang diagnostic" - }, - "fullDescription": { - "text": "-Wdeprecated-no-relaxed-template-template-args clang diagnostic · Learn more", - "markdown": "-Wdeprecated-no-relaxed-template-template-args clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-no-relaxed-template-template-args)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedNoRelaxedTemplateTemplateArgs", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1861", - "shortDescription": { - "text": "RoslynAnalyzers Avoid constant arrays as arguments" - }, - "fullDescription": { - "text": "Constant arrays passed as arguments are not reused when called repeatedly, which implies a new array is created each time. Consider extracting them to 'static readonly' fields to improve performance if the passed array is not mutated within the called method.", - "markdown": "Constant arrays passed as arguments are not reused when called repeatedly, which implies a new array is created each time. Consider extracting them to 'static readonly' fields to improve performance if the passed array is not mutated within the called method." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1861", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppNonExplicitConversionOperator", - "shortDescription": { - "text": "Non-explicit conversion operator" - }, - "fullDescription": { - "text": "Non-explicit conversion operator Learn more...", - "markdown": "Non-explicit conversion operator [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Ro-conversion)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppNonExplicitConversionOperator", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Common Practices and Code Improvements", - "index": 16, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit2002", - "shortDescription": { - "text": "RoslynAnalyzers Consider using Assert.That(expr, Is.False) instead of ClassicAssert.IsFalse(expr)" - }, - "fullDescription": { - "text": "Consider using the constraint model, Assert.That(expr, Is.False), instead of the classic model, ClassicAssert.IsFalse(expr).", - "markdown": "Consider using the constraint model, Assert.That(expr, Is.False), instead of the classic model, ClassicAssert.IsFalse(expr)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "NUnit2002", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1860", - "shortDescription": { - "text": "RoslynAnalyzers Avoid using 'Enumerable.Any()' extension method" - }, - "fullDescription": { - "text": "Prefer using 'IsEmpty', 'Count' or 'Length' properties whichever available, rather than calling 'Enumerable.Any()'. The intent is clearer and it is more performant than using 'Enumerable.Any()' extension method.", - "markdown": "Prefer using 'IsEmpty', 'Count' or 'Length' properties whichever available, rather than calling 'Enumerable.Any()'. The intent is clearer and it is more performant than using 'Enumerable.Any()' extension method." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1860", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDeprecatedThisCapture", - "shortDescription": { - "text": "deprecated-this-capture clang diagnostic" - }, - "fullDescription": { - "text": "-Wdeprecated-this-capture clang diagnostic · Learn more", - "markdown": "-Wdeprecated-this-capture clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-this-capture)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedThisCapture", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit2003", - "shortDescription": { - "text": "RoslynAnalyzers Consider using Assert.That(expr, Is.True) instead of ClassicAssert.IsTrue(expr)" - }, - "fullDescription": { - "text": "Consider using the constraint model, Assert.That(expr, Is.True), instead of the classic model, ClassicAssert.IsTrue(expr).", - "markdown": "Consider using the constraint model, Assert.That(expr, Is.True), instead of the classic model, ClassicAssert.IsTrue(expr)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "NUnit2003", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticNullability", - "shortDescription": { - "text": "nullability clang diagnostic" - }, - "fullDescription": { - "text": "-Wnullability clang diagnostic · Learn more", - "markdown": "-Wnullability clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnullability)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticNullability", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCertDcl16C", - "shortDescription": { - "text": "cert-dcl16-c clang-tidy check" - }, - "fullDescription": { - "text": "cert-dcl16-c clang-tidy check · Learn more", - "markdown": "cert-dcl16-c clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/dcl16-c.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCertDcl16C", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit2001", - "shortDescription": { - "text": "RoslynAnalyzers Consider using Assert.That(expr, Is.False) instead of ClassicAssert.False(expr)" - }, - "fullDescription": { - "text": "Consider using the constraint model, Assert.That(expr, Is.False), instead of the classic model, ClassicAssert.False(expr).", - "markdown": "Consider using the constraint model, Assert.That(expr, Is.False), instead of the classic model, ClassicAssert.False(expr)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "NUnit2001", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit2006", - "shortDescription": { - "text": "RoslynAnalyzers Consider using Assert.That(actual, Is.Not.EqualTo(expected)) instead of ClassicAssert.AreNotEqual(expected, actual)" - }, - "fullDescription": { - "text": "Consider using the constraint model, Assert.That(actual, Is.Not.EqualTo(expected)), instead of the classic model, ClassicAssert.AreNotEqual(expected, actual).", - "markdown": "Consider using the constraint model, Assert.That(actual, Is.Not.EqualTo(expected)), instead of the classic model, ClassicAssert.AreNotEqual(expected, actual)." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NUnit2006", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticLogicalNotParentheses", - "shortDescription": { - "text": "logical-not-parentheses clang diagnostic" - }, - "fullDescription": { - "text": "-Wlogical-not-parentheses clang diagnostic · Learn more", - "markdown": "-Wlogical-not-parentheses clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wlogical-not-parentheses)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticLogicalNotParentheses", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit2007", - "shortDescription": { - "text": "RoslynAnalyzers The actual value should not be a constant" - }, - "fullDescription": { - "text": "The actual value should not be a constant. This indicates that the actual value and the expected value have switched places.", - "markdown": "The actual value should not be a constant. This indicates that the actual value and the expected value have switched places." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NUnit2007", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit2004", - "shortDescription": { - "text": "RoslynAnalyzers Consider using Assert.That(expr, Is.True) instead of ClassicAssert.True(expr)" - }, - "fullDescription": { - "text": "Consider using the constraint model, Assert.That(expr, Is.True), instead of the classic model, ClassicAssert.True(expr).", - "markdown": "Consider using the constraint model, Assert.That(expr, Is.True), instead of the classic model, ClassicAssert.True(expr)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "NUnit2004", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit2005", - "shortDescription": { - "text": "RoslynAnalyzers Consider using Assert.That(actual, Is.EqualTo(expected)) instead of ClassicAssert.AreEqual(expected, actual)" - }, - "fullDescription": { - "text": "Consider using the constraint model, Assert.That(actual, Is.EqualTo(expected)), instead of the classic model, ClassicAssert.AreEqual(expected, actual).", - "markdown": "Consider using the constraint model, Assert.That(actual, Is.EqualTo(expected)), instead of the classic model, ClassicAssert.AreEqual(expected, actual)." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NUnit2005", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticAutoImport", - "shortDescription": { - "text": "auto-import clang diagnostic" - }, - "fullDescription": { - "text": "-Wauto-import clang diagnostic · Learn more", - "markdown": "-Wauto-import clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wauto-import)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticAutoImport", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppUPropertyMacroCallHasNoEffect", - "shortDescription": { - "text": "UPROPERTY macro call has no effect" - }, - "fullDescription": { - "text": "UPROPERTY macro call has no effect outside of UCLASS or USTRUCT", - "markdown": "UPROPERTY macro call has no effect outside of UCLASS or USTRUCT" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppUPropertyMacroCallHasNoEffect", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Unreal Engine", - "index": 6, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit2008", - "shortDescription": { - "text": "RoslynAnalyzers Incorrect IgnoreCase usage" - }, - "fullDescription": { - "text": "The IgnoreCase modifier should only be used for string or char arguments. Using it on another type will not have any effect.", - "markdown": "The IgnoreCase modifier should only be used for string or char arguments. Using it on another type will not have any effect." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NUnit2008", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit2009", - "shortDescription": { - "text": "RoslynAnalyzers The same value has been provided as both the actual and the expected argument" - }, - "fullDescription": { - "text": "The same value has been provided as both the actual and the expected argument. This indicates a coding error.", - "markdown": "The same value has been provided as both the actual and the expected argument. This indicates a coding error." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NUnit2009", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1859", - "shortDescription": { - "text": "RoslynAnalyzers Use concrete types when possible for improved performance" - }, - "fullDescription": { - "text": "Using concrete types avoids virtual or interface call overhead and enables inlining.", - "markdown": "Using concrete types avoids virtual or interface call overhead and enables inlining." - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "CA1859", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyOpenmpExceptionEscape", - "shortDescription": { - "text": "openmp-exception-escape clang-tidy check" - }, - "fullDescription": { - "text": "openmp-exception-escape clang-tidy check · Learn more", - "markdown": "openmp-exception-escape clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/openmp/exception-escape.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyOpenmpExceptionEscape", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticTautologicalPointerCompare", - "shortDescription": { - "text": "tautological-pointer-compare clang diagnostic" - }, - "fullDescription": { - "text": "-Wtautological-pointer-compare clang diagnostic · Learn more", - "markdown": "-Wtautological-pointer-compare clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wtautological-pointer-compare)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticTautologicalPointerCompare", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1858", - "shortDescription": { - "text": "RoslynAnalyzers Use 'StartsWith' instead of 'IndexOf'" - }, - "fullDescription": { - "text": "It is both clearer and faster to use 'StartsWith' instead of comparing the result of 'IndexOf' to zero.", - "markdown": "It is both clearer and faster to use 'StartsWith' instead of comparing the result of 'IndexOf' to zero." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1858", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1857", - "shortDescription": { - "text": "RoslynAnalyzers A constant is expected for the parameter" - }, - "fullDescription": { - "text": "The parameter expects a constant for optimal performance.", - "markdown": "The parameter expects a constant for optimal performance." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1857", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "BadMemberAccessSpaces", - "shortDescription": { - "text": "Incorrect spacing (around member access symbols)" - }, - "fullDescription": { - "text": "Around member access symbols Learn more...", - "markdown": "Around member access symbols [Learn more...](https://www.jetbrains.com/help/rider/BadMemberAccessSpaces.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "BadMemberAccessSpaces", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Formatting", - "index": 24, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticC99Designator", - "shortDescription": { - "text": "c99-designator clang diagnostic" - }, - "fullDescription": { - "text": "-Wc99-designator clang diagnostic · Learn more", - "markdown": "-Wc99-designator clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc99-designator)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticC99Designator", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1856", - "shortDescription": { - "text": "RoslynAnalyzers Incorrect usage of ConstantExpected attribute" - }, - "fullDescription": { - "text": "ConstantExpected attribute is not applied correctly on the parameter.", - "markdown": "ConstantExpected attribute is not applied correctly on the parameter." - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "CA1856", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1855", - "shortDescription": { - "text": "RoslynAnalyzers Prefer 'Clear' over 'Fill'" - }, - "fullDescription": { - "text": "It is more efficient to use 'Clear', instead of 'Fill' with default value.", - "markdown": "It is more efficient to use 'Clear', instead of 'Fill' with default value." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1855", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1854", - "shortDescription": { - "text": "RoslynAnalyzers Prefer the 'IDictionary.TryGetValue(TKey, out TValue)' method" - }, - "fullDescription": { - "text": "Prefer a 'TryGetValue' call over a Dictionary indexer access guarded by a 'ContainsKey' check. 'ContainsKey' and the indexer both would lookup the key under the hood, so using 'TryGetValue' removes the extra lookup.", - "markdown": "Prefer a 'TryGetValue' call over a Dictionary indexer access guarded by a 'ContainsKey' check. 'ContainsKey' and the indexer both would lookup the key under the hood, so using 'TryGetValue' removes the extra lookup." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1854", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1853", - "shortDescription": { - "text": "RoslynAnalyzers Unnecessary call to 'Dictionary.ContainsKey(key)'" - }, - "fullDescription": { - "text": "Do not guard 'Dictionary.Remove(key)' with 'Dictionary.ContainsKey(key)'. The former already checks whether the key exists, and will not throw if it does not.", - "markdown": "Do not guard 'Dictionary.Remove(key)' with 'Dictionary.ContainsKey(key)'. The former already checks whether the key exists, and will not throw if it does not." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1853", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1852", - "shortDescription": { - "text": "RoslynAnalyzers Seal internal types" - }, - "fullDescription": { - "text": "When a type is not accessible outside its assembly and has no subtypes within its containing assembly, it can be safely sealed. Sealing types can improve performance.", - "markdown": "When a type is not accessible outside its assembly and has no subtypes within its containing assembly, it can be safely sealed. Sealing types can improve performance." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1852", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1851", - "shortDescription": { - "text": "RoslynAnalyzers Possible multiple enumerations of 'IEnumerable' collection" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1851", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xunit.XunitTestWithConsoleOutput", - "shortDescription": { - "text": "Console output in Xunit tests" - }, - "fullDescription": { - "text": "Xunit tests should use ITestOutputHelper instead of System.Console. Learn more...", - "markdown": "Xunit tests should use ITestOutputHelper instead of System.Console. [Learn more...](https://www.jetbrains.com/help/rider/Xunit.XunitTestWithConsoleOutput.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Xunit.XunitTestWithConsoleOutput", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Xunit", - "index": 173, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1850", - "shortDescription": { - "text": "RoslynAnalyzers Prefer static 'HashData' method over 'ComputeHash'" - }, - "fullDescription": { - "text": "It is more efficient to use the static 'HashData' method over creating and managing a HashAlgorithm instance to call 'ComputeHash'.", - "markdown": "It is more efficient to use the static 'HashData' method over creating and managing a HashAlgorithm instance to call 'ComputeHash'." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1850", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticNonnull", - "shortDescription": { - "text": "nonnull clang diagnostic" - }, - "fullDescription": { - "text": "-Wnonnull clang diagnostic · Learn more", - "markdown": "-Wnonnull clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnonnull)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticNonnull", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConvertIfToOrExpression", - "shortDescription": { - "text": "Convert 'if' into '||'" - }, - "fullDescription": { - "text": "Suggest to replace bool result = x > 0; if (y > 0) result = true; To bool result = x > 0 || y > 0; Learn more...", - "markdown": "Suggest to replace bool result = x \\> 0; if (y \\> 0) result = true; To bool result = x \\> 0 \\|\\| y \\> 0; [Learn more...](https://www.jetbrains.com/help/rider/ConvertIfToOrExpression.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ConvertIfToOrExpression", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantInclude", - "shortDescription": { - "text": "Redundant include" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantInclude", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "T4/T4", - "index": 116, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticInvalidInitializerFromSystemHeader", - "shortDescription": { - "text": "invalid-initializer-from-system-header clang diagnostic" - }, - "fullDescription": { - "text": "-Winvalid-initializer-from-system-header clang diagnostic · Learn more", - "markdown": "-Winvalid-initializer-from-system-header clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winvalid-initializer-from-system-header)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticInvalidInitializerFromSystemHeader", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticArmInterruptVfpClobber", - "shortDescription": { - "text": "arm-interrupt-vfp-clobber clang diagnostic" - }, - "fullDescription": { - "text": "-Warm-interrupt-vfp-clobber clang diagnostic · Learn more", - "markdown": "-Warm-interrupt-vfp-clobber clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#warm-interrupt-vfp-clobber)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticArmInterruptVfpClobber", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneSuspiciousMemsetUsage", - "shortDescription": { - "text": "bugprone-suspicious-memset-usage clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-suspicious-memset-usage clang-tidy check · Learn more", - "markdown": "bugprone-suspicious-memset-usage clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/suspicious-memset-usage.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneSuspiciousMemsetUsage", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1849", - "shortDescription": { - "text": "RoslynAnalyzers Call async methods when in an async method" - }, - "fullDescription": { - "text": "When inside a Task-returning method, use the async version of methods, if they exist.", - "markdown": "When inside a Task-returning method, use the async version of methods, if they exist." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1849", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1848", - "shortDescription": { - "text": "RoslynAnalyzers Use the LoggerMessage delegates" - }, - "fullDescription": { - "text": "For improved performance, use the LoggerMessage delegates.", - "markdown": "For improved performance, use the LoggerMessage delegates." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1848", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1847", - "shortDescription": { - "text": "RoslynAnalyzers Use char literal for a single character lookup" - }, - "fullDescription": { - "text": "'string.Contains(char)' is available as a better performing overload for single char lookup.", - "markdown": "'string.Contains(char)' is available as a better performing overload for single char lookup." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1847", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1846", - "shortDescription": { - "text": "RoslynAnalyzers Prefer 'AsSpan' over 'Substring'" - }, - "fullDescription": { - "text": "'AsSpan' is more efficient than 'Substring'. 'Substring' performs an O(n) string copy, while 'AsSpan' does not and has a constant cost.", - "markdown": "'AsSpan' is more efficient than 'Substring'. 'Substring' performs an O(n) string copy, while 'AsSpan' does not and has a constant cost." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1846", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDeprecatedArrayCompare", - "shortDescription": { - "text": "deprecated-array-compare clang diagnostic" - }, - "fullDescription": { - "text": "-Wdeprecated-array-compare clang diagnostic · Learn more", - "markdown": "-Wdeprecated-array-compare clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-array-compare)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedArrayCompare", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1845", - "shortDescription": { - "text": "RoslynAnalyzers Use span-based 'string.Concat'" - }, - "fullDescription": { - "text": "It is more efficient to use 'AsSpan' and 'string.Concat', instead of 'Substring' and a concatenation operator.", - "markdown": "It is more efficient to use 'AsSpan' and 'string.Concat', instead of 'Substring' and a concatenation operator." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1845", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1844", - "shortDescription": { - "text": "RoslynAnalyzers Provide memory-based overrides of async methods when subclassing 'Stream'" - }, - "fullDescription": { - "text": "To improve performance, override the memory-based async methods when subclassing 'Stream'. Then implement the array-based methods in terms of the memory-based methods.", - "markdown": "To improve performance, override the memory-based async methods when subclassing 'Stream'. Then implement the array-based methods in terms of the memory-based methods." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1844", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithSingleCallToCount", - "shortDescription": { - "text": "Replace with single call to Count(..)" - }, - "fullDescription": { - "text": "$seq$.Where($x$ => $expr$).Count()", - "markdown": "$seq$.Where($x$ =\\> $expr$).Count()" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithSingleCallToCount", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1843", - "shortDescription": { - "text": "RoslynAnalyzers Do not use 'WaitAll' with a single task" - }, - "fullDescription": { - "text": "Using 'WaitAll' with a single task may result in performance loss, await or return the task instead.", - "markdown": "Using 'WaitAll' with a single task may result in performance loss, await or return the task instead." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1843", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1842", - "shortDescription": { - "text": "RoslynAnalyzers Do not use 'WhenAll' with a single task" - }, - "fullDescription": { - "text": "Using 'WhenAll' with a single task may result in performance loss, await or return the task instead.", - "markdown": "Using 'WhenAll' with a single task may result in performance loss, await or return the task instead." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1842", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1841", - "shortDescription": { - "text": "RoslynAnalyzers Prefer Dictionary.Contains methods" - }, - "fullDescription": { - "text": "'ContainsKey' is usually O(1), while 'Keys.Contains' may be O(n) in some cases. Additionally, many dictionary implementations lazily initialize the Keys collection to cut back on allocations.", - "markdown": "'ContainsKey' is usually O(1), while 'Keys.Contains' may be O(n) in some cases. Additionally, many dictionary implementations lazily initialize the Keys collection to cut back on allocations." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1841", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1840", - "shortDescription": { - "text": "RoslynAnalyzers Use 'Environment.CurrentManagedThreadId'" - }, - "fullDescription": { - "text": "'Environment.CurrentManagedThreadId' is simpler and faster than 'Thread.CurrentThread.ManagedThreadId'.", - "markdown": "'Environment.CurrentManagedThreadId' is simpler and faster than 'Thread.CurrentThread.ManagedThreadId'." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1840", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit2024", - "shortDescription": { - "text": "RoslynAnalyzers Wrong actual type used with String Constraint" - }, - "fullDescription": { - "text": "The type of the actual argument is not a string and hence cannot be used with a String Constraint.", - "markdown": "The type of the actual argument is not a string and hence cannot be used with a String Constraint." - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "NUnit2024", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit2025", - "shortDescription": { - "text": "RoslynAnalyzers Wrong actual type used with ContainsConstraint" - }, - "fullDescription": { - "text": "The ContainsConstraint requires the type of the actual value to be either a string or a collection of strings.", - "markdown": "The ContainsConstraint requires the type of the actual value to be either a string or a collection of strings." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "NUnit2025", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit2022", - "shortDescription": { - "text": "RoslynAnalyzers Missing property required for constraint" - }, - "fullDescription": { - "text": "The actual argument should have the required property for the constraint.", - "markdown": "The actual argument should have the required property for the constraint." - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "NUnit2022", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit2023", - "shortDescription": { - "text": "RoslynAnalyzers Invalid NullConstraint usage" - }, - "fullDescription": { - "text": "NullConstraint is allowed only for reference types or nullable value types.", - "markdown": "NullConstraint is allowed only for reference types or nullable value types." - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "NUnit2023", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "TypeWithSuspiciousEqualityIsUsedInRecord.Global", - "shortDescription": { - "text": "Type with suspicious equality is used in a record (non-private accessibility)" - }, - "fullDescription": { - "text": "Type with suspicious equality is used as a member of a record type. This inspection only triggers when the record type is actually used for equality comparisons in the solution. Learn more...", - "markdown": "Type with suspicious equality is used as a member of a record type. This inspection only triggers when the record type is actually used for equality comparisons in the solution. [Learn more...](https://www.jetbrains.com/help/rider/TypeWithSuspiciousEqualityIsUsedInRecord.Global.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "TypeWithSuspiciousEqualityIsUsedInRecord.Global", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit2028", - "shortDescription": { - "text": "RoslynAnalyzers Consider using Assert.That(actual, Is.GreaterThanOrEqualTo(expected)) instead of ClassicAssert.GreaterOrEqual(actual, expected)" - }, - "fullDescription": { - "text": "Consider using the constraint model, Assert.That(actual, Is.GreaterThanOrEqualTo(expected)), instead of the classic model, ClassicAssert.GreaterOrEqual(actual, expected).", - "markdown": "Consider using the constraint model, Assert.That(actual, Is.GreaterThanOrEqualTo(expected)), instead of the classic model, ClassicAssert.GreaterOrEqual(actual, expected)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "NUnit2028", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit2029", - "shortDescription": { - "text": "RoslynAnalyzers Consider using Assert.That(actual, Is.LessThan(expected)) instead of ClassicAssert.Less(actual, expected)" - }, - "fullDescription": { - "text": "Consider using the constraint model, Assert.That(actual, Is.LessThan(expected)), instead of the classic model, ClassicAssert.Less(actual, expected).", - "markdown": "Consider using the constraint model, Assert.That(actual, Is.LessThan(expected)), instead of the classic model, ClassicAssert.Less(actual, expected)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "NUnit2029", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppAbstractVirtualFunctionCallInCtor", - "shortDescription": { - "text": "Call to a virtual function inside a constructor/destructor will result in a pure virtual function call" - }, - "fullDescription": { - "text": "Calls to pure virtual functions inside constructors and destructors will result in runtime errors", - "markdown": "Calls to pure virtual functions inside constructors and destructors will result in runtime errors" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "CppAbstractVirtualFunctionCallInCtor", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.BurstSharedStaticCreate", - "shortDescription": { - "text": "Some SharedStatic`1.GetOrCreate overloads cause compiler errors" - }, - "fullDescription": { - "text": "Some SharedStatic`1.GetOrCreate overloads cause compiler errors", - "markdown": "Some SharedStatic\\`1.GetOrCreate overloads cause compiler errors" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.BurstSharedStaticCreate", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity Burst Compiler Warnings", - "index": 57, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit2026", - "shortDescription": { - "text": "RoslynAnalyzers Wrong actual type used with the SomeItemsConstraint with EqualConstraint" - }, - "fullDescription": { - "text": "The SomeItemsConstraint with EqualConstraint requires the actual argument to be a collection where the element type can match the type of the expected argument.", - "markdown": "The SomeItemsConstraint with EqualConstraint requires the actual argument to be a collection where the element type can match the type of the expected argument." - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "NUnit2026", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit2027", - "shortDescription": { - "text": "RoslynAnalyzers Consider using Assert.That(actual, Is.GreaterThan(expected)) instead of ClassicAssert.Greater(actual, expected)" - }, - "fullDescription": { - "text": "Consider using the constraint model, Assert.That(actual, Is.GreaterThan(expected)), instead of the classic model, ClassicAssert.Greater(actual, expected).", - "markdown": "Consider using the constraint model, Assert.That(actual, Is.GreaterThan(expected)), instead of the classic model, ClassicAssert.Greater(actual, expected)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "NUnit2027", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyHicppStaticAssert", - "shortDescription": { - "text": "hicpp-static-assert clang-tidy check" - }, - "fullDescription": { - "text": "hicpp-static-assert clang-tidy check · Learn more", - "markdown": "hicpp-static-assert clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/static-assert.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyHicppStaticAssert", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "InvalidValueType", - "shortDescription": { - "text": "Resource value type is invalid" - }, - "fullDescription": { - "text": "Resource in base culture has another value type", - "markdown": "Resource in base culture has another value type" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "InvalidValueType", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "ResX/Potential Code Quality Issues", - "index": 68, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantPropertyParentheses", - "shortDescription": { - "text": "Parameterless property parentheses are redundant" - }, - "fullDescription": { - "text": "Parameterless property parameter parentheses are redundant", - "markdown": "Parameterless property parameter parentheses are redundant" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RedundantPropertyParentheses", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Redundancies in Code", - "index": 96, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1839", - "shortDescription": { - "text": "RoslynAnalyzers Use 'Environment.ProcessPath'" - }, - "fullDescription": { - "text": "'Environment.ProcessPath' is simpler and faster than 'Process.GetCurrentProcess().MainModule.FileName'.", - "markdown": "'Environment.ProcessPath' is simpler and faster than 'Process.GetCurrentProcess().MainModule.FileName'." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1839", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1838", - "shortDescription": { - "text": "RoslynAnalyzers Avoid 'StringBuilder' parameters for P/Invokes" - }, - "fullDescription": { - "text": "Marshalling of 'StringBuilder' always creates a native buffer copy, resulting in multiple allocations for one marshalling operation.", - "markdown": "Marshalling of 'StringBuilder' always creates a native buffer copy, resulting in multiple allocations for one marshalling operation." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1838", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ContainerAnnotationRedundancy", - "shortDescription": { - "text": "Container nullability attribute usage with declaration of non-container type" - }, - "fullDescription": { - "text": "Container nullability attribute usage with declaration of non-container type does not affect code analysis", - "markdown": "Container nullability attribute usage with declaration of non-container type does not affect code analysis" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "ContainerAnnotationRedundancy", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBUseArrayCreationExpression.1", - "shortDescription": { - "text": "Use array creation expression" - }, - "fullDescription": { - "text": "Array.CreateInstance(GetType($T$), $long$)", - "markdown": "Array.CreateInstance(GetType($T$), $long$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBUseArrayCreationExpression.1", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1837", - "shortDescription": { - "text": "RoslynAnalyzers Use 'Environment.ProcessId'" - }, - "fullDescription": { - "text": "'Environment.ProcessId' is simpler and faster than 'Process.GetCurrentProcess().Id'.", - "markdown": "'Environment.ProcessId' is simpler and faster than 'Process.GetCurrentProcess().Id'." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1837", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBUseArrayCreationExpression.2", - "shortDescription": { - "text": "Use array creation expression" - }, - "fullDescription": { - "text": "Array.CreateInstance(GetType($T$), $long$, $long2$)", - "markdown": "Array.CreateInstance(GetType($T$), $long$, $long2$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBUseArrayCreationExpression.2", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1836", - "shortDescription": { - "text": "RoslynAnalyzers Prefer IsEmpty over Count" - }, - "fullDescription": { - "text": "For determining whether the object contains or not any items, prefer using 'IsEmpty' property rather than retrieving the number of items from the 'Count' property and comparing it to 0 or 1.", - "markdown": "For determining whether the object contains or not any items, prefer using 'IsEmpty' property rather than retrieving the number of items from the 'Count' property and comparing it to 0 or 1." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1836", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticGlobalIsel", - "shortDescription": { - "text": "global-isel clang diagnostic" - }, - "fullDescription": { - "text": "-Wglobal-isel clang diagnostic · Learn more", - "markdown": "-Wglobal-isel clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wglobal-isel)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticGlobalIsel", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1835", - "shortDescription": { - "text": "RoslynAnalyzers Prefer the 'Memory'-based overloads for 'ReadAsync' and 'WriteAsync'" - }, - "fullDescription": { - "text": "'Stream' has a 'ReadAsync' overload that takes a 'Memory' as the first argument, and a 'WriteAsync' overload that takes a 'ReadOnlyMemory' as the first argument. Prefer calling the memory based overloads, which are more efficient.", - "markdown": "'Stream' has a 'ReadAsync' overload that takes a 'Memory' as the first argument, and a 'WriteAsync' overload that takes a 'ReadOnlyMemory' as the first argument. Prefer calling the memory based overloads, which are more efficient." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1835", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1834", - "shortDescription": { - "text": "RoslynAnalyzers Consider using 'StringBuilder.Append(char)' when applicable" - }, - "fullDescription": { - "text": "'StringBuilder.Append(char)' is more efficient than 'StringBuilder.Append(string)' when the string is a single character. When calling 'Append' with a constant, prefer using a constant char rather than a constant string containing one character.", - "markdown": "'StringBuilder.Append(char)' is more efficient than 'StringBuilder.Append(string)' when the string is a single character. When calling 'Append' with a constant, prefer using a constant char rather than a constant string containing one character." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1834", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1833", - "shortDescription": { - "text": "RoslynAnalyzers Use AsSpan or AsMemory instead of Range-based indexers when appropriate" - }, - "fullDescription": { - "text": "The Range-based indexer on array values produces a copy of requested portion of the array. This copy is often unwanted when it is implicitly used as a Span or Memory value. Use the AsSpan method to avoid the copy.", - "markdown": "The Range-based indexer on array values produces a copy of requested portion of the array. This copy is often unwanted when it is implicitly used as a Span or Memory value. Use the AsSpan method to avoid the copy." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1833", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1832", - "shortDescription": { - "text": "RoslynAnalyzers Use AsSpan or AsMemory instead of Range-based indexers when appropriate" - }, - "fullDescription": { - "text": "The Range-based indexer on array values produces a copy of requested portion of the array. This copy is usually unnecessary when it is implicitly used as a ReadOnlySpan or ReadOnlyMemory value. Use the AsSpan method to avoid the unnecessary copy.", - "markdown": "The Range-based indexer on array values produces a copy of requested portion of the array. This copy is usually unnecessary when it is implicitly used as a ReadOnlySpan or ReadOnlyMemory value. Use the AsSpan method to avoid the unnecessary copy." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1832", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit2020", - "shortDescription": { - "text": "RoslynAnalyzers Incompatible types for SameAs constraint" - }, - "fullDescription": { - "text": "The SameAs constraint always fails because the actual and expected values have mutually exclusive types.", - "markdown": "The SameAs constraint always fails because the actual and expected values have mutually exclusive types." - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "NUnit2020", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1831", - "shortDescription": { - "text": "RoslynAnalyzers Use AsSpan or AsMemory instead of Range-based indexers when appropriate" - }, - "fullDescription": { - "text": "The Range-based indexer on string values produces a copy of requested portion of the string. This copy is usually unnecessary when it is implicitly used as a ReadOnlySpan or ReadOnlyMemory value. Use the AsSpan method to avoid the unnecessary copy.", - "markdown": "The Range-based indexer on string values produces a copy of requested portion of the string. This copy is usually unnecessary when it is implicitly used as a ReadOnlySpan or ReadOnlyMemory value. Use the AsSpan method to avoid the unnecessary copy." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1831", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ParameterOnlyUsedForPreconditionCheck.Local", - "shortDescription": { - "text": "Parameter is only used for precondition check (private accessibility)" - }, - "fullDescription": { - "text": "Parameter is only used for precondition check", - "markdown": "Parameter is only used for precondition check" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "ParameterOnlyUsedForPreconditionCheck.Local", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1830", - "shortDescription": { - "text": "RoslynAnalyzers Prefer strongly-typed Append and Insert method overloads on StringBuilder" - }, - "fullDescription": { - "text": "StringBuilder.Append and StringBuilder.Insert provide overloads for multiple types beyond System.String. When possible, prefer the strongly-typed overloads over using ToString() and the string-based overload.", - "markdown": "StringBuilder.Append and StringBuilder.Insert provide overloads for multiple types beyond System.String. When possible, prefer the strongly-typed overloads over using ToString() and the string-based overload." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1830", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit2021", - "shortDescription": { - "text": "RoslynAnalyzers Incompatible types for EqualTo constraint" - }, - "fullDescription": { - "text": "The EqualTo constraint always fails as the actual and the expected value cannot be equal.", - "markdown": "The EqualTo constraint always fails as the actual and the expected value cannot be equal." - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "NUnit2021", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit2013", - "shortDescription": { - "text": "RoslynAnalyzers Use EndsWithConstraint for better assertion messages in case of failure" - }, - "fullDescription": { - "text": "Using constraints instead of boolean methods will lead to better assertion messages in case of failure.", - "markdown": "Using constraints instead of boolean methods will lead to better assertion messages in case of failure." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "NUnit2013", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit2014", - "shortDescription": { - "text": "RoslynAnalyzers Use SomeItemsConstraint for better assertion messages in case of failure" - }, - "fullDescription": { - "text": "Using SomeItemsConstraint will lead to better assertion messages in case of failure.", - "markdown": "Using SomeItemsConstraint will lead to better assertion messages in case of failure." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "NUnit2014", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit2011", - "shortDescription": { - "text": "RoslynAnalyzers Use ContainsConstraint for better assertion messages in case of failure" - }, - "fullDescription": { - "text": "Using constraints instead of boolean methods will lead to better assertion messages in case of failure.", - "markdown": "Using constraints instead of boolean methods will lead to better assertion messages in case of failure." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "NUnit2011", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit2012", - "shortDescription": { - "text": "RoslynAnalyzers Use StartsWithConstraint for better assertion messages in case of failure" - }, - "fullDescription": { - "text": "Using constraints instead of boolean methods will lead to better assertion messages in case of failure.", - "markdown": "Using constraints instead of boolean methods will lead to better assertion messages in case of failure." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "NUnit2012", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit2017", - "shortDescription": { - "text": "RoslynAnalyzers Consider using Assert.That(expr, Is.Null) instead of ClassicAssert.IsNull(expr)" - }, - "fullDescription": { - "text": "Consider using the constraint model, Assert.That(expr, Is.Null), instead of the classic model, ClassicAssert.IsNull(expr).", - "markdown": "Consider using the constraint model, Assert.That(expr, Is.Null), instead of the classic model, ClassicAssert.IsNull(expr)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "NUnit2017", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit2018", - "shortDescription": { - "text": "RoslynAnalyzers Consider using Assert.That(expr, Is.Not.Null) instead of ClassicAssert.NotNull(expr)" - }, - "fullDescription": { - "text": "Consider using the constraint model, Assert.That(expr, Is.Not.Null), instead of the classic model, ClassicAssert.NotNull(expr).", - "markdown": "Consider using the constraint model, Assert.That(expr, Is.Not.Null), instead of the classic model, ClassicAssert.NotNull(expr)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "NUnit2018", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "TryCastAlwaysSucceeds", - "shortDescription": { - "text": "Safe cast expression always succeeds" - }, - "fullDescription": { - "text": "Safe cast expression always succeeds and can be replaced with a direct cast Learn more...", - "markdown": "Safe cast expression always succeeds and can be replaced with a direct cast [Learn more...](https://www.jetbrains.com/help/rider/TryCastAlwaysSucceeds.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "TryCastAlwaysSucceeds", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMicrosoftCppMacro", - "shortDescription": { - "text": "microsoft-cpp-macro clang diagnostic" - }, - "fullDescription": { - "text": "-Wmicrosoft-cpp-macro clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-cpp-macro clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-cpp-macro)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftCppMacro", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit2015", - "shortDescription": { - "text": "RoslynAnalyzers Consider using Assert.That(actual, Is.SameAs(expected)) instead of ClassicAssert.AreSame(expected, actual)" - }, - "fullDescription": { - "text": "Consider using the constraint model, Assert.That(actual, Is.SameAs(expected)), instead of the classic model, ClassicAssert.AreSame(expected, actual).", - "markdown": "Consider using the constraint model, Assert.That(actual, Is.SameAs(expected)), instead of the classic model, ClassicAssert.AreSame(expected, actual)." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NUnit2015", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDeprecatedCopyWithDtor", - "shortDescription": { - "text": "deprecated-copy-with-dtor clang diagnostic" - }, - "fullDescription": { - "text": "-Wdeprecated-copy-with-dtor clang diagnostic · Learn more", - "markdown": "-Wdeprecated-copy-with-dtor clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-copy-with-dtor)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedCopyWithDtor", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticSelfMove", - "shortDescription": { - "text": "self-move clang diagnostic" - }, - "fullDescription": { - "text": "-Wself-move clang diagnostic · Learn more", - "markdown": "-Wself-move clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wself-move)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticSelfMove", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit2016", - "shortDescription": { - "text": "RoslynAnalyzers Consider using Assert.That(expr, Is.Null) instead of ClassicAssert.Null(expr)" - }, - "fullDescription": { - "text": "Consider using the constraint model, Assert.That(expr, Is.Null), instead of the classic model, ClassicAssert.Null(expr).", - "markdown": "Consider using the constraint model, Assert.That(expr, Is.Null), instead of the classic model, ClassicAssert.Null(expr)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "NUnit2016", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit2019", - "shortDescription": { - "text": "RoslynAnalyzers Consider using Assert.That(expr, Is.Not.Null) instead of ClassicAssert.IsNotNull(expr)" - }, - "fullDescription": { - "text": "Consider using the constraint model, Assert.That(expr, Is.Not.Null), instead of the classic model, ClassicAssert.IsNotNull(expr).", - "markdown": "Consider using the constraint model, Assert.That(expr, Is.Not.Null), instead of the classic model, ClassicAssert.IsNotNull(expr)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "NUnit2019", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerOsxCocoaNSError", - "shortDescription": { - "text": "osx.cocoa.NSError clang static analyzer check" - }, - "fullDescription": { - "text": "osx.cocoa.NSError clang static analyzer check · Learn more", - "markdown": "osx.cocoa.NSError clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerOsxCocoaNSError", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "GenericEnumeratorNotDisposed", - "shortDescription": { - "text": "Return value of 'GetEnumerator' method call is never disposed" - }, - "fullDescription": { - "text": "To avoid resource leaks, when calling 'GetEnumerator' method manually, dispose of the resulting enumerator after usage. This maintains a similar behaviour to the 'foreach' loop which automatically handles disposal. Disposal is not required if the enumerator is a struct or a sealed class, and it doesn't implement the Dispose pattern or interface.", - "markdown": "To avoid resource leaks, when calling 'GetEnumerator' method manually, dispose of the resulting enumerator after usage. This maintains a similar behaviour to the 'foreach' loop which automatically handles disposal. Disposal is not required if the enumerator is a struct or a sealed class, and it doesn't implement the Dispose pattern or interface." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "GenericEnumeratorNotDisposed", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnreachableCode", - "shortDescription": { - "text": "unreachable-code clang diagnostic" - }, - "fullDescription": { - "text": "-Wunreachable-code clang diagnostic · Learn more", - "markdown": "-Wunreachable-code clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunreachable-code)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnreachableCode", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1829", - "shortDescription": { - "text": "RoslynAnalyzers Use Length/Count property instead of Count() when available" - }, - "fullDescription": { - "text": "Enumerable.Count() potentially enumerates the sequence while a Length/Count property is a direct access.", - "markdown": "Enumerable.Count() potentially enumerates the sequence while a Length/Count property is a direct access." - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "CA1829", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1828", - "shortDescription": { - "text": "RoslynAnalyzers Do not use CountAsync() or LongCountAsync() when AnyAsync() can be used" - }, - "fullDescription": { - "text": "For non-empty collections, CountAsync() and LongCountAsync() enumerate the entire sequence, while AnyAsync() stops at the first item or the first item that satisfies a condition.", - "markdown": "For non-empty collections, CountAsync() and LongCountAsync() enumerate the entire sequence, while AnyAsync() stops at the first item or the first item that satisfies a condition." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1828", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CanReplaceCastWithVariableType", - "shortDescription": { - "text": "Cast expression can be replaced with explicit variable type" - }, - "fullDescription": { - "text": "Replace cast expression with explicit variable type to enhance compile-time safety Learn more...", - "markdown": "Replace cast expression with explicit variable type to enhance compile-time safety [Learn more...](https://www.jetbrains.com/help/rider/CanReplaceCastWithVariableType.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CanReplaceCastWithVariableType", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1827", - "shortDescription": { - "text": "RoslynAnalyzers Do not use Count() or LongCount() when Any() can be used" - }, - "fullDescription": { - "text": "For non-empty collections, Count() and LongCount() enumerate the entire sequence, while Any() stops at the first item or the first item that satisfies a condition.", - "markdown": "For non-empty collections, Count() and LongCount() enumerate the entire sequence, while Any() stops at the first item or the first item that satisfies a condition." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1827", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1826", - "shortDescription": { - "text": "RoslynAnalyzers Do not use Enumerable methods on indexable collections" - }, - "fullDescription": { - "text": "This collection is directly indexable. Going through LINQ here causes unnecessary allocations and CPU work.", - "markdown": "This collection is directly indexable. Going through LINQ here causes unnecessary allocations and CPU work." - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "CA1826", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1825", - "shortDescription": { - "text": "RoslynAnalyzers Avoid zero-length array allocations" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1825", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1824", - "shortDescription": { - "text": "RoslynAnalyzers Mark assemblies with NeutralResourcesLanguageAttribute" - }, - "fullDescription": { - "text": "The NeutralResourcesLanguage attribute informs the ResourceManager of the language that was used to display the resources of a neutral culture for an assembly. This improves lookup performance for the first resource that you load and can reduce your working set.", - "markdown": "The NeutralResourcesLanguage attribute informs the ResourceManager of the language that was used to display the resources of a neutral culture for an assembly. This improves lookup performance for the first resource that you load and can reduce your working set." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1824", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1823", - "shortDescription": { - "text": "RoslynAnalyzers Avoid unused private fields" - }, - "fullDescription": { - "text": "Private fields were detected that do not appear to be accessed in the assembly.", - "markdown": "Private fields were detected that do not appear to be accessed in the assembly." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1823", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1822", - "shortDescription": { - "text": "RoslynAnalyzers Mark members as static" - }, - "fullDescription": { - "text": "Members that do not access instance data or call instance methods can be marked as static. After you mark the methods as static, the compiler will emit nonvirtual call sites to these members. This can give you a measurable performance gain for performance-sensitive code.", - "markdown": "Members that do not access instance data or call instance methods can be marked as static. After you mark the methods as static, the compiler will emit nonvirtual call sites to these members. This can give you a measurable performance gain for performance-sensitive code." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1822", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PossibleInvalidCastException", - "shortDescription": { - "text": "Possible 'System.InvalidCastException'" - }, - "fullDescription": { - "text": "Possible cast expression of incompatible type", - "markdown": "Possible cast expression of incompatible type" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "PossibleInvalidCastException", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1821", - "shortDescription": { - "text": "RoslynAnalyzers Remove empty Finalizers" - }, - "fullDescription": { - "text": "Finalizers should be avoided where possible, to avoid the additional performance overhead involved in tracking object lifetime.", - "markdown": "Finalizers should be avoided where possible, to avoid the additional performance overhead involved in tracking object lifetime." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1821", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1820", - "shortDescription": { - "text": "RoslynAnalyzers Test for empty strings using string length" - }, - "fullDescription": { - "text": "Comparing strings by using the String.Length property or the String.IsNullOrEmpty method is significantly faster than using Equals.", - "markdown": "Comparing strings by using the String.Length property or the String.IsNullOrEmpty method is significantly faster than using Equals." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1820", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCppcoreguidelinesProTypeVararg", - "shortDescription": { - "text": "cppcoreguidelines-pro-type-vararg clang-tidy check" - }, - "fullDescription": { - "text": "cppcoreguidelines-pro-type-vararg clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-pro-type-vararg clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/pro-type-vararg.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCppcoreguidelinesProTypeVararg", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit2010", - "shortDescription": { - "text": "RoslynAnalyzers Use EqualConstraint for better assertion messages in case of failure" - }, - "fullDescription": { - "text": "Using EqualConstraint will lead to better assertion messages in case of failure.", - "markdown": "Using EqualConstraint will lead to better assertion messages in case of failure." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "NUnit2010", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1214FadeOut", - "shortDescription": { - "text": "RoslynAnalyzers Unnecessary interpolated string" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1214FadeOut", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantToStringCall", - "shortDescription": { - "text": "Redundant 'object.ToString()' call" - }, - "fullDescription": { - "text": "Use of ToString() call in a context where it would be generated by the compiler automatically. For example, in a concatenation with a string or as an argument of a string.Format() call. Learn more...", - "markdown": "Use of ToString() call in a context where it would be generated by the compiler automatically. For example, in a concatenation with a string or as an argument of a string.Format() call. [Learn more...](https://www.jetbrains.com/help/rider/RedundantToStringCall.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "RedundantToStringCall", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConvertIfDoToWhile", - "shortDescription": { - "text": "Convert 'if do while' into 'while'" - }, - "fullDescription": { - "text": "Simplify statement", - "markdown": "Simplify statement" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ConvertIfDoToWhile", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneUncheckedOptionalAccess", - "shortDescription": { - "text": "bugprone-unchecked-optional-access clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-unchecked-optional-access clang-tidy check · Learn more", - "markdown": "bugprone-unchecked-optional-access clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/unchecked-optional-access.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneUncheckedOptionalAccess", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBSimplifyLinqExpression.10", - "shortDescription": { - "text": "Simplify expression" - }, - "fullDescription": { - "text": "!$seq$.All(Function ($x$) $expr$ = $expr2$)", - "markdown": "!$seq$.All(Function ($x$) $expr$ = $expr2$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBSimplifyLinqExpression.10", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnusedPositionalParameterCompiler", - "shortDescription": { - "text": "Unused positional parameter" - }, - "fullDescription": { - "text": "Parameter of the primary constructor is declared but never used", - "markdown": "Parameter of the primary constructor is declared but never used" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "UnusedPositionalParameterCompiler", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticZeroAsNullPointerConstant", - "shortDescription": { - "text": "zero-as-null-pointer-constant clang diagnostic" - }, - "fullDescription": { - "text": "-Wzero-as-null-pointer-constant clang diagnostic · Learn more", - "markdown": "-Wzero-as-null-pointer-constant clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wzero-as-null-pointer-constant)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticZeroAsNullPointerConstant", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerUnixVfork", - "shortDescription": { - "text": "unix.Vfork clang static analyzer check" - }, - "fullDescription": { - "text": "unix.Vfork clang static analyzer check · Learn more", - "markdown": "unix.Vfork clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerUnixVfork", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.InvalidResourceType", - "shortDescription": { - "text": "XAML resource of invalid type" - }, - "fullDescription": { - "text": "XAML resource of invalid type", - "markdown": "XAML resource of invalid type" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "Xaml.InvalidResourceType", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Code Notification", - "index": 5, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticSwitch", - "shortDescription": { - "text": "switch clang diagnostic" - }, - "fullDescription": { - "text": "-Wswitch clang diagnostic · Learn more", - "markdown": "-Wswitch clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wswitch)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticSwitch", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticNvccCompat", - "shortDescription": { - "text": "nvcc-compat clang diagnostic" - }, - "fullDescription": { - "text": "-Wnvcc-compat clang diagnostic · Learn more", - "markdown": "-Wnvcc-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnvcc-compat)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticNvccCompat", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.BurstStringFormatInvalidFormat", - "shortDescription": { - "text": "String.Format(format, ...) only accepts string literals and const strings" - }, - "fullDescription": { - "text": "String.Format(format, ...) only accepts string literals and const strings", - "markdown": "String.Format(format, ...) only accepts string literals and const strings" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.BurstStringFormatInvalidFormat", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity Burst Compiler Warnings", - "index": 57, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyModernizeMacroToEnum", - "shortDescription": { - "text": "modernize-macro-to-enum clang-tidy check" - }, - "fullDescription": { - "text": "modernize-macro-to-enum clang-tidy check · Learn more", - "markdown": "modernize-macro-to-enum clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/macro-to-enum.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyModernizeMacroToEnum", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EmptyNamespace", - "shortDescription": { - "text": "Empty namespace declaration" - }, - "fullDescription": { - "text": "Empty namespace declaration is redundant Learn more...", - "markdown": "Empty namespace declaration is redundant [Learn more...](https://www.jetbrains.com/help/rider/EmptyNamespace.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "EmptyNamespace", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseEmptyTypesField", - "shortDescription": { - "text": "Use 'Type.EmptyTypes'" - }, - "fullDescription": { - "text": "Replace an empty array allocation with a use of the predefined 'Type.EmptyTypes' field", - "markdown": "Replace an empty array allocation with a use of the predefined 'Type.EmptyTypes' field" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UseEmptyTypesField", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppWrongIncludesOrder", - "shortDescription": { - "text": "Use preferred include directive style (order of #include directives does not match code style settings)" - }, - "fullDescription": { - "text": "Order of #include directives does not match code style settings", - "markdown": "Order of #include directives does not match code style settings" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppWrongIncludesOrder", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Syntax Style", - "index": 91, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantStringType", - "shortDescription": { - "text": "Redundant string type" - }, - "fullDescription": { - "text": "Explicitly specifying System.String as the type of a data entry is redundant Learn more...", - "markdown": "Explicitly specifying System.String as the type of a data entry is redundant [Learn more...](https://www.jetbrains.com/help/rider/RedundantStringType.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RedundantStringType", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "ResX/Redundancies in Code", - "index": 99, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppDereferenceOperatorLimitExceeded", - "shortDescription": { - "text": "Dereference operator limit is exceeded" - }, - "fullDescription": { - "text": "Dereference operator limit is exceeded", - "markdown": "Dereference operator limit is exceeded" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppDereferenceOperatorLimitExceeded", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp2aCompatPedantic", - "shortDescription": { - "text": "c++2a-compat-pedantic clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++2a-compat-pedantic clang diagnostic · Learn more", - "markdown": "-Wc++2a-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-2a-compat-pedantic)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp2aCompatPedantic", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnusedType.Local", - "shortDescription": { - "text": "Type is never used (private accessibility)" - }, - "fullDescription": { - "text": "Type is never used Learn more...", - "markdown": "Type is never used [Learn more...](https://www.jetbrains.com/help/rider/UnusedType.Local.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "UnusedType.Local", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IteratorNeverReturns", - "shortDescription": { - "text": "Iterator never returns" - }, - "fullDescription": { - "text": "Iterator function does not reach its end or a 'return' statement by any of possible execution paths", - "markdown": "Iterator function does not reach its end or a 'return' statement by any of possible execution paths" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "IteratorNeverReturns", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCertCtr56Cpp", - "shortDescription": { - "text": "cert-ctr56-cpp clang-tidy check" - }, - "fullDescription": { - "text": "cert-ctr56-cpp clang-tidy check · Learn more", - "markdown": "cert-ctr56-cpp clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/ctr56-cpp.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCertCtr56Cpp", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyLlvmTwineLocal", - "shortDescription": { - "text": "llvm-twine-local clang-tidy check" - }, - "fullDescription": { - "text": "llvm-twine-local clang-tidy check · Learn more", - "markdown": "llvm-twine-local clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/llvm/twine-local.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyLlvmTwineLocal", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.RedundantFormerlySerializedAsAttribute", - "shortDescription": { - "text": "Redundant attribute usage (redundant 'FormerlySerializedAs' attribute)" - }, - "fullDescription": { - "text": "The 'FormerlySerializedAs' attribute is only valid on Unity serialized fields. It can also be redundant if the name argument matches the current name of the field. Learn more...", - "markdown": "The 'FormerlySerializedAs' attribute is only valid on Unity serialized fields. It can also be redundant if the name argument matches the current name of the field. [Learn more...](https://github.com/JetBrains/resharper-unity/wiki/Redundant-FormerlySerializedAs-attribute)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.RedundantFormerlySerializedAsAttribute", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppUE4CodingStandardNamingViolationWarning", - "shortDescription": { - "text": "Inconsistent Unreal Engine Naming" - }, - "fullDescription": { - "text": "Name doesn't match the Unreal Engine's coding standard naming style. Learn more…", - "markdown": "Name doesn't match the Unreal Engine's coding standard naming style. [Learn more...](https://docs.unrealengine.com/en-us/Programming/Development/CodingStandard#namingconventions)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppUE4CodingStandardNamingViolationWarning", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Unreal Engine", - "index": 6, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "TabsOutsideIndent", - "shortDescription": { - "text": "Incorrect spacing (tabs are prohibited here)" - }, - "fullDescription": { - "text": "Tabs are prohibited here Learn more...", - "markdown": "Tabs are prohibited here [Learn more...](https://www.jetbrains.com/help/rider/TabsOutsideIndent.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "TabsOutsideIndent", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Formatting", - "index": 24, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.BurstDebugLogInvalidArgument", - "shortDescription": { - "text": "Debug logging functions only accept strings" - }, - "fullDescription": { - "text": "Debug logging functions only accept strings", - "markdown": "Debug logging functions only accept strings" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.BurstDebugLogInvalidArgument", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity Burst Compiler Warnings", - "index": 57, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppExplicitSpecializationInNonNamespaceScope", - "shortDescription": { - "text": "Explicit specialization in non-namespace scope" - }, - "fullDescription": { - "text": "Explicit specializations of a template in non-namespace scope", - "markdown": "Explicit specializations of a template in non-namespace scope" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppExplicitSpecializationInNonNamespaceScope", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Compiler Warnings", - "index": 75, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyAbseilNoNamespace", - "shortDescription": { - "text": "abseil-no-namespace clang-tidy check" - }, - "fullDescription": { - "text": "abseil-no-namespace clang-tidy check · Learn more", - "markdown": "abseil-no-namespace clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/no-namespace.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyAbseilNoNamespace", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PossiblyMistakenUseOfInterpolatedStringInsert", - "shortDescription": { - "text": "Possibly unintended string interpolation instead of format string template" - }, - "fullDescription": { - "text": "Interpolated string that could be a valid format string detected. Possibly intended to be a format string template literal. Learn more...", - "markdown": "Interpolated string that could be a valid format string detected. Possibly intended to be a format string template literal. [Learn more...](https://www.jetbrains.com/help/rider/PossiblyMistakenUseOfInterpolatedStringInsert.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "PossiblyMistakenUseOfInterpolatedStringInsert", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMain", - "shortDescription": { - "text": "main clang diagnostic" - }, - "fullDescription": { - "text": "-Wmain clang diagnostic · Learn more", - "markdown": "-Wmain clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmain)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMain", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticThreadSafetyNegative", - "shortDescription": { - "text": "thread-safety-negative clang diagnostic" - }, - "fullDescription": { - "text": "-Wthread-safety-negative clang diagnostic · Learn more", - "markdown": "-Wthread-safety-negative clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wthread-safety-negative)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticThreadSafetyNegative", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnclosedScript", - "shortDescription": { - "text": "Script tag errors (unclosed <script>)" - }, - "fullDescription": { - "text": "<([)script(]) $a1$>$c1$", - "markdown": "\\<(\\[)script(\\]) $a1$\\>$c1$" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "UnclosedScript", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HTML/Potential Code Quality Issues", - "index": 54, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "LongLiteralEndingLowerL", - "shortDescription": { - "text": "The 'l' suffix is easily confused with the digit '1'" - }, - "fullDescription": { - "text": "The 'l' suffix is easily confused with the digit '1', use 'L' for clarity", - "markdown": "The 'l' suffix is easily confused with the digit '1', use 'L' for clarity" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "LongLiteralEndingLowerL", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Potential Code Quality Issues", - "index": 62, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppTemplateArgumentsCanBeDeduced", - "shortDescription": { - "text": "Template arguments can be deduced" - }, - "fullDescription": { - "text": "Template arguments can be deduced", - "markdown": "Template arguments can be deduced" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppTemplateArgumentsCanBeDeduced", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Redundancies in Code", - "index": 34, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyAlteraSingleWorkItemBarrier", - "shortDescription": { - "text": "altera-single-work-item-barrier clang-tidy check" - }, - "fullDescription": { - "text": "altera-single-work-item-barrier clang-tidy check · Learn more", - "markdown": "altera-single-work-item-barrier clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/altera/single-work-item-barrier.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyAlteraSingleWorkItemBarrier", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyModernizeUseBoolLiterals", - "shortDescription": { - "text": "modernize-use-bool-literals clang-tidy check" - }, - "fullDescription": { - "text": "modernize-use-bool-literals clang-tidy check · Learn more", - "markdown": "modernize-use-bool-literals clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-bool-literals.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyModernizeUseBoolLiterals", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppDefaultedSpecialMemberFunctionIsImplicitlyDeleted", - "shortDescription": { - "text": "Defaulted special member function is implicitly deleted" - }, - "fullDescription": { - "text": "Explicitly defaulted special member function is implicitly deleted", - "markdown": "Explicitly defaulted special member function is implicitly deleted" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppDefaultedSpecialMemberFunctionIsImplicitlyDeleted", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDtorName", - "shortDescription": { - "text": "dtor-name clang diagnostic" - }, - "fullDescription": { - "text": "-Wdtor-name clang diagnostic · Learn more", - "markdown": "-Wdtor-name clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdtor-name)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDtorName", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnsupportedVisibility", - "shortDescription": { - "text": "unsupported-visibility clang diagnostic" - }, - "fullDescription": { - "text": "-Wunsupported-visibility clang diagnostic · Learn more", - "markdown": "-Wunsupported-visibility clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunsupported-visibility)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnsupportedVisibility", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticGnuCompoundLiteralInitializer", - "shortDescription": { - "text": "gnu-compound-literal-initializer clang diagnostic" - }, - "fullDescription": { - "text": "-Wgnu-compound-literal-initializer clang diagnostic · Learn more", - "markdown": "-Wgnu-compound-literal-initializer clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-compound-literal-initializer)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticGnuCompoundLiteralInitializer", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticIntToPointerCast", - "shortDescription": { - "text": "int-to-pointer-cast clang diagnostic" - }, - "fullDescription": { - "text": "-Wint-to-pointer-cast clang diagnostic · Learn more", - "markdown": "-Wint-to-pointer-cast clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wint-to-pointer-cast)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticIntToPointerCast", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticAsmOperandWidths", - "shortDescription": { - "text": "asm-operand-widths clang diagnostic" - }, - "fullDescription": { - "text": "-Wasm-operand-widths clang diagnostic · Learn more", - "markdown": "-Wasm-operand-widths clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wasm-operand-widths)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticAsmOperandWidths", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticHeaderHygiene", - "shortDescription": { - "text": "header-hygiene clang diagnostic" - }, - "fullDescription": { - "text": "-Wheader-hygiene clang diagnostic · Learn more", - "markdown": "-Wheader-hygiene clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wheader-hygiene)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticHeaderHygiene", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Mvc.ViewComponentViewNotResolved", - "shortDescription": { - "text": "MVC (unknown view component view)" - }, - "fullDescription": { - "text": "Unknown ASP.NET MVC View Component View", - "markdown": "Unknown ASP.NET MVC View Component View" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Mvc.ViewComponentViewNotResolved", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Aspx/Potential Code Quality Issues", - "index": 64, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticGnuAutoType", - "shortDescription": { - "text": "gnu-auto-type clang diagnostic" - }, - "fullDescription": { - "text": "-Wgnu-auto-type clang diagnostic · Learn more", - "markdown": "-Wgnu-auto-type clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-auto-type)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticGnuAutoType", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMicrosoftTemplateShadow", - "shortDescription": { - "text": "microsoft-template-shadow clang diagnostic" - }, - "fullDescription": { - "text": "-Wmicrosoft-template-shadow clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-template-shadow clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-template-shadow)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftTemplateShadow", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerUnixMismatchedDeallocator", - "shortDescription": { - "text": "unix.MismatchedDeallocator clang static analyzer check" - }, - "fullDescription": { - "text": "unix.MismatchedDeallocator clang static analyzer check · Learn more", - "markdown": "unix.MismatchedDeallocator clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerUnixMismatchedDeallocator", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppPossiblyUnintendedObjectSlicing", - "shortDescription": { - "text": "Possibly unintended object slicing" - }, - "fullDescription": { - "text": "Possibly unintended object slicing", - "markdown": "Possibly unintended object slicing" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppPossiblyUnintendedObjectSlicing", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppUnsignedZeroComparison", - "shortDescription": { - "text": "Comparison of unsigned expression with 0" - }, - "fullDescription": { - "text": "Comparison of unsigned expression with 0", - "markdown": "Comparison of unsigned expression with 0" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppUnsignedZeroComparison", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS0026", - "shortDescription": { - "text": "RoslynAnalyzers Do not add multiple public overloads with optional parameters" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS0026", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS0025", - "shortDescription": { - "text": "RoslynAnalyzers Do not duplicate symbols in public API files" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS0025", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "FSharpRedundantAttributeSuffix", - "shortDescription": { - "text": "Redundant 'Attribute' suffix" - }, - "fullDescription": { - "text": "Redundant 'Attribute' suffix.", - "markdown": "Redundant 'Attribute' suffix." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "FSharpRedundantAttributeSuffix", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "F#/Redundancies in Code", - "index": 73, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "BaseObjectEqualsIsObjectEquals", - "shortDescription": { - "text": "Call to 'base.Equals(...)' is reference equality" - }, - "fullDescription": { - "text": "Call to base 'Equals(...)' method is resolved to 'Object.Equals', which is reference equality", - "markdown": "Call to base 'Equals(...)' method is resolved to 'Object.Equals', which is reference equality" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "BaseObjectEqualsIsObjectEquals", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS0027", - "shortDescription": { - "text": "RoslynAnalyzers API with optional parameter(s) should have the most parameters amongst its public overloads" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS0027", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS0022", - "shortDescription": { - "text": "RoslynAnalyzers Constructor make noninheritable base class inheritable" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS0022", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS0024", - "shortDescription": { - "text": "RoslynAnalyzers The contents of the public API files are invalid" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS0024", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCertFlp30C", - "shortDescription": { - "text": "cert-flp30-c clang-tidy check" - }, - "fullDescription": { - "text": "cert-flp30-c clang-tidy check · Learn more", - "markdown": "cert-flp30-c clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/flp30-c.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyCertFlp30C", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS0109", - "shortDescription": { - "text": "Keyword 'new' is redundant" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/css4y2c4.aspx)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "CSharpWarnings__CS0109", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit.IncorrectExpectedResultType", - "shortDescription": { - "text": "NUnit. Incompatible expected result type or incorrect value." - }, - "fullDescription": { - "text": "ExpectedResult value in [TestCase] or [Test] attributes is incorrect or is not compatible with the test method return type Learn more...", - "markdown": "ExpectedResult value in \\[TestCase\\] or \\[Test\\] attributes is incorrect or is not compatible with the test method return type [Learn more...](https://www.jetbrains.com/help/rider/NUnit.IncorrectExpectedResultType.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NUnit.IncorrectExpectedResultType", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/NUnit", - "index": 26, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppUFunctionMacroCallHasNoEffect", - "shortDescription": { - "text": "UFUNCTION macro call has no effect" - }, - "fullDescription": { - "text": "UFUNCTION macro call has no effect outside of UCLASS, USTRUCT or IInterface", - "markdown": "UFUNCTION macro call has no effect outside of UCLASS, USTRUCT or IInterface" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppUFunctionMacroCallHasNoEffect", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Unreal Engine", - "index": 6, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityIdentifierNaming", - "shortDescription": { - "text": "readability-identifier-naming clang-tidy check" - }, - "fullDescription": { - "text": "readability-identifier-naming clang-tidy check · Learn more", - "markdown": "readability-identifier-naming clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/identifier-naming.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityIdentifierNaming", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MergeIntoPattern", - "shortDescription": { - "text": "Merge null/pattern checks into complex pattern" - }, - "fullDescription": { - "text": "Merge sequential null/pattern checks into single recursive/logical pattern check Learn more...", - "markdown": "Merge sequential null/pattern checks into single recursive/logical pattern check [Learn more...](https://www.jetbrains.com/help/rider/MergeIntoPattern.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "MergeIntoPattern", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReturnOfUsingVariable", - "shortDescription": { - "text": "Return of a variable captured by 'using' statement" - }, - "fullDescription": { - "text": "Do not return a variable captured by 'using' statement because it will be disposed before returning", - "markdown": "Do not return a variable captured by 'using' statement because it will be disposed before returning" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "ReturnOfUsingVariable", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticEmptyDecomposition", - "shortDescription": { - "text": "empty-decomposition clang diagnostic" - }, - "fullDescription": { - "text": "-Wempty-decomposition clang diagnostic · Learn more", - "markdown": "-Wempty-decomposition clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wempty-decomposition)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticEmptyDecomposition", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppExpressionWithoutSideEffects", - "shortDescription": { - "text": "Possibly erroneous expression without side-effects" - }, - "fullDescription": { - "text": "Possibly erroneous expression without side-effects", - "markdown": "Possibly erroneous expression without side-effects" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppExpressionWithoutSideEffects", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SwitchExpressionHandlesSomeKnownEnumValuesWithExceptionInDefault", - "shortDescription": { - "text": "Some values of the enum are not processed inside 'switch' expression and are handled via exception in default arm" - }, - "fullDescription": { - "text": "Some values of the enum are not processed inside switch expression and fall into default arm. This might indicate unintentional handling of all enum values added after the switch was introduced, consider handling missing enum values explicitly Learn more...", - "markdown": "Some values of the enum are not processed inside switch expression and fall into default arm. This might indicate unintentional handling of all enum values added after the switch was introduced, consider handling missing enum values explicitly [Learn more...](https://www.jetbrains.com/help/rider/SwitchExpressionHandlesSomeKnownEnumValuesWithExceptionInDefault.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "SwitchExpressionHandlesSomeKnownEnumValuesWithExceptionInDefault", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS0041", - "shortDescription": { - "text": "RoslynAnalyzers Public members should not use oblivious types" - }, - "fullDescription": { - "text": "All public members should use either nullable or non-nullable reference types, but no oblivious reference types.", - "markdown": "All public members should use either nullable or non-nullable reference types, but no oblivious reference types." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS0041", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticNontrivialMemaccess", - "shortDescription": { - "text": "nontrivial-memaccess clang diagnostic" - }, - "fullDescription": { - "text": "-Wnontrivial-memaccess clang diagnostic · Learn more", - "markdown": "-Wnontrivial-memaccess clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnontrivial-memaccess)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticNontrivialMemaccess", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS0037", - "shortDescription": { - "text": "RoslynAnalyzers Enable tracking of nullability of reference types in the declared API" - }, - "fullDescription": { - "text": "PublicAPI.txt files should have `#nullable enable` to track nullability information, or this diagnostic should be suppressed. With nullability enabled, PublicAPI.txt records which types are nullable (suffix `?` on type) or non-nullable (suffix `!`). It also tracks any API that is still using an oblivious reference type (prefix `~` on line).", - "markdown": "PublicAPI.txt files should have \\`#nullable enable\\` to track nullability information, or this diagnostic should be suppressed. With nullability enabled, PublicAPI.txt records which types are nullable (suffix \\`?\\` on type) or non-nullable (suffix \\`!\\`). It also tracks any API that is still using an oblivious reference type (prefix \\`\\~\\` on line)." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS0037", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS0036", - "shortDescription": { - "text": "RoslynAnalyzers Annotate nullability of public types and members in the declared API" - }, - "fullDescription": { - "text": "All public types and members should be declared with nullability annotations in PublicAPI.txt. This draws attention to API nullability changes in the code reviews and source control history, and helps prevent breaking changes.", - "markdown": "All public types and members should be declared with nullability annotations in PublicAPI.txt. This draws attention to API nullability changes in the code reviews and source control history, and helps prevent breaking changes." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS0036", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "LocalVariableHidesPrimaryConstructorParameter", - "shortDescription": { - "text": "Local variable hides primary constructor parameter" - }, - "fullDescription": { - "text": "Local variable has the same name as a primary constructor parameter and hides it Learn more...", - "markdown": "Local variable has the same name as a primary constructor parameter and hides it [Learn more...](https://www.jetbrains.com/help/rider/LocalVariableHidesPrimaryConstructorParameter.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "LocalVariableHidesPrimaryConstructorParameter", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyHicppUseEmplace", - "shortDescription": { - "text": "hicpp-use-emplace clang-tidy check" - }, - "fullDescription": { - "text": "hicpp-use-emplace clang-tidy check · Learn more", - "markdown": "hicpp-use-emplace clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/use-emplace.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyHicppUseEmplace", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AccessToForEachVariableInClosure", - "shortDescription": { - "text": "Access to foreach variable in closure" - }, - "fullDescription": { - "text": "This code can have different behavior when compiled with different versions of compiler. See changes for 'foreach' loop in C# 5.0 and Visual Basic 11. Learn more...", - "markdown": "This code can have different behavior when compiled with different versions of compiler. See changes for 'foreach' loop in C# 5.0 and Visual Basic 11. [Learn more...](https://www.jetbrains.com/help/rider/AccessToForEachVariableInClosure.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "AccessToForEachVariableInClosure", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerCoreNullDereference", - "shortDescription": { - "text": "core.NullDereference clang static analyzer check" - }, - "fullDescription": { - "text": "core.NullDereference clang static analyzer check · Learn more", - "markdown": "core.NullDereference clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerCoreNullDereference", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Odin.OdinMemberWrongGroupingAttribute", - "shortDescription": { - "text": "Incorrect Odin's group attribute type" - }, - "fullDescription": { - "text": "Different types of group attributes should not share the same path", - "markdown": "Different types of group attributes should not share the same path" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Odin.OdinMemberWrongGroupingAttribute", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticSerializedDiagnostics", - "shortDescription": { - "text": "serialized-diagnostics clang diagnostic" - }, - "fullDescription": { - "text": "-Wserialized-diagnostics clang diagnostic · Learn more", - "markdown": "-Wserialized-diagnostics clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wserialized-diagnostics)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticSerializedDiagnostics", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantStringToCharArrayCall", - "shortDescription": { - "text": "Redundant 'string.ToCharArray()' call" - }, - "fullDescription": { - "text": "Redundant 'string.ToCharArray()' call", - "markdown": "Redundant 'string.ToCharArray()' call" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "RedundantStringToCharArrayCall", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDeprecatedAttributes", - "shortDescription": { - "text": "deprecated-attributes clang diagnostic" - }, - "fullDescription": { - "text": "-Wdeprecated-attributes clang diagnostic · Learn more", - "markdown": "-Wdeprecated-attributes clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-attributes)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedAttributes", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantRecordClassKeyword", - "shortDescription": { - "text": "Redundant 'class' keyword in record declaration" - }, - "fullDescription": { - "text": "Redundant 'class' keyword in record declaration: records are classes by default", - "markdown": "Redundant 'class' keyword in record declaration: records are classes by default" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantRecordClassKeyword", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS0051", - "shortDescription": { - "text": "RoslynAnalyzers Add internal types and members to the declared API" - }, - "fullDescription": { - "text": "All internal types and members should be declared in InternalAPI.txt. This draws attention to API changes in the code reviews and source control history, and helps prevent breaking changes.", - "markdown": "All internal types and members should be declared in InternalAPI.txt. This draws attention to API changes in the code reviews and source control history, and helps prevent breaking changes." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS0051", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS0050", - "shortDescription": { - "text": "RoslynAnalyzers API is marked as removed but it exists in source code" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS0050", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDarwinSdkSettings", - "shortDescription": { - "text": "darwin-sdk-settings clang diagnostic" - }, - "fullDescription": { - "text": "-Wdarwin-sdk-settings clang diagnostic · Learn more", - "markdown": "-Wdarwin-sdk-settings clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdarwin-sdk-settings)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDarwinSdkSettings", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS0053", - "shortDescription": { - "text": "RoslynAnalyzers The contents of the internal API files are invalid" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS0053", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS0052", - "shortDescription": { - "text": "RoslynAnalyzers Remove deleted types and members from the declared internal API" - }, - "fullDescription": { - "text": "When removing a internal type or member, put that entry in InternalAPI.Unshipped.txt with '*REMOVED*' prefix. This draws attention to API changes in the code reviews and source control history, and helps prevent breaking changes.", - "markdown": "When removing a internal type or member, put that entry in InternalAPI.Unshipped.txt with '\\*REMOVED\\*' prefix. This draws attention to API changes in the code reviews and source control history, and helps prevent breaking changes." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS0052", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppAwaiterTypeIsNotClass", - "shortDescription": { - "text": "Awaiter type is not a class" - }, - "fullDescription": { - "text": "The awaiter type must be a a class according to the C++20 standard", - "markdown": "The awaiter type must be a a class according to the C++20 standard" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppAwaiterTypeIsNotClass", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Compiler Warnings", - "index": 75, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBReplaceWithSingleCallToSingleOrDefault", - "shortDescription": { - "text": "Replace with single call to SingleOrDefault(..)" - }, - "fullDescription": { - "text": "$seq$.Where(Function ($x$) $expr$).SingleOrDefault()", - "markdown": "$seq$.Where(Function ($x$) $expr$).SingleOrDefault()" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBReplaceWithSingleCallToSingleOrDefault", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS0048", - "shortDescription": { - "text": "RoslynAnalyzers Missing shipped or unshipped public API file" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS0048", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpBuildCSInvalidModuleName", - "shortDescription": { - "text": "Module with this name does not exist" - }, - "fullDescription": { - "text": "Module with this name does not exist", - "markdown": "Module with this name does not exist" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpBuildCSInvalidModuleName", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unreal Build System", - "index": 141, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PossibleLossOfFraction", - "shortDescription": { - "text": "Possible loss of fraction" - }, - "fullDescription": { - "text": "Possible loss of fraction when dividing integral values and assigning the result to float or decimal", - "markdown": "Possible loss of fraction when dividing integral values and assigning the result to float or decimal" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "PossibleLossOfFraction", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ValueRangeAttributeViolation", - "shortDescription": { - "text": "Possible violation of 'ValueRange'/'NonNegativeValue' attribute" - }, - "fullDescription": { - "text": "Integer value assigned to this entity doesn't lie in the interval specified in the attribute", - "markdown": "Integer value assigned to this entity doesn't lie in the interval specified in the attribute" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "ValueRangeAttributeViolation", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Constraints Violations", - "index": 80, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ForStatementConditionIsTrue", - "shortDescription": { - "text": "'true' is redundant as 'for'-statement condition" - }, - "fullDescription": { - "text": "'true' is redundant as 'for'-statement condition, and it can be safely omitted", - "markdown": "'true' is redundant as 'for'-statement condition, and it can be safely omitted" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "ForStatementConditionIsTrue", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnassignedField.Local", - "shortDescription": { - "text": "Unassigned field (private accessibility)" - }, - "fullDescription": { - "text": "Field is never assigned Learn more...", - "markdown": "Field is never assigned [Learn more...](https://www.jetbrains.com/help/rider/UnassignedField.Local.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "UnassignedField.Local", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ShiftExpressionRightOperandNotEqualRealCount", - "shortDescription": { - "text": "Suspicious shift count for this type of left operand" - }, - "fullDescription": { - "text": "Suspicious shift count for this type of left operand (different from actual shift count that will be used by compiler)", - "markdown": "Suspicious shift count for this type of left operand (different from actual shift count that will be used by compiler)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "ShiftExpressionRightOperandNotEqualRealCount", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithSingleCallToSingleOrDefault", - "shortDescription": { - "text": "Replace with single call to SingleOrDefault(..)" - }, - "fullDescription": { - "text": "$seq$.Where($x$ => $expr$).SingleOrDefault()", - "markdown": "$seq$.Where($x$ =\\> $expr$).SingleOrDefault()" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithSingleCallToSingleOrDefault", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCppcoreguidelinesProBoundsArrayToPointerDecay", - "shortDescription": { - "text": "cppcoreguidelines-pro-bounds-array-to-pointer-decay clang-tidy check" - }, - "fullDescription": { - "text": "cppcoreguidelines-pro-bounds-array-to-pointer-decay clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-pro-bounds-array-to-pointer-decay clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/pro-bounds-array-to-pointer-decay.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCppcoreguidelinesProBoundsArrayToPointerDecay", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS0061", - "shortDescription": { - "text": "RoslynAnalyzers Constructor make noninheritable base class inheritable" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS0061", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NonConstantEqualityExpressionHasConstantResult", - "shortDescription": { - "text": "According to values of the bit masks, expression result will always be the same" - }, - "fullDescription": { - "text": "According to values of the bit masks, expression result will always be the same", - "markdown": "According to values of the bit masks, expression result will always be the same" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NonConstantEqualityExpressionHasConstantResult", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnalignedAccess", - "shortDescription": { - "text": "unaligned-access clang diagnostic" - }, - "fullDescription": { - "text": "-Wunaligned-access clang diagnostic · Learn more", - "markdown": "-Wunaligned-access clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunaligned-access)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnalignedAccess", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS0060", - "shortDescription": { - "text": "RoslynAnalyzers API with optional parameter(s) should have the most parameters amongst its public overloads" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS0060", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppConditionalExpressionCanBeSimplified", - "shortDescription": { - "text": "Conditional expression can be simplified" - }, - "fullDescription": { - "text": "Conditional expression can be simplified", - "markdown": "Conditional expression can be simplified" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppConditionalExpressionCanBeSimplified", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Redundancies in Code", - "index": 34, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantExplicitTupleComponentName", - "shortDescription": { - "text": "Redundant explicit tuple component name" - }, - "fullDescription": { - "text": "Explicit name specification of value tuple component is redundant. It is inferred from the initializer expression.", - "markdown": "Explicit name specification of value tuple component is redundant. It is inferred from the initializer expression." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantExplicitTupleComponentName", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS0059", - "shortDescription": { - "text": "RoslynAnalyzers Do not add multiple public overloads with optional parameters" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS0059", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS0058", - "shortDescription": { - "text": "RoslynAnalyzers Missing shipped or unshipped internal API file" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS0058", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticBindingInCondition", - "shortDescription": { - "text": "binding-in-condition clang diagnostic" - }, - "fullDescription": { - "text": "-Wbinding-in-condition clang diagnostic · Learn more", - "markdown": "-Wbinding-in-condition clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wbinding-in-condition)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticBindingInCondition", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS0055", - "shortDescription": { - "text": "RoslynAnalyzers Annotate nullability of internal types and members in the declared API" - }, - "fullDescription": { - "text": "All internal types and members should be declared with nullability annotations in InternalAPI.txt. This draws attention to API nullability changes in the code reviews and source control history, and helps prevent breaking changes.", - "markdown": "All internal types and members should be declared with nullability annotations in InternalAPI.txt. This draws attention to API nullability changes in the code reviews and source control history, and helps prevent breaking changes." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS0055", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS0054", - "shortDescription": { - "text": "RoslynAnalyzers Do not duplicate symbols in internal API files" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS0054", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS0057", - "shortDescription": { - "text": "RoslynAnalyzers Internal members should not use oblivious types" - }, - "fullDescription": { - "text": "All internal members should use either nullable or non-nullable reference types, but no oblivious reference types.", - "markdown": "All internal members should use either nullable or non-nullable reference types, but no oblivious reference types." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS0057", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticBindToTemporaryCopy", - "shortDescription": { - "text": "bind-to-temporary-copy clang diagnostic" - }, - "fullDescription": { - "text": "-Wbind-to-temporary-copy clang diagnostic · Learn more", - "markdown": "-Wbind-to-temporary-copy clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wbind-to-temporary-copy)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticBindToTemporaryCopy", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS0056", - "shortDescription": { - "text": "RoslynAnalyzers Enable tracking of nullability of reference types in the declared API" - }, - "fullDescription": { - "text": "InternalAPI.txt files should have `#nullable enable` to track nullability information, or this diagnostic should be suppressed. With nullability enabled, InternalAPI.txt records which types are nullable (suffix `?` on type) or non-nullable (suffix `!`). It also tracks any API that is still using an oblivious reference type (prefix `~` on line).", - "markdown": "InternalAPI.txt files should have \\`#nullable enable\\` to track nullability information, or this diagnostic should be suppressed. With nullability enabled, InternalAPI.txt records which types are nullable (suffix \\`?\\` on type) or non-nullable (suffix \\`!\\`). It also tracks any API that is still using an oblivious reference type (prefix \\`\\~\\` on line)." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS0056", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "BadControlBracesIndent", - "shortDescription": { - "text": "Incorrect indent (around statement braces)" - }, - "fullDescription": { - "text": "Around statement braces Learn more...", - "markdown": "Around statement braces [Learn more...](https://www.jetbrains.com/help/rider/BadControlBracesIndent.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "BadControlBracesIndent", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Formatting", - "index": 24, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPointerToEnumCast", - "shortDescription": { - "text": "pointer-to-enum-cast clang diagnostic" - }, - "fullDescription": { - "text": "-Wpointer-to-enum-cast clang diagnostic · Learn more", - "markdown": "-Wpointer-to-enum-cast clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpointer-to-enum-cast)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPointerToEnumCast", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDeprecatedEnumCompareConditional", - "shortDescription": { - "text": "deprecated-enum-compare-conditional clang diagnostic" - }, - "fullDescription": { - "text": "-Wdeprecated-enum-compare-conditional clang diagnostic · Learn more", - "markdown": "-Wdeprecated-enum-compare-conditional clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-enum-compare-conditional)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedEnumCompareConditional", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS0041", - "shortDescription": { - "text": "RoslynAnalyzers Remove new line between 'if' keyword and 'else' keyword" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS0041", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticIgnoredOptimizationArgument", - "shortDescription": { - "text": "ignored-optimization-argument clang diagnostic" - }, - "fullDescription": { - "text": "-Wignored-optimization-argument clang diagnostic · Learn more", - "markdown": "-Wignored-optimization-argument clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wignored-optimization-argument)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticIgnoredOptimizationArgument", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerOsxCocoaSuperDealloc", - "shortDescription": { - "text": "osx.cocoa.SuperDealloc clang static analyzer check" - }, - "fullDescription": { - "text": "osx.cocoa.SuperDealloc clang static analyzer check · Learn more", - "markdown": "osx.cocoa.SuperDealloc clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerOsxCocoaSuperDealloc", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0080", - "shortDescription": { - "text": "RoslynAnalyzers Remove unnecessary suppression operator" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0080", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneVirtualNearMiss", - "shortDescription": { - "text": "bugprone-virtual-near-miss clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-virtual-near-miss clang-tidy check · Learn more", - "markdown": "bugprone-virtual-near-miss clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/virtual-near-miss.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyBugproneVirtualNearMiss", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS0039", - "shortDescription": { - "text": "RoslynAnalyzers Remove new line before base list" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS0039", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0083", - "shortDescription": { - "text": "RoslynAnalyzers Use pattern matching" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0083", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "WebConfig.RedundantLocationTag", - "shortDescription": { - "text": "Redundant location element" - }, - "fullDescription": { - "text": "Location element does not correspond to any path in the web site and can be safely removed", - "markdown": "Location element does not correspond to any path in the web site and can be safely removed" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "WebConfig.RedundantLocationTag", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Web.Config/Redundancies in Code", - "index": 98, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0082", - "shortDescription": { - "text": "RoslynAnalyzers 'typeof' can be converted to 'nameof'" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0082", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS0034", - "shortDescription": { - "text": "RoslynAnalyzers Put type parameter constraint on its own line" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS0034", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS0033", - "shortDescription": { - "text": "RoslynAnalyzers Put statement on its own line" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS0033", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyModernizeUseAuto", - "shortDescription": { - "text": "modernize-use-auto clang-tidy check" - }, - "fullDescription": { - "text": "modernize-use-auto clang-tidy check · Learn more", - "markdown": "modernize-use-auto clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-auto.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyModernizeUseAuto", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS0032", - "shortDescription": { - "text": "RoslynAnalyzers Place new line after/before arrow token" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS0032", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS0031", - "shortDescription": { - "text": "RoslynAnalyzers Put enum member on its own line" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS0031", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyPerformanceNoIntToPtr", - "shortDescription": { - "text": "performance-no-int-to-ptr clang-tidy check" - }, - "fullDescription": { - "text": "performance-no-int-to-ptr clang-tidy check · Learn more", - "markdown": "performance-no-int-to-ptr clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance/no-int-to-ptr.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyPerformanceNoIntToPtr", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS0038", - "shortDescription": { - "text": "RoslynAnalyzers [deprecated] Remove blank line between using directives with same root namespace" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS0038", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8094", - "shortDescription": { - "text": "Alignment value 'value' has a magnitude greater than 'magnitude limit' and may result in a large formatted string." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8094", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS0036", - "shortDescription": { - "text": "RoslynAnalyzers Remove blank line between single-line declarations of same kind" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS0036", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ClassCanBeSealed.Global", - "shortDescription": { - "text": "Class can be made sealed (non-inheritable) (non-private accessibility)" - }, - "fullDescription": { - "text": "Class has no inheritors and can be marked sealed (non-inheritable)", - "markdown": "Class has no inheritors and can be marked sealed (non-inheritable)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ClassCanBeSealed.Global", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS0030", - "shortDescription": { - "text": "RoslynAnalyzers Put embedded statement on its own line" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS0030", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp20AttributeExtensions", - "shortDescription": { - "text": "c++20-attribute-extensions clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++20-attribute-extensions clang diagnostic · Learn more", - "markdown": "-Wc++20-attribute-extensions clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-20-attribute-extensions)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp20AttributeExtensions", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMicrosoftAnonTag", - "shortDescription": { - "text": "microsoft-anon-tag clang diagnostic" - }, - "fullDescription": { - "text": "-Wmicrosoft-anon-tag clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-anon-tag clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-anon-tag)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftAnonTag", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0090", - "shortDescription": { - "text": "RoslynAnalyzers Use 'new(...)'" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0090", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS0029", - "shortDescription": { - "text": "RoslynAnalyzers Put constructor initializer on its own line" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS0029", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS0028", - "shortDescription": { - "text": "RoslynAnalyzers Place new line after/before '?:' operator" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS0028", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS0023", - "shortDescription": { - "text": "RoslynAnalyzers Format type declaration's braces" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS0023", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SYSLIB1045", - "shortDescription": { - "text": "RoslynAnalyzers Convert to 'GeneratedRegexAttribute'." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "SYSLIB1045", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS0022", - "shortDescription": { - "text": "RoslynAnalyzers [deprecated] Add new line after opening brace of empty block" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS0022", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS0021", - "shortDescription": { - "text": "RoslynAnalyzers Format block's braces on a single line or multiple lines" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS0021", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppMissingLinebreak", - "shortDescription": { - "text": "Incorrect line breaks (line break is missing elsewhere)" - }, - "fullDescription": { - "text": "Line break is missing elsewhere", - "markdown": "Line break is missing elsewhere" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppMissingLinebreak", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Formatting", - "index": 28, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS0020", - "shortDescription": { - "text": "RoslynAnalyzers Format accessor's braces on a single line or multiple lines" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS0020", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS0027", - "shortDescription": { - "text": "RoslynAnalyzers Place new line after/before binary operator" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS0027", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS0025", - "shortDescription": { - "text": "RoslynAnalyzers Put full accessor on its own line" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS0025", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticFinalMacro", - "shortDescription": { - "text": "final-macro clang diagnostic" - }, - "fullDescription": { - "text": "-Wfinal-macro clang diagnostic · Learn more", - "markdown": "-Wfinal-macro clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wfinal-macro)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticFinalMacro", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS0024", - "shortDescription": { - "text": "RoslynAnalyzers Add new line after switch label" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS0024", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS0063", - "shortDescription": { - "text": "RoslynAnalyzers Remove unnecessary blank line" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS0063", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS0062", - "shortDescription": { - "text": "RoslynAnalyzers Put expression body on its own line" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS0062", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneMisplacedWideningCast", - "shortDescription": { - "text": "bugprone-misplaced-widening-cast clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-misplaced-widening-cast clang-tidy check · Learn more", - "markdown": "bugprone-misplaced-widening-cast clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/misplaced-widening-cast.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneMisplacedWideningCast", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS0061", - "shortDescription": { - "text": "RoslynAnalyzers Add/remove blank line between switch sections" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS0061", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS0060", - "shortDescription": { - "text": "RoslynAnalyzers Add/remove line after file scoped namespace declaration" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS0060", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityContainerDataPointer", - "shortDescription": { - "text": "readability-container-data-pointer clang-tidy check" - }, - "fullDescription": { - "text": "readability-container-data-pointer clang-tidy check · Learn more", - "markdown": "readability-container-data-pointer clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/container-data-pointer.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityContainerDataPointer", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerOsxCocoaUnusedIvars", - "shortDescription": { - "text": "osx.cocoa.UnusedIvars clang static analyzer check" - }, - "fullDescription": { - "text": "osx.cocoa.UnusedIvars clang static analyzer check · Learn more", - "markdown": "osx.cocoa.UnusedIvars clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerOsxCocoaUnusedIvars", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneSignedCharMisuse", - "shortDescription": { - "text": "bugprone-signed-char-misuse clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-signed-char-misuse clang-tidy check · Learn more", - "markdown": "bugprone-signed-char-misuse clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/signed-char-misuse.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneSignedCharMisuse", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDeprecatedImplementations", - "shortDescription": { - "text": "deprecated-implementations clang diagnostic" - }, - "fullDescription": { - "text": "-Wdeprecated-implementations clang diagnostic · Learn more", - "markdown": "-Wdeprecated-implementations clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-implementations)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedImplementations", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MergeAndPattern", - "shortDescription": { - "text": "Merge 'and' pattern" - }, - "fullDescription": { - "text": "Merge two operands of the 'and' pattern into single pattern", - "markdown": "Merge two operands of the 'and' pattern into single pattern" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "MergeAndPattern", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS0056", - "shortDescription": { - "text": "RoslynAnalyzers A line is too long" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS0056", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS0055", - "shortDescription": { - "text": "RoslynAnalyzers Fix formatting of a binary expression chain" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS0055", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS0054", - "shortDescription": { - "text": "RoslynAnalyzers Fix formatting of a call chain" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS0054", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS0053", - "shortDescription": { - "text": "RoslynAnalyzers Fix formatting of a list" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS0053", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConvertNullableToShortForm", - "shortDescription": { - "text": "Convert 'Nullable<T>' into 'T?'" - }, - "fullDescription": { - "text": "Rewrite nullable type in short form Learn more...", - "markdown": "Rewrite nullable type in short form [Learn more...](https://www.jetbrains.com/help/rider/ConvertNullableToShortForm.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ConvertNullableToShortForm", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8073", - "shortDescription": { - "text": "The result of the expression is always 'true' or 'false' since a value of value type is never equal to 'null'" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/warning-waves#cs8073---the-result-of-the-expression-is-always-false-or-true)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8073", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS0059", - "shortDescription": { - "text": "RoslynAnalyzers Place new line after/before null-conditional operator" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS0059", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS0058", - "shortDescription": { - "text": "RoslynAnalyzers Normalize whitespace at the end of a file" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS0058", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppReinterpretCastFromVoidPtr", - "shortDescription": { - "text": "reinterpret_cast is used instead of static_cast" - }, - "fullDescription": { - "text": "reinterpret_cast is used instead of static_cast", - "markdown": "reinterpret_cast is used instead of static_cast" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppReinterpretCastFromVoidPtr", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Common Practices and Code Improvements", - "index": 16, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS0057", - "shortDescription": { - "text": "RoslynAnalyzers Normalize whitespace at the beginning of a file" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS0057", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2300", - "shortDescription": { - "text": "RoslynAnalyzers Do not use insecure deserializer BinaryFormatter" - }, - "fullDescription": { - "text": "The method '{0}' is insecure when deserializing untrusted data. If you need to instead detect BinaryFormatter deserialization without a SerializationBinder set, then disable rule CA2300, and enable rules CA2301 and CA2302.", - "markdown": "The method '{0}' is insecure when deserializing untrusted data. If you need to instead detect BinaryFormatter deserialization without a SerializationBinder set, then disable rule CA2300, and enable rules CA2301 and CA2302." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2300", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2301", - "shortDescription": { - "text": "RoslynAnalyzers Do not call BinaryFormatter.Deserialize without first setting BinaryFormatter.Binder" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2301", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.MethodArgumentsWillBeIgnored", - "shortDescription": { - "text": "Method arguments will be replaced by event's arguments in generated code" - }, - "fullDescription": { - "text": "Method arguments will be replaced by event's arguments in generated code", - "markdown": "Method arguments will be replaced by event's arguments in generated code" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Xaml.MethodArgumentsWillBeIgnored", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Code Notification", - "index": 5, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2302", - "shortDescription": { - "text": "RoslynAnalyzers Ensure BinaryFormatter.Binder is set before calling BinaryFormatter.Deserialize" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2302", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS0052", - "shortDescription": { - "text": "RoslynAnalyzers Place new line after/before equals token" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS0052", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2305", - "shortDescription": { - "text": "RoslynAnalyzers Do not use insecure deserializer LosFormatter" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2305", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS0051", - "shortDescription": { - "text": "RoslynAnalyzers Add/remove new line before 'while' in 'do' statement" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS0051", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnsupportedAbs", - "shortDescription": { - "text": "unsupported-abs clang diagnostic" - }, - "fullDescription": { - "text": "-Wunsupported-abs clang diagnostic · Learn more", - "markdown": "-Wunsupported-abs clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunsupported-abs)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnsupportedAbs", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS0050", - "shortDescription": { - "text": "RoslynAnalyzers Add blank line before top declaration" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS0050", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnsupportedAbi", - "shortDescription": { - "text": "unsupported-abi clang diagnostic" - }, - "fullDescription": { - "text": "-Wunsupported-abi clang diagnostic · Learn more", - "markdown": "-Wunsupported-abi clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunsupported-abi)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnsupportedAbi", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1070", - "shortDescription": { - "text": "RoslynAnalyzers Do not declare event fields as virtual" - }, - "fullDescription": { - "text": "Do not declare virtual events in a base class. Overridden events in a derived class have undefined behavior. The C# compiler does not handle this correctly and it is unpredictable whether a subscriber to the derived event will actually be subscribing to the base class event.", - "markdown": "Do not declare virtual events in a base class. Overridden events in a derived class have undefined behavior. The C# compiler does not handle this correctly and it is unpredictable whether a subscriber to the derived event will actually be subscribing to the base class event." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1070", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMissingConstinit", - "shortDescription": { - "text": "missing-constinit clang diagnostic" - }, - "fullDescription": { - "text": "-Wmissing-constinit clang diagnostic · Learn more", - "markdown": "-Wmissing-constinit clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmissing-constinit)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMissingConstinit", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticReorderInitList", - "shortDescription": { - "text": "reorder-init-list clang diagnostic" - }, - "fullDescription": { - "text": "-Wreorder-init-list clang diagnostic · Learn more", - "markdown": "-Wreorder-init-list clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wreorder-init-list)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticReorderInitList", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticVecElemSize", - "shortDescription": { - "text": "vec-elem-size clang diagnostic" - }, - "fullDescription": { - "text": "-Wvec-elem-size clang diagnostic · Learn more", - "markdown": "-Wvec-elem-size clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wvec-elem-size)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticVecElemSize", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticImplicitInt", - "shortDescription": { - "text": "implicit-int clang diagnostic" - }, - "fullDescription": { - "text": "-Wimplicit-int clang diagnostic · Learn more", - "markdown": "-Wimplicit-int clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wimplicit-int)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticImplicitInt", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.ParentIsOutOfCurrentComponentTree", - "shortDescription": { - "text": "Parent is outside the current component tree" - }, - "fullDescription": { - "text": "Parent is outside the current component tree", - "markdown": "Parent is outside the current component tree" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Xaml.ParentIsOutOfCurrentComponentTree", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Code Notification", - "index": 5, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS0045", - "shortDescription": { - "text": "RoslynAnalyzers Use linefeed as new line" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS0045", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyAbseilDurationSubtraction", - "shortDescription": { - "text": "abseil-duration-subtraction clang-tidy check" - }, - "fullDescription": { - "text": "abseil-duration-subtraction clang-tidy check · Learn more", - "markdown": "abseil-duration-subtraction clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/duration-subtraction.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyAbseilDurationSubtraction", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS0044", - "shortDescription": { - "text": "RoslynAnalyzers Use carriage return + linefeed as new line" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS0044", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS0043", - "shortDescription": { - "text": "RoslynAnalyzers [deprecated] Format accessor's braces on a single line when expression is on single line" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS0043", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS0042", - "shortDescription": { - "text": "RoslynAnalyzers Put auto-accessors on a single line" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS0042", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS0049", - "shortDescription": { - "text": "RoslynAnalyzers Add blank line after top comment" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS0049", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS0048", - "shortDescription": { - "text": "RoslynAnalyzers Put initializer on a single line" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS0048", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2310", - "shortDescription": { - "text": "RoslynAnalyzers Do not use insecure deserializer NetDataContractSerializer" - }, - "fullDescription": { - "text": "The method '{0}' is insecure when deserializing untrusted data. If you need to instead detect NetDataContractSerializer deserialization without a SerializationBinder set, then disable rule CA2310, and enable rules CA2311 and CA2312.", - "markdown": "The method '{0}' is insecure when deserializing untrusted data. If you need to instead detect NetDataContractSerializer deserialization without a SerializationBinder set, then disable rule CA2310, and enable rules CA2311 and CA2312." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2310", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS0047", - "shortDescription": { - "text": "RoslynAnalyzers [deprecated] Wrap and indent each node in list" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS0047", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1069", - "shortDescription": { - "text": "RoslynAnalyzers Enums values should not be duplicated" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1069", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2311", - "shortDescription": { - "text": "RoslynAnalyzers Do not deserialize without first setting NetDataContractSerializer.Binder" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2311", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS0046", - "shortDescription": { - "text": "RoslynAnalyzers Use spaces instead of tab" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS0046", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2312", - "shortDescription": { - "text": "RoslynAnalyzers Ensure NetDataContractSerializer.Binder is set before deserializing" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2312", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1068", - "shortDescription": { - "text": "RoslynAnalyzers CancellationToken parameters must come last" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1068", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneTerminatingContinue", - "shortDescription": { - "text": "bugprone-terminating-continue clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-terminating-continue clang-tidy check · Learn more", - "markdown": "bugprone-terminating-continue clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/terminating-continue.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneTerminatingContinue", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyModernizeDeprecatedHeaders", - "shortDescription": { - "text": "modernize-deprecated-headers clang-tidy check" - }, - "fullDescription": { - "text": "modernize-deprecated-headers clang-tidy check · Learn more", - "markdown": "modernize-deprecated-headers clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/deprecated-headers.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyModernizeDeprecatedHeaders", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1067", - "shortDescription": { - "text": "RoslynAnalyzers Override Object.Equals(object) when implementing IEquatable<T>" - }, - "fullDescription": { - "text": "When a type T implements the interface IEquatable, it suggests to a user who sees a call to the Equals method in source code that an instance of the type can be equated with an instance of any other type. The user might be confused if their attempt to equate the type with an instance of another type fails to compile. This violates the \"principle of least surprise\".", - "markdown": "When a type T implements the interface IEquatable, it suggests to a user who sees a call to the Equals method in source code that an instance of the type can be equated with an instance of any other type. The user might be confused if their attempt to equate the type with an instance of another type fails to compile. This violates the \"principle of least surprise\"." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1067", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1066", - "shortDescription": { - "text": "RoslynAnalyzers Implement IEquatable when overriding Object.Equals" - }, - "fullDescription": { - "text": "When a type T overrides Object.Equals(object), the implementation must cast the object argument to the correct type T before performing the comparison. If the type implements IEquatable, and therefore offers the method T.Equals(T), and if the argument is known at compile time to be of type T, then the compiler can call IEquatable.Equals(T) instead of Object.Equals(object), and no cast is necessary, improving performance.", - "markdown": "When a type T overrides Object.Equals(object), the implementation must cast the object argument to the correct type T before performing the comparison. If the type implements IEquatable, and therefore offers the method T.Equals(T), and if the argument is known at compile time to be of type T, then the compiler can call IEquatable.Equals(T) instead of Object.Equals(object), and no cast is necessary, improving performance." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1066", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1065", - "shortDescription": { - "text": "RoslynAnalyzers Do not raise exceptions in unexpected locations" - }, - "fullDescription": { - "text": "A method that is not expected to throw exceptions throws an exception.", - "markdown": "A method that is not expected to throw exceptions throws an exception." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1065", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2315", - "shortDescription": { - "text": "RoslynAnalyzers Do not use insecure deserializer ObjectStateFormatter" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2315", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1064", - "shortDescription": { - "text": "RoslynAnalyzers Exceptions should be public" - }, - "fullDescription": { - "text": "An internal exception is visible only inside its own internal scope. After the exception falls outside the internal scope, only the base exception can be used to catch the exception. If the internal exception is inherited from T:System.Exception, T:System.SystemException, or T:System.ApplicationException, the external code will not have sufficient information to know what to do with the exception.", - "markdown": "An internal exception is visible only inside its own internal scope. After the exception falls outside the internal scope, only the base exception can be used to catch the exception. If the internal exception is inherited from T:System.Exception, T:System.SystemException, or T:System.ApplicationException, the external code will not have sufficient information to know what to do with the exception." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1064", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PureAttributeOnVoidMethod", - "shortDescription": { - "text": "'void' method is annotated with the [Pure] attribute" - }, - "fullDescription": { - "text": "It is meaningless to annotate a 'void' method with the [Pure] attribute", - "markdown": "It is meaningless to annotate a 'void' method with the \\[Pure\\] attribute" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "PureAttributeOnVoidMethod", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1063", - "shortDescription": { - "text": "RoslynAnalyzers Implement IDisposable Correctly" - }, - "fullDescription": { - "text": "All IDisposable types should implement the Dispose pattern correctly.", - "markdown": "All IDisposable types should implement the Dispose pattern correctly." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1063", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ChangeFieldTypeToSystemThreadingLock", - "shortDescription": { - "text": "Change lock field type to 'System.Threading.Lock'" - }, - "fullDescription": { - "text": "The type of the lock field can be changed to 'System.Threading.Lock' to express field intent", - "markdown": "The type of the lock field can be changed to 'System.Threading.Lock' to express field intent" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "ChangeFieldTypeToSystemThreadingLock", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCertDcl59Cpp", - "shortDescription": { - "text": "cert-dcl59-cpp clang-tidy check" - }, - "fullDescription": { - "text": "cert-dcl59-cpp clang-tidy check · Learn more", - "markdown": "cert-dcl59-cpp clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/dcl59-cpp.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCertDcl59Cpp", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1062", - "shortDescription": { - "text": "RoslynAnalyzers Validate arguments of public methods" - }, - "fullDescription": { - "text": "An externally visible method dereferences one of its reference arguments without verifying whether that argument is 'null' ('Nothing' in Visual Basic). All reference arguments that are passed to externally visible methods should be checked against 'null'. If appropriate, throw an 'ArgumentNullException' when the argument is 'null'. If the method is designed to be called only by known assemblies, you should make the method internal.", - "markdown": "An externally visible method dereferences one of its reference arguments without verifying whether that argument is 'null' ('Nothing' in Visual Basic). All reference arguments that are passed to externally visible methods should be checked against 'null'. If appropriate, throw an 'ArgumentNullException' when the argument is 'null'. If the method is designed to be called only by known assemblies, you should make the method internal." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1062", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1061", - "shortDescription": { - "text": "RoslynAnalyzers Do not hide base class methods" - }, - "fullDescription": { - "text": "A method in a base type is hidden by an identically named method in a derived type when the parameter signature of the derived method differs only by types that are more weakly derived than the corresponding types in the parameter signature of the base method.", - "markdown": "A method in a base type is hidden by an identically named method in a derived type when the parameter signature of the derived method differs only by types that are more weakly derived than the corresponding types in the parameter signature of the base method." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1061", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCertFlp37C", - "shortDescription": { - "text": "cert-flp37-c clang-tidy check" - }, - "fullDescription": { - "text": "cert-flp37-c clang-tidy check · Learn more", - "markdown": "cert-flp37-c clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/flp37-c.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCertFlp37C", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1060", - "shortDescription": { - "text": "RoslynAnalyzers Move pinvokes to native methods class" - }, - "fullDescription": { - "text": "Platform Invocation methods, such as those that are marked by using the System.Runtime.InteropServices.DllImportAttribute attribute, or methods that are defined by using the Declare keyword in Visual Basic, access unmanaged code. These methods should be of the NativeMethods, SafeNativeMethods, or UnsafeNativeMethods class.", - "markdown": "Platform Invocation methods, such as those that are marked by using the System.Runtime.InteropServices.DllImportAttribute attribute, or methods that are defined by using the Declare keyword in Visual Basic, access unmanaged code. These methods should be of the NativeMethods, SafeNativeMethods, or UnsafeNativeMethods class." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1060", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyObjcNsdateFormatter", - "shortDescription": { - "text": "objc-nsdate-formatter clang-tidy check" - }, - "fullDescription": { - "text": "objc-nsdate-formatter clang-tidy check · Learn more", - "markdown": "objc-nsdate-formatter clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/objc/nsdate-formatter.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyObjcNsdateFormatter", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerOsxCocoaAutoreleaseWrite", - "shortDescription": { - "text": "osx.cocoa.AutoreleaseWrite clang static analyzer check" - }, - "fullDescription": { - "text": "osx.cocoa.AutoreleaseWrite clang static analyzer check · Learn more", - "markdown": "osx.cocoa.AutoreleaseWrite clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerOsxCocoaAutoreleaseWrite", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCompletionHandler", - "shortDescription": { - "text": "completion-handler clang diagnostic" - }, - "fullDescription": { - "text": "-Wcompletion-handler clang diagnostic · Learn more", - "markdown": "-Wcompletion-handler clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcompletion-handler)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCompletionHandler", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticInlineNamespaceReopenedNoninline", - "shortDescription": { - "text": "inline-namespace-reopened-noninline clang diagnostic" - }, - "fullDescription": { - "text": "-Winline-namespace-reopened-noninline clang diagnostic · Learn more", - "markdown": "-Winline-namespace-reopened-noninline clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winline-namespace-reopened-noninline)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticInlineNamespaceReopenedNoninline", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDtorTypedef", - "shortDescription": { - "text": "dtor-typedef clang diagnostic" - }, - "fullDescription": { - "text": "-Wdtor-typedef clang diagnostic · Learn more", - "markdown": "-Wdtor-typedef clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdtor-typedef)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDtorTypedef", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp98Cpp11Cpp14Cpp17Compat", - "shortDescription": { - "text": "c++98-c++11-c++14-c++17-compat clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++98-c++11-c++14-c++17-compat clang diagnostic · Learn more", - "markdown": "-Wc++98-c++11-c++14-c++17-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-98-c-11-c-14-c-17-compat)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp98Cpp11Cpp14Cpp17Compat", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0041", - "shortDescription": { - "text": "RoslynAnalyzers Use 'is null' check" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0041", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0040", - "shortDescription": { - "text": "RoslynAnalyzers Add accessibility modifiers" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0040", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticWarnings", - "shortDescription": { - "text": "#warnings clang diagnostic" - }, - "fullDescription": { - "text": "-W#warnings clang diagnostic · Learn more", - "markdown": "-W#warnings clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#w-warnings)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticWarnings", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit.MissingCancelAfterAttribute", - "shortDescription": { - "text": "NUnit. Missing 'CancelAfter' attribute on test method declaration." - }, - "fullDescription": { - "text": "According to the test method signature, there is probably a missing [CancelAfter] attribute", - "markdown": "According to the test method signature, there is probably a missing \\[CancelAfter\\] attribute" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NUnit.MissingCancelAfterAttribute", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/NUnit", - "index": 26, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0045", - "shortDescription": { - "text": "RoslynAnalyzers Convert to conditional expression" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0045", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0044", - "shortDescription": { - "text": "RoslynAnalyzers Add readonly modifier" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0044", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NoSupportForVB", - "shortDescription": { - "text": "Visual Basic is not supported yet" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NoSupportForVB", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "T4/T4", - "index": 116, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0043", - "shortDescription": { - "text": "RoslynAnalyzers Invalid format string" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0043", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0042", - "shortDescription": { - "text": "RoslynAnalyzers Deconstruct variable declaration" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0042", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0048", - "shortDescription": { - "text": "RoslynAnalyzers Add parentheses for clarity" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0048", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PatternNeverMatches", - "shortDescription": { - "text": "The source expression never matches the provided pattern" - }, - "fullDescription": { - "text": "The source expression of 'is' operator or 'switch' statement never matches the provided pattern", - "markdown": "The source expression of 'is' operator or 'switch' statement never matches the provided pattern" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "PatternNeverMatches", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0047", - "shortDescription": { - "text": "RoslynAnalyzers Remove unnecessary parentheses" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0047", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2321", - "shortDescription": { - "text": "RoslynAnalyzers Do not deserialize with JavaScriptSerializer using a SimpleTypeResolver" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2321", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ExtractCommonPropertyPattern", - "shortDescription": { - "text": "Extract common property pattern" - }, - "fullDescription": { - "text": "Simplify recursive pattern by extracting common property pattern", - "markdown": "Simplify recursive pattern by extracting common property pattern" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ExtractCommonPropertyPattern", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2322", - "shortDescription": { - "text": "RoslynAnalyzers Ensure JavaScriptSerializer is not initialized with SimpleTypeResolver before deserializing" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2322", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0046", - "shortDescription": { - "text": "RoslynAnalyzers Convert to conditional expression" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0046", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1058", - "shortDescription": { - "text": "RoslynAnalyzers Types should not extend certain base types" - }, - "fullDescription": { - "text": "An externally visible type extends certain base types. Use one of the alternatives.", - "markdown": "An externally visible type extends certain base types. Use one of the alternatives." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1058", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1056", - "shortDescription": { - "text": "RoslynAnalyzers URI-like properties should not be strings" - }, - "fullDescription": { - "text": "This rule assumes that the property represents a Uniform Resource Identifier (URI). A string representation of a URI is prone to parsing and encoding errors, and can lead to security vulnerabilities. The System.Uri class provides these services in a safe and secure manner.", - "markdown": "This rule assumes that the property represents a Uniform Resource Identifier (URI). A string representation of a URI is prone to parsing and encoding errors, and can lead to security vulnerabilities. The System.Uri class provides these services in a safe and secure manner." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1056", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "FSharpRedundantAsPattern", - "shortDescription": { - "text": "Redundant 'as' pattern" - }, - "fullDescription": { - "text": "'as' pattern can be replaced with its name.", - "markdown": "'as' pattern can be replaced with its name." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "FSharpRedundantAsPattern", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "F#/Redundancies in Code", - "index": 73, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticConstantEvaluated", - "shortDescription": { - "text": "constant-evaluated clang diagnostic" - }, - "fullDescription": { - "text": "-Wconstant-evaluated clang diagnostic · Learn more", - "markdown": "-Wconstant-evaluated clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wconstant-evaluated)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticConstantEvaluated", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1055", - "shortDescription": { - "text": "RoslynAnalyzers URI-like return values should not be strings" - }, - "fullDescription": { - "text": "This rule assumes that the method returns a URI. A string representation of a URI is prone to parsing and encoding errors, and can lead to security vulnerabilities. The System.Uri class provides these services in a safe and secure manner.", - "markdown": "This rule assumes that the method returns a URI. A string representation of a URI is prone to parsing and encoding errors, and can lead to security vulnerabilities. The System.Uri class provides these services in a safe and secure manner." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1055", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1054", - "shortDescription": { - "text": "RoslynAnalyzers URI-like parameters should not be strings" - }, - "fullDescription": { - "text": "This rule assumes that the parameter represents a Uniform Resource Identifier (URI). A string representation or a URI is prone to parsing and encoding errors, and can lead to security vulnerabilities. 'System.Uri' class provides these services in a safe and secure manner.", - "markdown": "This rule assumes that the parameter represents a Uniform Resource Identifier (URI). A string representation or a URI is prone to parsing and encoding errors, and can lead to security vulnerabilities. 'System.Uri' class provides these services in a safe and secure manner." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1054", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2326", - "shortDescription": { - "text": "RoslynAnalyzers Do not use TypeNameHandling values other than None" - }, - "fullDescription": { - "text": "Deserializing JSON when using a TypeNameHandling value other than None can be insecure. If you need to instead detect Json.NET deserialization when a SerializationBinder isn't specified, then disable rule CA2326, and enable rules CA2327, CA2328, CA2329, and CA2330.", - "markdown": "Deserializing JSON when using a TypeNameHandling value other than None can be insecure. If you need to instead detect Json.NET deserialization when a SerializationBinder isn't specified, then disable rule CA2326, and enable rules CA2327, CA2328, CA2329, and CA2330." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2326", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2327", - "shortDescription": { - "text": "RoslynAnalyzers Do not use insecure JsonSerializerSettings" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2327", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1052", - "shortDescription": { - "text": "RoslynAnalyzers Static holder types should be Static or NotInheritable" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1052", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2328", - "shortDescription": { - "text": "RoslynAnalyzers Ensure that JsonSerializerSettings are secure" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2328", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1051", - "shortDescription": { - "text": "RoslynAnalyzers Do not declare visible instance fields" - }, - "fullDescription": { - "text": "The primary use of a field should be as an implementation detail. Fields should be private or internal and should be exposed by using properties.", - "markdown": "The primary use of a field should be as an implementation detail. Fields should be private or internal and should be exposed by using properties." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1051", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2329", - "shortDescription": { - "text": "RoslynAnalyzers Do not deserialize with JsonSerializer using an insecure configuration" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2329", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1050", - "shortDescription": { - "text": "RoslynAnalyzers Declare types in namespaces" - }, - "fullDescription": { - "text": "Types are declared in namespaces to prevent name collisions and as a way to organize related types in an object hierarchy.", - "markdown": "Types are declared in namespaces to prevent name collisions and as a way to organize related types in an object hierarchy." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1050", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "FSharpLambdaCanBeReplacedWithInnerExpression", - "shortDescription": { - "text": "Lambda expression can be replaced with inner expression" - }, - "fullDescription": { - "text": "Lambda expression can be replaced with inner expression.", - "markdown": "Lambda expression can be replaced with inner expression." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "FSharpLambdaCanBeReplacedWithInnerExpression", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "F#/Redundancies in Code", - "index": 73, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerNullabilityNullPassedToNonnull", - "shortDescription": { - "text": "nullability.NullPassedToNonnull clang static analyzer check" - }, - "fullDescription": { - "text": "nullability.NullPassedToNonnull clang static analyzer check · Learn more", - "markdown": "nullability.NullPassedToNonnull clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerNullabilityNullPassedToNonnull", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticOverrideModule", - "shortDescription": { - "text": "override-module clang diagnostic" - }, - "fullDescription": { - "text": "-Woverride-module clang diagnostic · Learn more", - "markdown": "-Woverride-module clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#woverride-module)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticOverrideModule", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Razor.UnresolvedComponent", - "shortDescription": { - "text": "Unknown HTML tag, may be a component" - }, - "fullDescription": { - "text": "Unknown HTML tag, may be a component", - "markdown": "Unknown HTML tag, may be a component" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Razor.UnresolvedComponent", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Razor/Potential Code Quality Issues", - "index": 93, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDeprecatedBuiltins", - "shortDescription": { - "text": "deprecated-builtins clang diagnostic" - }, - "fullDescription": { - "text": "-Wdeprecated-builtins clang diagnostic · Learn more", - "markdown": "-Wdeprecated-builtins clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-builtins)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedBuiltins", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyHicppUppercaseLiteralSuffix", - "shortDescription": { - "text": "hicpp-uppercase-literal-suffix clang-tidy check" - }, - "fullDescription": { - "text": "hicpp-uppercase-literal-suffix clang-tidy check · Learn more", - "markdown": "hicpp-uppercase-literal-suffix clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/uppercase-literal-suffix.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyHicppUppercaseLiteralSuffix", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0052", - "shortDescription": { - "text": "RoslynAnalyzers Remove unread private members" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0052", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0051", - "shortDescription": { - "text": "RoslynAnalyzers Remove unused private members" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0051", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS0183", - "shortDescription": { - "text": "Given expression is always of the provided type" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/sb7782xb.aspx)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS0183", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticFormatInsufficientArgs", - "shortDescription": { - "text": "format-insufficient-args clang diagnostic" - }, - "fullDescription": { - "text": "-Wformat-insufficient-args clang diagnostic · Learn more", - "markdown": "-Wformat-insufficient-args clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wformat-insufficient-args)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticFormatInsufficientArgs", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS0184", - "shortDescription": { - "text": "Given expression is never of the provided type" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/230kb9yt.aspx)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS0184", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0056", - "shortDescription": { - "text": "RoslynAnalyzers Use index operator" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0056", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0055", - "shortDescription": { - "text": "RoslynAnalyzers Fix formatting" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0055", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0054", - "shortDescription": { - "text": "RoslynAnalyzers Use compound assignment" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0054", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.DynamicResourceError", - "shortDescription": { - "text": "{DynamicResource} can only be used with dependency property" - }, - "fullDescription": { - "text": "{DynamicResource} can only be used with DependencyProperty of a DependencyObject", - "markdown": "{DynamicResource} can only be used with DependencyProperty of a DependencyObject" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "Xaml.DynamicResourceError", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Code Notification", - "index": 5, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0053", - "shortDescription": { - "text": "RoslynAnalyzers Use expression body for lambda expression" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0053", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2330", - "shortDescription": { - "text": "RoslynAnalyzers Ensure that JsonSerializer has a secure configuration when deserializing" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2330", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0059", - "shortDescription": { - "text": "RoslynAnalyzers Unnecessary assignment of a value" - }, - "fullDescription": { - "text": "Avoid unnecessary value assignments in your code, as these likely indicate redundant value computations. If the value computation is not redundant and you intend to retain the assignment, then change the assignment target to a local variable whose name starts with an underscore and is optionally followed by an integer, such as '_', '_1', '_2', etc. These are treated as special discard symbol names.", - "markdown": "Avoid unnecessary value assignments in your code, as these likely indicate redundant value computations. If the value computation is not redundant and you intend to retain the assignment, then change the assignment target to a local variable whose name starts with an underscore and is optionally followed by an integer, such as '_', '_1', '_2', etc. These are treated as special discard symbol names." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0059", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0058", - "shortDescription": { - "text": "RoslynAnalyzers Expression value is never used" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0058", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0057", - "shortDescription": { - "text": "RoslynAnalyzers Use range operator" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0057", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1046", - "shortDescription": { - "text": "RoslynAnalyzers Do not overload equality operator on reference types" - }, - "fullDescription": { - "text": "For reference types, the default implementation of the equality operator is almost always correct. By default, two references are equal only if they point to the same object. If the operator is providing meaningful value equality, the type should implement the generic 'System.IEquatable' interface.", - "markdown": "For reference types, the default implementation of the equality operator is almost always correct. By default, two references are equal only if they point to the same object. If the operator is providing meaningful value equality, the type should implement the generic 'System.IEquatable' interface." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1046", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1045", - "shortDescription": { - "text": "RoslynAnalyzers Do not pass types by reference" - }, - "fullDescription": { - "text": "Passing types by reference (using out or ref) requires experience with pointers, understanding how value types and reference types differ, and handling methods that have multiple return values. Also, the difference between out and ref parameters is not widely understood.", - "markdown": "Passing types by reference (using out or ref) requires experience with pointers, understanding how value types and reference types differ, and handling methods that have multiple return values. Also, the difference between out and ref parameters is not widely understood." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1045", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1044", - "shortDescription": { - "text": "RoslynAnalyzers Properties should not be write only" - }, - "fullDescription": { - "text": "Although it is acceptable and often necessary to have a read-only property, the design guidelines prohibit the use of write-only properties. This is because letting a user set a value, and then preventing the user from viewing that value, does not provide any security. Also, without read access, the state of shared objects cannot be viewed, which limits their usefulness.", - "markdown": "Although it is acceptable and often necessary to have a read-only property, the design guidelines prohibit the use of write-only properties. This is because letting a user set a value, and then preventing the user from viewing that value, does not provide any security. Also, without read access, the state of shared objects cannot be viewed, which limits their usefulness." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1044", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1043", - "shortDescription": { - "text": "RoslynAnalyzers Use Integral Or String Argument For Indexers" - }, - "fullDescription": { - "text": "Indexers, that is, indexed properties, should use integer or string types for the index. These types are typically used for indexing data structures and increase the usability of the library. Use of the Object type should be restricted to those cases where the specific integer or string type cannot be specified at design time. If the design requires other types for the index, reconsider whether the type represents a logical data store. If it does not represent a logical data store, use a method.", - "markdown": "Indexers, that is, indexed properties, should use integer or string types for the index. These types are typically used for indexing data structures and increase the usability of the library. Use of the Object type should be restricted to those cases where the specific integer or string type cannot be specified at design time. If the design requires other types for the index, reconsider whether the type represents a logical data store. If it does not represent a logical data store, use a method." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1043", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1041", - "shortDescription": { - "text": "RoslynAnalyzers Provide ObsoleteAttribute message" - }, - "fullDescription": { - "text": "A type or member is marked by using a System.ObsoleteAttribute attribute that does not have its ObsoleteAttribute.Message property specified. When a type or member that is marked by using ObsoleteAttribute is compiled, the Message property of the attribute is displayed. This gives the user information about the obsolete type or member.", - "markdown": "A type or member is marked by using a System.ObsoleteAttribute attribute that does not have its ObsoleteAttribute.Message property specified. When a type or member that is marked by using ObsoleteAttribute is compiled, the Message property of the attribute is displayed. This gives the user information about the obsolete type or member." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1041", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1040", - "shortDescription": { - "text": "RoslynAnalyzers Avoid empty interfaces" - }, - "fullDescription": { - "text": "Interfaces define members that provide a behavior or usage contract. The functionality that is described by the interface can be adopted by any type, regardless of where the type appears in the inheritance hierarchy. A type implements an interface by providing implementations for the members of the interface. An empty interface does not define any members; therefore, it does not define a contract that can be implemented.", - "markdown": "Interfaces define members that provide a behavior or usage contract. The functionality that is described by the interface can be adopted by any type, regardless of where the type appears in the inheritance hierarchy. A type implements an interface by providing implementations for the members of the interface. An empty interface does not define any members; therefore, it does not define a contract that can be implemented." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1040", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticIgnoredPragmas", - "shortDescription": { - "text": "ignored-pragmas clang diagnostic" - }, - "fullDescription": { - "text": "-Wignored-pragmas clang diagnostic · Learn more", - "markdown": "-Wignored-pragmas clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wignored-pragmas)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticIgnoredPragmas", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticSignCompare", - "shortDescription": { - "text": "sign-compare clang diagnostic" - }, - "fullDescription": { - "text": "-Wsign-compare clang diagnostic · Learn more", - "markdown": "-Wsign-compare clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wsign-compare)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticSignCompare", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticConsumed", - "shortDescription": { - "text": "consumed clang diagnostic" - }, - "fullDescription": { - "text": "-Wconsumed clang diagnostic · Learn more", - "markdown": "-Wconsumed clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wconsumed)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticConsumed", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantDictionaryContainsKeyBeforeAdding", - "shortDescription": { - "text": "'ContainsKey' call is redundant before adding the item to the dictionary" - }, - "fullDescription": { - "text": "'ContainsKey' call is redundant before adding the item to the dictionary.", - "markdown": "'ContainsKey' call is redundant before adding the item to the dictionary." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantDictionaryContainsKeyBeforeAdding", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0063", - "shortDescription": { - "text": "RoslynAnalyzers Use simple 'using' statement" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0063", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0062", - "shortDescription": { - "text": "RoslynAnalyzers Make local function 'static'" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0062", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0061", - "shortDescription": { - "text": "RoslynAnalyzers Use expression body for local function" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0061", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SYSLIB1054", - "shortDescription": { - "text": "RoslynAnalyzers Use 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time" - }, - "fullDescription": { - "text": "Use 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time", - "markdown": "Use 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "SYSLIB1054", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0060", - "shortDescription": { - "text": "RoslynAnalyzers Remove unused parameter" - }, - "fullDescription": { - "text": "Avoid unused parameters in your code. If the parameter cannot be removed, then change its name so it starts with an underscore and is optionally followed by an integer, such as '_', '_1', '_2', etc. These are treated as special discard symbol names.", - "markdown": "Avoid unused parameters in your code. If the parameter cannot be removed, then change its name so it starts with an underscore and is optionally followed by an integer, such as '_', '_1', '_2', etc. These are treated as special discard symbol names." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0060", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SYSLIB1055", - "shortDescription": { - "text": "RoslynAnalyzers Invalid 'CustomMarshallerAttribute' usage" - }, - "fullDescription": { - "text": "A type with a 'System.Runtime.InteropServices.CustomMarshallerAttribute' must specify a non-'null' managed type", - "markdown": "A type with a 'System.Runtime.InteropServices.CustomMarshallerAttribute' must specify a non-'null' managed type" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "SYSLIB1055", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SYSLIB1056", - "shortDescription": { - "text": "RoslynAnalyzers Specified marshaller type is invalid" - }, - "fullDescription": { - "text": "The unmanaged type for a custom marshaller must be a C# unmanaged type.", - "markdown": "The unmanaged type for a custom marshaller must be a C# unmanaged type." - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "SYSLIB1056", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS0012", - "shortDescription": { - "text": "RoslynAnalyzers Add blank line between single-line declarations" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS0012", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticIncludeAngledInModulePurview", - "shortDescription": { - "text": "include-angled-in-module-purview clang diagnostic" - }, - "fullDescription": { - "text": "-Winclude-angled-in-module-purview clang diagnostic · Learn more", - "markdown": "-Winclude-angled-in-module-purview clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winclude-angled-in-module-purview)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticIncludeAngledInModulePurview", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS0011", - "shortDescription": { - "text": "RoslynAnalyzers Add/remove blank line between single-line accessors" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS0011", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0066", - "shortDescription": { - "text": "RoslynAnalyzers Convert switch statement to expression" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0066", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SYSLIB1057", - "shortDescription": { - "text": "RoslynAnalyzers Marshaller type does not have the required shape" - }, - "fullDescription": { - "text": "A stateless value marshaller that supports marshalling from managed to unmanaged must provide a one-parameter 'ConvertToUnmanaged' method that takes the managed value as the parameter and returns a value of the 'unmanaged' type.", - "markdown": "A stateless value marshaller that supports marshalling from managed to unmanaged must provide a one-parameter 'ConvertToUnmanaged' method that takes the managed value as the parameter and returns a value of the 'unmanaged' type." - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "SYSLIB1057", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS0010", - "shortDescription": { - "text": "RoslynAnalyzers Add blank line between declarations" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS0010", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SYSLIB1058", - "shortDescription": { - "text": "RoslynAnalyzers Invalid 'NativeMarshallingAttribute' usage" - }, - "fullDescription": { - "text": "An entry-point type for marshalling a given type must have a 'System.Runtime.InteropServices.CustomMarshallerAttribute' that specifies this type as the managed type.", - "markdown": "An entry-point type for marshalling a given type must have a 'System.Runtime.InteropServices.CustomMarshallerAttribute' that specifies this type as the managed type." - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "SYSLIB1058", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0065", - "shortDescription": { - "text": "RoslynAnalyzers Misplaced using directive" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0065", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticSourceUsesOpenacc", - "shortDescription": { - "text": "source-uses-openacc clang diagnostic" - }, - "fullDescription": { - "text": "-Wsource-uses-openacc clang diagnostic · Learn more", - "markdown": "-Wsource-uses-openacc clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wsource-uses-openacc)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticSourceUsesOpenacc", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0064", - "shortDescription": { - "text": "RoslynAnalyzers Make readonly fields writable" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0064", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS0016", - "shortDescription": { - "text": "RoslynAnalyzers Put attribute list on its own line" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS0016", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS0015", - "shortDescription": { - "text": "RoslynAnalyzers Add/remove blank line between using directives" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS0015", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppRedundantConditionalExpression", - "shortDescription": { - "text": "Redundant conditional expression" - }, - "fullDescription": { - "text": "Redundant conditional expression", - "markdown": "Redundant conditional expression" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppRedundantConditionalExpression", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Redundancies in Code", - "index": 34, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS0014", - "shortDescription": { - "text": "RoslynAnalyzers [deprecated] Add blank line between switch sections" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS0014", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS0013", - "shortDescription": { - "text": "RoslynAnalyzers Add blank line between single-line declarations of different kind" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS0013", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1036", - "shortDescription": { - "text": "RoslynAnalyzers Override methods on comparable types" - }, - "fullDescription": { - "text": "A public or protected type implements the System.IComparable interface. It does not override Object.Equals nor does it overload the language-specific operator for equality, inequality, less than, less than or equal, greater than or greater than or equal.", - "markdown": "A public or protected type implements the System.IComparable interface. It does not override Object.Equals nor does it overload the language-specific operator for equality, inequality, less than, less than or equal, greater than or greater than or equal." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1036", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyPerformanceForRangeCopy", - "shortDescription": { - "text": "performance-for-range-copy clang-tidy check" - }, - "fullDescription": { - "text": "performance-for-range-copy clang-tidy check · Learn more", - "markdown": "performance-for-range-copy clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance/for-range-copy.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyPerformanceForRangeCopy", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1034", - "shortDescription": { - "text": "RoslynAnalyzers Nested types should not be visible" - }, - "fullDescription": { - "text": "A nested type is a type that is declared in the scope of another type. Nested types are useful to encapsulate private implementation details of the containing type. Used for this purpose, nested types should not be externally visible.", - "markdown": "A nested type is a type that is declared in the scope of another type. Nested types are useful to encapsulate private implementation details of the containing type. Used for this purpose, nested types should not be externally visible." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1034", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppFinalNonOverridingVirtualFunction", - "shortDescription": { - "text": "Final non-overriding virtual function" - }, - "fullDescription": { - "text": "A virtual function is marked 'final' and does not override a base function", - "markdown": "A virtual function is marked 'final' and does not override a base function" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppFinalNonOverridingVirtualFunction", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Redundancies in Code", - "index": 34, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerUnixMalloc", - "shortDescription": { - "text": "unix.Malloc clang static analyzer check" - }, - "fullDescription": { - "text": "unix.Malloc clang static analyzer check · Learn more", - "markdown": "unix.Malloc clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerUnixMalloc", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1033", - "shortDescription": { - "text": "RoslynAnalyzers Interface methods should be callable by child types" - }, - "fullDescription": { - "text": "An unsealed externally visible type provides an explicit method implementation of a public interface and does not provide an alternative externally visible method that has the same name.", - "markdown": "An unsealed externally visible type provides an explicit method implementation of a public interface and does not provide an alternative externally visible method that has the same name." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1033", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityConstReturnType", - "shortDescription": { - "text": "readability-const-return-type clang-tidy check" - }, - "fullDescription": { - "text": "readability-const-return-type clang-tidy check · Learn more", - "markdown": "readability-const-return-type clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/const-return-type.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityConstReturnType", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1032", - "shortDescription": { - "text": "RoslynAnalyzers Implement standard exception constructors" - }, - "fullDescription": { - "text": "Failure to provide the full set of constructors can make it difficult to correctly handle exceptions.", - "markdown": "Failure to provide the full set of constructors can make it difficult to correctly handle exceptions." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1032", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.LanguageLevel", - "shortDescription": { - "text": "XAML language level error" - }, - "fullDescription": { - "text": "XAML 2009 language construct is not allowed here", - "markdown": "XAML 2009 language construct is not allowed here" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "Xaml.LanguageLevel", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Potential Code Quality Issues", - "index": 45, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1031", - "shortDescription": { - "text": "RoslynAnalyzers Do not catch general exception types" - }, - "fullDescription": { - "text": "A general exception such as System.Exception or System.SystemException or a disallowed exception type is caught in a catch statement, or a general catch clause is used. General and disallowed exceptions should not be caught.", - "markdown": "A general exception such as System.Exception or System.SystemException or a disallowed exception type is caught in a catch statement, or a general catch clause is used. General and disallowed exceptions should not be caught." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1031", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1030", - "shortDescription": { - "text": "RoslynAnalyzers Use events where appropriate" - }, - "fullDescription": { - "text": "This rule detects methods that have names that ordinarily would be used for events. If a method is called in response to a clearly defined state change, the method should be invoked by an event handler. Objects that call the method should raise events instead of calling the method directly.", - "markdown": "This rule detects methods that have names that ordinarily would be used for events. If a method is called in response to a clearly defined state change, the method should be invoked by an event handler. Objects that call the method should raise events instead of calling the method directly." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1030", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyModernizeUseStdFormat", - "shortDescription": { - "text": "modernize-use-std-format clang-tidy check" - }, - "fullDescription": { - "text": "modernize-use-std-format clang-tidy check · Learn more", - "markdown": "modernize-use-std-format clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-std-format.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyModernizeUseStdFormat", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MemberCanBePrivate.Local", - "shortDescription": { - "text": "Member can be made private (private accessibility)" - }, - "fullDescription": { - "text": "Member can be made private Learn more...", - "markdown": "Member can be made private [Learn more...](https://www.jetbrains.com/help/rider/MemberCanBePrivate.Local.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "MemberCanBePrivate.Local", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppDependentTypeWithoutTypenameKeyword", - "shortDescription": { - "text": "Dependent type without 'typename' keyword" - }, - "fullDescription": { - "text": "Dependent type without 'typename' keyword", - "markdown": "Dependent type without 'typename' keyword" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppDependentTypeWithoutTypenameKeyword", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0070", - "shortDescription": { - "text": "RoslynAnalyzers Use 'System.HashCode'" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0070", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS0009", - "shortDescription": { - "text": "RoslynAnalyzers Add blank line between declaration and documentation comment" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS0009", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticIncompleteImplementation", - "shortDescription": { - "text": "incomplete-implementation clang diagnostic" - }, - "fullDescription": { - "text": "-Wincomplete-implementation clang diagnostic · Learn more", - "markdown": "-Wincomplete-implementation clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wincomplete-implementation)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticIncompleteImplementation", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS0008", - "shortDescription": { - "text": "RoslynAnalyzers Add blank line between closing brace and next statement" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS0008", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SYSLIB1060", - "shortDescription": { - "text": "RoslynAnalyzers Specified marshaller type is invalid" - }, - "fullDescription": { - "text": "A marshaller type must either be a stateless static class or a stateful value type. A non-static class is not allowed.", - "markdown": "A marshaller type must either be a stateless static class or a stateful value type. A non-static class is not allowed." - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "SYSLIB1060", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS0007", - "shortDescription": { - "text": "RoslynAnalyzers Add blank line between accessors" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS0007", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SYSLIB1061", - "shortDescription": { - "text": "RoslynAnalyzers Marshaller type has incompatible method signatures" - }, - "fullDescription": { - "text": "The return type of 'GetPinnableReference' (after accounting for 'ref') must be blittable.", - "markdown": "The return type of 'GetPinnableReference' (after accounting for 'ref') must be blittable." - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "SYSLIB1061", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerOsxObjCProperty", - "shortDescription": { - "text": "osx.ObjCProperty clang static analyzer check" - }, - "fullDescription": { - "text": "osx.ObjCProperty clang static analyzer check · Learn more", - "markdown": "osx.ObjCProperty clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerOsxObjCProperty", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS0006", - "shortDescription": { - "text": "RoslynAnalyzers Add blank line before using directive list" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS0006", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticImplicitIntFloatConversion", - "shortDescription": { - "text": "implicit-int-float-conversion clang diagnostic" - }, - "fullDescription": { - "text": "-Wimplicit-int-float-conversion clang diagnostic · Learn more", - "markdown": "-Wimplicit-int-float-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wimplicit-int-float-conversion)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticImplicitIntFloatConversion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.UnresolvedComponentOrScriptableObject", - "shortDescription": { - "text": "Cannot resolve component or scriptable object" - }, - "fullDescription": { - "text": "The class referred to in the call to 'GetComponent', 'AddComponent' or 'ScriptableObject.CreateInstance' cannot be found in the current project or referenced assemblies. The call is likely to fail at runtime and return null.", - "markdown": "The class referred to in the call to 'GetComponent', 'AddComponent' or 'ScriptableObject.CreateInstance' cannot be found in the current project or referenced assemblies. The call is likely to fail at runtime and return null." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.UnresolvedComponentOrScriptableObject", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0074", - "shortDescription": { - "text": "RoslynAnalyzers Use compound assignment" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0074", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticFinalDtorNonFinalClass", - "shortDescription": { - "text": "final-dtor-non-final-class clang diagnostic" - }, - "fullDescription": { - "text": "-Wfinal-dtor-non-final-class clang diagnostic · Learn more", - "markdown": "-Wfinal-dtor-non-final-class clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wfinal-dtor-non-final-class)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticFinalDtorNonFinalClass", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticReorder", - "shortDescription": { - "text": "reorder clang diagnostic" - }, - "fullDescription": { - "text": "-Wreorder clang diagnostic · Learn more", - "markdown": "-Wreorder clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wreorder)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticReorder", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0073", - "shortDescription": { - "text": "RoslynAnalyzers The file header does not match the required text" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0073", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyAndroidCloexecCreat", - "shortDescription": { - "text": "android-cloexec-creat clang-tidy check" - }, - "fullDescription": { - "text": "android-cloexec-creat clang-tidy check · Learn more", - "markdown": "android-cloexec-creat clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/android/cloexec-creat.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyAndroidCloexecCreat", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0072", - "shortDescription": { - "text": "RoslynAnalyzers Add missing cases" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0072", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS0162", - "shortDescription": { - "text": "Code is unreachable" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/c0h4st1x.aspx)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "CSharpWarnings__CS0162", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0071", - "shortDescription": { - "text": "RoslynAnalyzers Simplify interpolation" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0071", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0078", - "shortDescription": { - "text": "RoslynAnalyzers Use pattern matching" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0078", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS0001", - "shortDescription": { - "text": "RoslynAnalyzers Add blank line after embedded statement" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS0001", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0077", - "shortDescription": { - "text": "RoslynAnalyzers Avoid legacy format target in 'SuppressMessageAttribute'" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0077", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0076", - "shortDescription": { - "text": "RoslynAnalyzers Invalid global 'SuppressMessageAttribute'" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0076", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2350", - "shortDescription": { - "text": "RoslynAnalyzers Do not use DataTable.ReadXml() with untrusted data" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2350", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCppcoreguidelinesProTypeConstCast", - "shortDescription": { - "text": "cppcoreguidelines-pro-type-const-cast clang-tidy check" - }, - "fullDescription": { - "text": "cppcoreguidelines-pro-type-const-cast clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-pro-type-const-cast clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/pro-type-const-cast.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCppcoreguidelinesProTypeConstCast", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IDE0075", - "shortDescription": { - "text": "RoslynAnalyzers Simplify conditional expression" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0075", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2351", - "shortDescription": { - "text": "RoslynAnalyzers Do not use DataSet.ReadXml() with untrusted data" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2351", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1028", - "shortDescription": { - "text": "RoslynAnalyzers Enum Storage should be Int32" - }, - "fullDescription": { - "text": "An enumeration is a value type that defines a set of related named constants. By default, the System.Int32 data type is used to store the constant value. Although you can change this underlying type, it is not required or recommended for most scenarios.", - "markdown": "An enumeration is a value type that defines a set of related named constants. By default, the System.Int32 data type is used to store the constant value. Although you can change this underlying type, it is not required or recommended for most scenarios." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1028", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS0005", - "shortDescription": { - "text": "RoslynAnalyzers Add blank line before #endregion" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS0005", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2352", - "shortDescription": { - "text": "RoslynAnalyzers Unsafe DataSet or DataTable in serializable type can be vulnerable to remote code execution attacks" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2352", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1027", - "shortDescription": { - "text": "RoslynAnalyzers Mark enums with FlagsAttribute" - }, - "fullDescription": { - "text": "An enumeration is a value type that defines a set of related named constants. Apply FlagsAttribute to an enumeration when its named constants can be meaningfully combined.", - "markdown": "An enumeration is a value type that defines a set of related named constants. Apply FlagsAttribute to an enumeration when its named constants can be meaningfully combined." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1027", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2353", - "shortDescription": { - "text": "RoslynAnalyzers Unsafe DataSet or DataTable in serializable type" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2353", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS0003", - "shortDescription": { - "text": "RoslynAnalyzers Add blank line after using directive list" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS0003", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2354", - "shortDescription": { - "text": "RoslynAnalyzers Unsafe DataSet or DataTable in deserialized object graph can be vulnerable to remote code execution attacks" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2354", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS0002", - "shortDescription": { - "text": "RoslynAnalyzers Add blank line after #region" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS0002", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2355", - "shortDescription": { - "text": "RoslynAnalyzers Unsafe DataSet or DataTable type found in deserializable object graph" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2355", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "org.jetbrains.plugins.sass", - "version": "243.24609", - "rules": [ - { - "id": "SassScssResolvedByNameOnly", - "shortDescription": { - "text": "Missing import" - }, - "fullDescription": { - "text": "Reports a reference to a variable, mixin, or function that is declared in another file but this file isn't explicitly imported in the current file. Example: '* {\n margin: $var-in-other-file;\n}'", - "markdown": "Reports a reference to a variable, mixin, or function that is declared in another file but this file isn't explicitly [imported](https://sass-lang.com/documentation/at-rules/import) in the current file.\n\n**Example:**\n\n\n * {\n margin: $var-in-other-file;\n }\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "SassScssResolvedByNameOnly", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Sass_SCSS", - "index": 10, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SassScssUnresolvedVariable", - "shortDescription": { - "text": "Unresolved variable" - }, - "fullDescription": { - "text": "Reports an unresolved Sass/SCSS variable reference. Example: '* {\n margin: $unknown-var;\n}'", - "markdown": "Reports an unresolved [Sass/SCSS variable](https://sass-lang.com/documentation/variables) reference.\n\n**Example:**\n\n\n * {\n margin: $unknown-var;\n }\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SassScssUnresolvedVariable", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Sass_SCSS", - "index": 10, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SassScssUnresolvedMixin", - "shortDescription": { - "text": "Unresolved mixin" - }, - "fullDescription": { - "text": "Reports an unresolved Sass/SCSS mixin reference. Example: '* {\n @include unknown-mixin;\n}'", - "markdown": "Reports an unresolved [Sass/SCSS mixin](https://sass-lang.com/documentation/at-rules/mixin) reference.\n\n**Example:**\n\n\n * {\n @include unknown-mixin;\n }\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SassScssUnresolvedMixin", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Sass_SCSS", - "index": 10, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SassScssUnresolvedPlaceholderSelector", - "shortDescription": { - "text": "Unresolved placeholder selector" - }, - "fullDescription": { - "text": "Reports an unresolved Sass/SCSS placeholder selector reference. Example: '* {\n @extend %unknown-placeholder-selector;\n}'", - "markdown": "Reports an unresolved [Sass/SCSS placeholder selector](https://sass-lang.com/documentation/variables) reference.\n\n**Example:**\n\n\n * {\n @extend %unknown-placeholder-selector;\n }\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SassScssUnresolvedPlaceholderSelector", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Sass_SCSS", - "index": 10, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "com.intellij", - "version": "243.24609", - "rules": [ - { - "id": "HtmlUnknownBooleanAttribute", - "shortDescription": { - "text": "Incorrect boolean attribute" - }, - "fullDescription": { - "text": "Reports an HTML non-boolean attribute without a value. Suggests configuring attributes that should not be reported.", - "markdown": "Reports an HTML non-boolean attribute without a value. Suggests configuring attributes that should not be reported." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "HtmlUnknownBooleanAttribute", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HTML", - "index": 11, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IncorrectFormatting", - "shortDescription": { - "text": "Incorrect formatting" - }, - "fullDescription": { - "text": "Reports formatting issues that appear if your code doesn't follow your project's code style settings. This inspection is not compatible with languages that require third-party formatters for code formatting, for example, Go or C with CLangFormat enabled.", - "markdown": "Reports formatting issues that appear if your code doesn't\nfollow your project's code style settings.\n\n\nThis inspection is not compatible with languages that require\nthird-party formatters for code formatting, for example, Go or\nC with CLangFormat enabled." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IncorrectFormatting", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "General", - "index": 46, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CheckXmlFileWithXercesValidator", - "shortDescription": { - "text": "Failed external validation" - }, - "fullDescription": { - "text": "Reports a discrepancy in an XML file with the specified DTD or schema detected by the Xerces validator.", - "markdown": "Reports a discrepancy in an XML file with the specified DTD or schema detected by the Xerces validator." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "CheckXmlFileWithXercesValidator", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XML", - "index": 56, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RegExpEscapedMetaCharacter", - "shortDescription": { - "text": "Escaped meta character" - }, - "fullDescription": { - "text": "Reports escaped meta characters. Some RegExp coding styles specify that meta characters should be placed inside a character class, to make the regular expression easier to understand. This inspection does not warn about the meta character '[', ']' and '^', because those would need additional escaping inside a character class. Example: '\\d+\\.\\d+' After the quick-fix is applied: '\\d+[.]\\d+' New in 2017.1", - "markdown": "Reports escaped meta characters. Some RegExp coding styles specify that meta characters should be placed inside a character class, to make the regular expression easier to understand. This inspection does not warn about the meta character `[`, `]` and `^`, because those would need additional escaping inside a character class.\n\n**Example:**\n\n\n \\d+\\.\\d+\n\nAfter the quick-fix is applied:\n\n\n \\d+[.]\\d+\n\nNew in 2017.1" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RegExpEscapedMetaCharacter", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "RegExp", - "index": 58, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "XmlUnusedNamespaceDeclaration", - "shortDescription": { - "text": "Unused schema declaration" - }, - "fullDescription": { - "text": "Reports an unused namespace declaration or location hint in XML.", - "markdown": "Reports an unused namespace declaration or location hint in XML." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "XmlUnusedNamespaceDeclaration", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XML", - "index": 56, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RegExpUnnecessaryNonCapturingGroup", - "shortDescription": { - "text": "Unnecessary non-capturing group" - }, - "fullDescription": { - "text": "Reports unnecessary non-capturing groups, which have no influence on the match result. Example: 'Everybody be cool, (?:this) is a robbery!' After the quick-fix is applied: 'Everybody be cool, this is a robbery!' New in 2021.1", - "markdown": "Reports unnecessary non-capturing groups, which have no influence on the match result.\n\n**Example:**\n\n\n Everybody be cool, (?:this) is a robbery!\n\nAfter the quick-fix is applied:\n\n\n Everybody be cool, this is a robbery!\n\nNew in 2021.1" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "RegExpUnnecessaryNonCapturingGroup", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "RegExp", - "index": 58, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CheckDtdRefs", - "shortDescription": { - "text": "Unresolved DTD reference" - }, - "fullDescription": { - "text": "Reports inconsistency in a DTD-specific reference, for example, in a reference to an XML entity or to a DTD element declaration. Works in DTD an XML files.", - "markdown": "Reports inconsistency in a DTD-specific reference, for example, in a reference to an XML entity or to a DTD element declaration. Works in DTD an XML files." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "CheckDtdRefs", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XML", - "index": 56, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RegExpSingleCharAlternation", - "shortDescription": { - "text": "Single character alternation" - }, - "fullDescription": { - "text": "Reports single char alternation in a RegExp. It is simpler to use a character class instead. This may also provide better matching performance. Example: 'a|b|c|d' After the quick-fix is applied: '[abcd]' New in 2017.1", - "markdown": "Reports single char alternation in a RegExp. It is simpler to use a character class instead. This may also provide better matching performance.\n\n**Example:**\n\n\n a|b|c|d\n\nAfter the quick-fix is applied:\n\n\n [abcd]\n\n\nNew in 2017.1" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "RegExpSingleCharAlternation", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "RegExp", - "index": 58, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CheckTagEmptyBody", - "shortDescription": { - "text": "Empty element content" - }, - "fullDescription": { - "text": "Reports XML elements without contents. Example: '<user>\n <name></name>\n </user>' After the quick-fix is applied: '<user>\n <name/>\n </user>'", - "markdown": "Reports XML elements without contents.\n\n**Example:**\n\n\n <user>\n <name></name>\n </user>\n\nAfter the quick-fix is applied:\n\n\n <user>\n <name/>\n </user>\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CheckTagEmptyBody", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XML", - "index": 56, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReassignedToPlainText", - "shortDescription": { - "text": "Reassigned to plain text" - }, - "fullDescription": { - "text": "Reports files that were explicitly re-assigned to Plain Text File Type. This association is unnecessary because the platform auto-detects text files by content automatically. You can dismiss this warning by removing the file type association in Settings | Editor | File Types | Text.", - "markdown": "Reports files that were explicitly re-assigned to Plain Text File Type. This association is unnecessary because the platform auto-detects text files by content automatically.\n\nYou can dismiss this warning by removing the file type association\nin **Settings \\| Editor \\| File Types \\| Text**." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ReassignedToPlainText", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "General", - "index": 46, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CheckEmptyScriptTag", - "shortDescription": { - "text": "Empty tag" - }, - "fullDescription": { - "text": "Reports empty tags that do not work in some browsers. Example: '<html>\n <script/>\n </html>' After the quick-fix is applied: '<html>\n <script></script>\n </html>'", - "markdown": "Reports empty tags that do not work in some browsers.\n\n**Example:**\n\n\n <html>\n <script/>\n </html>\n\nAfter the quick-fix is applied:\n\n\n <html>\n <script></script>\n </html>\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CheckEmptyScriptTag", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HTML", - "index": 11, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HtmlUnknownTarget", - "shortDescription": { - "text": "Unresolved file in a link" - }, - "fullDescription": { - "text": "Reports an unresolved file in a link.", - "markdown": "Reports an unresolved file in a link." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "HtmlUnknownTarget", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HTML", - "index": 11, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "XmlWrongRootElement", - "shortDescription": { - "text": "Wrong root element" - }, - "fullDescription": { - "text": "Reports a root tag name different from the name specified in the '<doctype>' tag.", - "markdown": "Reports a root tag name different from the name specified in the `<doctype>` tag." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "XmlWrongRootElement", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XML", - "index": 56, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HtmlUnknownAttribute", - "shortDescription": { - "text": "Unknown attribute" - }, - "fullDescription": { - "text": "Reports an unknown HTML attribute. Suggests configuring attributes that should not be reported.", - "markdown": "Reports an unknown HTML attribute. Suggests configuring attributes that should not be reported." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "HtmlUnknownAttribute", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HTML", - "index": 11, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RegExpRedundantEscape", - "shortDescription": { - "text": "Redundant character escape" - }, - "fullDescription": { - "text": "Reports redundant character escape sequences that can be replaced with unescaped characters preserving the meaning. Many escape sequences that are necessary outside of a character class are redundant inside square brackets '[]' of a character class. Although unescaped opening curly braces '{' outside of character classes are allowed in some dialects (JavaScript, Python, and so on), it can cause confusion and make the pattern less portable, because there are dialects that require escaping curly braces as characters. For this reason the inspection does not report escaped opening curly braces. Example: '\\-\\;[\\.]' After the quick-fix is applied: '-;[.]' The Ignore escaped closing brackets '}' and ']' option specifies whether to report '\\}' and '\\]' outside of a character class when they are allowed to be unescaped by the RegExp dialect. New in 2017.3", - "markdown": "Reports redundant character escape sequences that can be replaced with unescaped characters preserving the meaning. Many escape sequences that are necessary outside of a character class are redundant inside square brackets `[]` of a character class.\n\n\nAlthough unescaped opening curly braces `{` outside of character classes are allowed in some dialects (JavaScript, Python, and so on),\nit can cause confusion and make the pattern less portable, because there are dialects that require escaping curly braces as characters.\nFor this reason the inspection does not report escaped opening curly braces.\n\n**Example:**\n\n\n \\-\\;[\\.]\n\nAfter the quick-fix is applied:\n\n\n -;[.]\n\n\nThe **Ignore escaped closing brackets '}' and '\\]'** option specifies whether to report `\\}` and `\\]` outside of a character class\nwhen they are allowed to be unescaped by the RegExp dialect.\n\nNew in 2017.3" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "RegExpRedundantEscape", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "RegExp", - "index": 58, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HtmlExtraClosingTag", - "shortDescription": { - "text": "Redundant closing tag" - }, - "fullDescription": { - "text": "Reports redundant closing tags on empty elements, for example, 'img' or 'br'. Example: '<html>\n <body>\n <br></br>\n </body>\n </html>' After the quick-fix is applied: '<html>\n <body>\n <br>\n </body>\n </html>'", - "markdown": "Reports redundant closing tags on empty elements, for example, `img` or `br`.\n\n**Example:**\n\n\n <html>\n <body>\n <br></br>\n </body>\n </html>\n\nAfter the quick-fix is applied:\n\n\n <html>\n <body>\n <br>\n </body>\n </html>\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "HtmlExtraClosingTag", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HTML", - "index": 11, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "XmlDuplicatedId", - "shortDescription": { - "text": "Duplicate 'id' attribute" - }, - "fullDescription": { - "text": "Reports a duplicate 'id' attribute in XML.", - "markdown": "Reports a duplicate `id` attribute in XML." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "XmlDuplicatedId", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XML", - "index": 56, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "XmlUnboundNsPrefix", - "shortDescription": { - "text": "Unbound namespace prefix" - }, - "fullDescription": { - "text": "Reports an unbound namespace prefix in XML.", - "markdown": "Reports an unbound namespace prefix in XML." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "XmlUnboundNsPrefix", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XML", - "index": 56, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "XmlPathReference", - "shortDescription": { - "text": "Unresolved file reference" - }, - "fullDescription": { - "text": "Reports an unresolved file reference in XML.", - "markdown": "Reports an unresolved file reference in XML." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "XmlPathReference", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XML", - "index": 56, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "LossyEncoding", - "shortDescription": { - "text": "Lossy encoding" - }, - "fullDescription": { - "text": "Reports characters that cannot be displayed because of the current document encoding. Examples: If you type international characters in a document with the US-ASCII charset, some characters will be lost on save. If you load a UTF-8-encoded file using the ISO-8859-1 one-byte charset, some characters will be displayed incorrectly. You can fix this by changing the file encoding either by specifying the encoding directly in the file, e.g. by editing 'encoding=' attribute in the XML prolog of XML file, or by changing the corresponding options in Settings | Editor | File Encodings.", - "markdown": "Reports characters that cannot be displayed because of the current document encoding.\n\nExamples:\n\n* If you type international characters in a document with the **US-ASCII** charset, some characters will be lost on save.\n* If you load a **UTF-8** -encoded file using the **ISO-8859-1** one-byte charset, some characters will be displayed incorrectly.\n\nYou can fix this by changing the file encoding\neither by specifying the encoding directly in the file, e.g. by editing `encoding=` attribute in the XML prolog of XML file,\nor by changing the corresponding options in **Settings \\| Editor \\| File Encodings**." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "LossyEncoding", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Internationalization", - "index": 124, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RegExpRedundantNestedCharacterClass", - "shortDescription": { - "text": "Redundant nested character class" - }, - "fullDescription": { - "text": "Reports unnecessary nested character classes. Example: '[a-c[x-z]]' After the quick-fix is applied: '[a-cx-z]' New in 2020.2", - "markdown": "Reports unnecessary nested character classes.\n\n**Example:**\n\n\n [a-c[x-z]]\n\nAfter the quick-fix is applied:\n\n\n [a-cx-z]\n\nNew in 2020.2" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "RegExpRedundantNestedCharacterClass", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "RegExp", - "index": 58, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RegExpOctalEscape", - "shortDescription": { - "text": "Octal escape" - }, - "fullDescription": { - "text": "Reports octal escapes, which are easily confused with back references. Use hexadecimal escapes to avoid confusion. Example: '\\07' After the quick-fix is applied: '\\x07' New in 2017.1", - "markdown": "Reports octal escapes, which are easily confused with back references. Use hexadecimal escapes to avoid confusion.\n\n**Example:**\n\n\n \\07\n\nAfter the quick-fix is applied:\n\n\n \\x07\n\nNew in 2017.1" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RegExpOctalEscape", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "RegExp", - "index": 58, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnusedDefine", - "shortDescription": { - "text": "Unused define" - }, - "fullDescription": { - "text": "Reports an unused named pattern ('define') in a RELAX-NG file (XML or Compact Syntax). 'define' elements that are used through an include in another file are ignored.", - "markdown": "Reports an unused named pattern (`define`) in a RELAX-NG file (XML or Compact Syntax). `define` elements that are used through an include in another file are ignored." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "UnusedDefine", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "RELAX NG", - "index": 136, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RegExpDuplicateAlternationBranch", - "shortDescription": { - "text": "Duplicate branch in alternation" - }, - "fullDescription": { - "text": "Reports duplicate branches in a RegExp alternation. Duplicate branches slow down matching and obscure the intent of the expression. Example: '(alpha|bravo|charlie|alpha)' After the quick-fix is applied: '(alpha|bravo|charlie)' New in 2017.1", - "markdown": "Reports duplicate branches in a RegExp alternation. Duplicate branches slow down matching and obscure the intent of the expression.\n\n**Example:**\n\n\n (alpha|bravo|charlie|alpha)\n\nAfter the quick-fix is applied:\n\n\n (alpha|bravo|charlie)\n\nNew in 2017.1" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "RegExpDuplicateAlternationBranch", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "RegExp", - "index": 58, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantSuppression", - "shortDescription": { - "text": "Redundant suppression" - }, - "fullDescription": { - "text": "Reports usages of the following elements that can be safely removed because the inspection they affect is no longer applicable in this context: '@SuppressWarning' annotation, or '// noinspection' line comment, or '/** noinspection */' JavaDoc comment Example: 'public class C {\n // symbol is already private,\n // but annotation is still around\n @SuppressWarnings({\"WeakerAccess\"})\n private boolean CONST = true;\n void f() {\n CONST = false;\n }\n}'", - "markdown": "Reports usages of the following elements that can be safely removed because the inspection they affect is no longer applicable in this context:\n\n* `@SuppressWarning` annotation, or\n* `// noinspection` line comment, or\n* `/** noinspection */` JavaDoc comment\n\nExample:\n\n\n public class C {\n // symbol is already private,\n // but annotation is still around\n @SuppressWarnings({\"WeakerAccess\"})\n private boolean CONST = true;\n void f() {\n CONST = false;\n }\n }\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantSuppression", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "General", - "index": 46, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CustomRegExpInspection", - "shortDescription": { - "text": "Custom RegExp inspection" - }, - "fullDescription": { - "text": "Custom Regex Inspection", - "markdown": "Custom Regex Inspection" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CustomRegExpInspection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "RegExp", - "index": 58, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RegExpUnexpectedAnchor", - "shortDescription": { - "text": "Begin or end anchor in unexpected position" - }, - "fullDescription": { - "text": "Reports '^' or '\\A' anchors not at the beginning of the pattern and '$', '\\Z' or '\\z' anchors not at the end of the pattern. In the wrong position these RegExp anchors prevent the pattern from matching anything. In case of the '^' and '$' anchors, most likely the literal character was meant and the escape forgotten. Example: '(Price $10)' New in 2018.1", - "markdown": "Reports `^` or `\\A` anchors not at the beginning of the pattern and `$`, `\\Z` or `\\z` anchors not at the end of the pattern. In the wrong position these RegExp anchors prevent the pattern from matching anything. In case of the `^` and `$` anchors, most likely the literal character was meant and the escape forgotten.\n\n**Example:**\n\n\n (Price $10)\n\n\nNew in 2018.1" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "RegExpUnexpectedAnchor", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "RegExp", - "index": 58, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SpellCheckingInspection", - "shortDescription": { - "text": "Typo" - }, - "fullDescription": { - "text": "Reports typos and misspellings in your code, comments, and literals and fixes them with one click.", - "markdown": "Reports typos and misspellings in your code, comments, and literals and fixes them with one click." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "SpellCheckingInspection", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Proofreading", - "index": 122, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RegExpSimplifiable", - "shortDescription": { - "text": "Regular expression can be simplified" - }, - "fullDescription": { - "text": "Reports regular expressions that can be simplified. Example: '[a] xx* [ah-hz]' After the quick-fix is applied: 'a x+ [ahz]' New in 2022.1", - "markdown": "Reports regular expressions that can be simplified.\n\n**Example:**\n\n\n [a] xx* [ah-hz]\n\nAfter the quick-fix is applied:\n\n\n a x+ [ahz]\n\nNew in 2022.1" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RegExpSimplifiable", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "RegExp", - "index": 58, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RegExpEmptyAlternationBranch", - "shortDescription": { - "text": "Empty branch in alternation" - }, - "fullDescription": { - "text": "Reports empty branches in a RegExp alternation. An empty branch will only match the empty string, and in most cases that is not what is desired. This inspection will not report a single empty branch at the start or the end of an alternation. Example: '(alpha||bravo)' After the quick-fix is applied: '(alpha|bravo)' New in 2017.2", - "markdown": "Reports empty branches in a RegExp alternation. An empty branch will only match the empty string, and in most cases that is not what is desired. This inspection will not report a single empty branch at the start or the end of an alternation.\n\n**Example:**\n\n\n (alpha||bravo)\n\nAfter the quick-fix is applied:\n\n\n (alpha|bravo)\n\nNew in 2017.2" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "RegExpEmptyAlternationBranch", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "RegExp", - "index": 58, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "TodoComment", - "shortDescription": { - "text": "TODO comment" - }, - "fullDescription": { - "text": "Reports TODO comments in your code. You can configure the format for TODO comments in Settings | Editor | TODO. Enable the Only warn on TODO comments without any details option to only warn on empty TODO comments, that don't provide any description on the task that should be done. Disable to report all TODO comments.", - "markdown": "Reports **TODO** comments in your code.\n\nYou can configure the format for **TODO** comments in [Settings \\| Editor \\| TODO](settings://preferences.toDoOptions).\n\nEnable the **Only warn on TODO comments without any details** option to only warn on empty TODO comments, that\ndon't provide any description on the task that should be done. Disable to report all TODO comments." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "TodoComment", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "General", - "index": 46, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "XmlDefaultAttributeValue", - "shortDescription": { - "text": "Redundant attribute with default value" - }, - "fullDescription": { - "text": "Reports a redundant assignment of the default value to an XML attribute.", - "markdown": "Reports a redundant assignment of the default value to an XML attribute." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "XmlDefaultAttributeValue", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XML", - "index": 56, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EmptyDirectory", - "shortDescription": { - "text": "Empty directory" - }, - "fullDescription": { - "text": "Reports empty directories. Available only from Code | Inspect Code or Code | Analyze Code | Run Inspection by Name and isn't reported in the editor. Use the Only report empty directories located under a source folder option to have only directories under source roots reported.", - "markdown": "Reports empty directories.\n\nAvailable only from **Code \\| Inspect Code** or\n**Code \\| Analyze Code \\| Run Inspection by Name** and isn't reported in the editor.\n\nUse the **Only report empty directories located under a source folder** option to have only directories under source\nroots reported." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "EmptyDirectory", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "General", - "index": 46, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NonAsciiCharacters", - "shortDescription": { - "text": "Non-ASCII characters" - }, - "fullDescription": { - "text": "Reports code elements that use non-ASCII symbols in an unusual context. Example: Non-ASCII characters used in identifiers, strings, or comments. Identifiers written in different languages, such as 'myСollection' with the letter 'C' written in Cyrillic. Comments or strings containing Unicode symbols, such as long dashes and arrows.", - "markdown": "Reports code elements that use non-ASCII symbols in an unusual context.\n\nExample:\n\n* Non-ASCII characters used in identifiers, strings, or comments.\n* Identifiers written in different languages, such as `my`**С**`ollection` with the letter **C** written in Cyrillic.\n* Comments or strings containing Unicode symbols, such as long dashes and arrows." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "NonAsciiCharacters", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "Internationalization", - "index": 124, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IgnoreFileDuplicateEntry", - "shortDescription": { - "text": "Ignore file duplicates" - }, - "fullDescription": { - "text": "Reports duplicate entries (patterns) in the ignore file (e.g. .gitignore, .hgignore). Duplicate entries in these files are redundant and can be removed. Example: '# Output directories\n /out/\n /target/\n /out/'", - "markdown": "Reports duplicate entries (patterns) in the ignore file (e.g. .gitignore, .hgignore). Duplicate entries in these files are redundant and can be removed.\n\nExample:\n\n\n # Output directories\n /out/\n /target/\n /out/\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "IgnoreFileDuplicateEntry", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Version control", - "index": 148, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RegExpSuspiciousBackref", - "shortDescription": { - "text": "Suspicious back reference" - }, - "fullDescription": { - "text": "Reports back references that will not be resolvable at runtime. This means that the back reference can never match anything. A back reference will not be resolvable when the group is defined after the back reference, or if the group is defined in a different branch of an alternation. Example of a group defined after its back reference: '\\1(abc)' Example of a group and a back reference in different branches: 'a(b)c|(xy)\\1z' New in 2022.1", - "markdown": "Reports back references that will not be resolvable at runtime. This means that the back reference can never match anything. A back reference will not be resolvable when the group is defined after the back reference, or if the group is defined in a different branch of an alternation.\n\n**Example of a group defined after its back reference:**\n\n\n \\1(abc)\n\n**Example of a group and a back reference in different branches:**\n\n\n a(b)c|(xy)\\1z\n\nNew in 2022.1" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "RegExpSuspiciousBackref", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "RegExp", - "index": 58, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnresolvedReference", - "shortDescription": { - "text": "Unresolved reference" - }, - "fullDescription": { - "text": "Reports an unresolved reference to a named pattern ('define') in RELAX-NG files that use XML syntax. Suggests creating the referenced 'define' element.", - "markdown": "Reports an unresolved reference to a named pattern (`define`) in RELAX-NG files that use XML syntax. Suggests creating the referenced `define` element." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "UnresolvedReference", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "RELAX NG", - "index": 136, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HtmlMissingClosingTag", - "shortDescription": { - "text": "Missing closing tag" - }, - "fullDescription": { - "text": "Reports an HTML element without a closing tag. Some coding styles require that HTML elements have closing tags even where this is optional. Example: '<html>\n <body>\n <p>Behold!\n </body>\n </html>' After the quick-fix is applied: '<html>\n <body>\n <p>Behold!</p>\n </body>\n </html>'", - "markdown": "Reports an HTML element without a closing tag. Some coding styles require that HTML elements have closing tags even where this is optional.\n\n**Example:**\n\n\n <html>\n <body>\n <p>Behold!\n </body>\n </html>\n\nAfter the quick-fix is applied:\n\n\n <html>\n <body>\n <p>Behold!</p>\n </body>\n </html>\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "HtmlMissingClosingTag", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HTML", - "index": 11, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "XmlInvalidId", - "shortDescription": { - "text": "Unresolved 'id' reference" - }, - "fullDescription": { - "text": "Reports an unresolved 'id' reference in XML.", - "markdown": "Reports an unresolved `id` reference in XML." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "XmlInvalidId", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XML", - "index": 56, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "XmlDeprecatedElement", - "shortDescription": { - "text": "Deprecated symbol" - }, - "fullDescription": { - "text": "Reports a deprecated XML element or attribute. Symbols can be marked by XML comment or documentation tag with text 'deprecated'.", - "markdown": "Reports a deprecated XML element or attribute.\n\nSymbols can be marked by XML comment or documentation tag with text 'deprecated'." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "XmlDeprecatedElement", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XML", - "index": 56, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RegExpAnonymousGroup", - "shortDescription": { - "text": "Anonymous capturing group or numeric back reference" - }, - "fullDescription": { - "text": "Reports anonymous capturing groups and numeric back references in a RegExp. These are only reported when the RegExp dialect supports named group and named group references. Named groups and named back references improve code readability and are recommended to use instead. When a capture is not needed, matching can be more performant and use less memory by using a non-capturing group, i.e. '(?:xxx)' instead of '(xxx)'. Example: '(\\d\\d\\d\\d)\\1' A better regex pattern could look like this: '(?<quad>\\d\\d\\d\\d)\\k<quad>' New in 2017.2", - "markdown": "Reports anonymous capturing groups and numeric back references in a RegExp. These are only reported when the RegExp dialect supports named group and named group references. Named groups and named back references improve code readability and are recommended to use instead. When a capture is not needed, matching can be more performant and use less memory by using a non-capturing group, i.e. `(?:xxx)` instead of `(xxx)`.\n\n**Example:**\n\n\n (\\d\\d\\d\\d)\\1\n\nA better regex pattern could look like this:\n\n\n (?<quad>\\d\\d\\d\\d)\\k<quad>\n\nNew in 2017.2" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "RegExpAnonymousGroup", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "RegExp", - "index": 58, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "XmlUnresolvedReference", - "shortDescription": { - "text": "Unresolved references" - }, - "fullDescription": { - "text": "Reports an unresolved references in XML.", - "markdown": "Reports an unresolved references in XML." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "XmlUnresolvedReference", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XML", - "index": 56, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RegExpRepeatedSpace", - "shortDescription": { - "text": "Consecutive spaces" - }, - "fullDescription": { - "text": "Reports multiple consecutive spaces in a RegExp. Because spaces are not visible by default, it can be hard to see how many spaces are required. The RegExp can be made more clear by replacing the consecutive spaces with a single space and a counted quantifier. Example: '( )' After the quick-fix is applied: '( {5})' New in 2017.1", - "markdown": "Reports multiple consecutive spaces in a RegExp. Because spaces are not visible by default, it can be hard to see how many spaces are required. The RegExp can be made more clear by replacing the consecutive spaces with a single space and a counted quantifier.\n\n**Example:**\n\n\n ( )\n\nAfter the quick-fix is applied:\n\n\n ( {5})\n\n\nNew in 2017.1" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "RegExpRepeatedSpace", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "RegExp", - "index": 58, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "InconsistentLineSeparators", - "shortDescription": { - "text": "Inconsistent line separators" - }, - "fullDescription": { - "text": "Reports files with line separators different from the ones that are specified in the project's settings. For example, the inspection will be triggered if you set the line separator to '\\n' in Settings | Editor | Code Style | Line separator, while the file you are editing uses '\\r\\n' as a line separator. The inspection also warns you about mixed line separators within a file.", - "markdown": "Reports files with line separators different from the ones that are specified in the project's settings.\n\nFor example, the inspection will be triggered if you set the line separator to `\\n` in\n[Settings \\| Editor \\| Code Style \\| Line separator](settings://preferences.sourceCode?Line%20separator),\nwhile the file you are editing uses `\\r\\n` as a line separator.\n\nThe inspection also warns you about mixed line separators within a file." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "InconsistentLineSeparators", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "General", - "index": 46, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ProblematicWhitespace", - "shortDescription": { - "text": "Problematic whitespace" - }, - "fullDescription": { - "text": "Reports the following problems: Tabs used for indentation when the code style is configured to use only spaces. Spaces used for indentation when the code style is configured to use only tabs. Spaces used for indentation and tabs used for alignment when the code style is configured to use smart tabs.", - "markdown": "Reports the following problems:\n\n* Tabs used for indentation when the code style is configured to use only spaces.\n* Spaces used for indentation when the code style is configured to use only tabs.\n* Spaces used for indentation and tabs used for alignment when the code style is configured to use smart tabs." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ProblematicWhitespace", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "General", - "index": 46, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "LongLine", - "shortDescription": { - "text": "Line is longer than allowed by code style" - }, - "fullDescription": { - "text": "Reports lines that are longer than the Hard wrap at parameter specified in Settings | Editor | Code Style | General.", - "markdown": "Reports lines that are longer than the **Hard wrap at** parameter specified in [Settings \\| Editor \\| Code Style \\| General](settings://preferences.sourceCode?Hard%20wrap%20at)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "LongLine", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "General", - "index": 46, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HtmlUnknownTag", - "shortDescription": { - "text": "Unknown tag" - }, - "fullDescription": { - "text": "Reports an unknown HTML tag. Suggests configuring tags that should not be reported.", - "markdown": "Reports an unknown HTML tag. Suggests configuring tags that should not be reported." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "HtmlUnknownTag", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HTML", - "index": 11, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "XmlHighlighting", - "shortDescription": { - "text": "XML highlighting" - }, - "fullDescription": { - "text": "Reports XML validation problems in the results of a batch code inspection.", - "markdown": "Reports XML validation problems in the results of a batch code inspection." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "XmlHighlighting", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XML", - "index": 56, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RegExpDuplicateCharacterInClass", - "shortDescription": { - "text": "Duplicate character in character class" - }, - "fullDescription": { - "text": "Reports duplicate characters inside a RegExp character class. Duplicate characters are unnecessary and can be removed without changing the semantics of the regex. Example: '[aabc]' After the quick-fix is applied: '[abc]'", - "markdown": "Reports duplicate characters inside a RegExp character class. Duplicate characters are unnecessary and can be removed without changing the semantics of the regex.\n\n**Example:**\n\n\n [aabc]\n\nAfter the quick-fix is applied:\n\n\n [abc]\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "RegExpDuplicateCharacterInClass", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "RegExp", - "index": 58, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RequiredAttributes", - "shortDescription": { - "text": "Missing required attribute" - }, - "fullDescription": { - "text": "Reports a missing mandatory attribute in an XML/HTML tag. Suggests configuring attributes that should not be reported.", - "markdown": "Reports a missing mandatory attribute in an XML/HTML tag. Suggests configuring attributes that should not be reported." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "RequiredAttributes", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HTML", - "index": 11, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RegExpRedundantClassElement", - "shortDescription": { - "text": "Redundant '\\d', '[:digit:]', or '\\D' class elements" - }, - "fullDescription": { - "text": "Reports redundant '\\d' or '[:digit:]' that are used in one class with '\\w' or '[:word:]' ('\\D' with '\\W') and can be removed. Example: '[\\w\\d]' After the quick-fix is applied: '[\\w]' New in 2022.2", - "markdown": "Reports redundant `\\d` or `[:digit:]` that are used in one class with `\\w` or `[:word:]` (`\\D` with `\\W`) and can be removed.\n\n**Example:**\n\n\n [\\w\\d]\n\nAfter the quick-fix is applied:\n\n\n [\\w]\n\nNew in 2022.2" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RegExpRedundantClassElement", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "RegExp", - "index": 58, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HtmlWrongAttributeValue", - "shortDescription": { - "text": "Wrong attribute value" - }, - "fullDescription": { - "text": "Reports an incorrect HTML attribute value.", - "markdown": "Reports an incorrect HTML attribute value." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "HtmlWrongAttributeValue", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HTML", - "index": 11, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MsbuildTargetFrameworkTagInspection", - "shortDescription": { - "text": "TargetFramework tag checks" - }, - "fullDescription": { - "text": "RIDER-83136", - "markdown": "[RIDER-83136](https://youtrack.jetbrains.com/issue/RIDER-83136/)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "MsbuildTargetFrameworkTagInspection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "MSBuild", - "index": 165, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CheckValidXmlInScriptTagBody", - "shortDescription": { - "text": "Malformed content of 'script' tag" - }, - "fullDescription": { - "text": "Reports contents of 'script' tags that are invalid XML. Example: '<script type=\"text/javascript\">\n console.log('<');\n </script>' After the quick-fix is applied: '<script type=\"text/javascript\">\n console.log('<');\n </script>'", - "markdown": "Reports contents of `script` tags that are invalid XML. \n\n**Example:**\n\n\n <script type=\"text/javascript\">\n console.log('<');\n </script>\n\nAfter the quick-fix is applied:\n\n\n <script type=\"text/javascript\">\n console.log('<');\n </script>\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "CheckValidXmlInScriptTagBody", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HTML", - "index": 11, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HtmlUnknownAnchorTarget", - "shortDescription": { - "text": "Unresolved fragment in a link" - }, - "fullDescription": { - "text": "Reports an unresolved last part of an URL after the '#' sign.", - "markdown": "Reports an unresolved last part of an URL after the `#` sign." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "HtmlUnknownAnchorTarget", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HTML", - "index": 11, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Annotator", - "shortDescription": { - "text": "Annotator" - }, - "fullDescription": { - "text": "Reports issues essential to this file (e.g., syntax errors) in the result of a batch code inspection run. These issues are usually always highlighted in the editor and can't be configured, unlike inspections. These options control the scope of checks performed by this inspection: Option \"Report syntax errors\": report parser-related issues. Option \"Report issues from language-specific annotators\": report issues found by annotators configured for the relevant language. See Custom Language Support: Annotators for details. Option \"Report other highlighting problems\": report issues specific to the language of the current file (e.g., type mismatches or unreported exceptions). See Custom Language Support: Highlighting for details.", - "markdown": "Reports issues essential to this file (e.g., syntax errors) in the result of a batch code inspection run. These issues are usually always highlighted in the editor and can't be configured, unlike inspections. These options control the scope of checks performed by this inspection:\n\n* Option \"**Report syntax errors**\": report parser-related issues.\n* Option \"**Report issues from language-specific annotators** \": report issues found by annotators configured for the relevant language. See [Custom Language Support: Annotators](https://plugins.jetbrains.com/docs/intellij/annotator.html) for details.\n* Option \"**Report other highlighting problems** \": report issues specific to the language of the current file (e.g., type mismatches or unreported exceptions). See [Custom Language Support: Highlighting](https://plugins.jetbrains.com/docs/intellij/syntax-highlighting-and-error-highlighting.html#semantic-highlighting) for details." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "Annotator", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "General", - "index": 46, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "org.intellij.plugins.postcss", - "version": "243.24609", - "rules": [ - { - "id": "PostCssUnresolvedModuleValueReference", - "shortDescription": { - "text": "Unresolved CSS module value" - }, - "fullDescription": { - "text": "Reports an unresolved reference to a CSS Module Value ('@value' declaration). Example: '@value foo from unknown;'", - "markdown": "Reports an unresolved reference to a [CSS Module Value](https://github.com/css-modules/postcss-modules-values) (`@value` declaration).\n\nExample:\n\n\n @value foo from unknown;\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "PostCssUnresolvedModuleValueReference", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "PostCSS", - "index": 13, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PostCssNesting", - "shortDescription": { - "text": "Invalid nested rule" - }, - "fullDescription": { - "text": "Reports a nested style rule whose syntax doesn't comply with the PostCSS Nested or the PostCSS Nesting specification. Example: '.phone {\n &_title {}\n}'", - "markdown": "Reports a nested style rule whose syntax doesn't comply with the [PostCSS Nested](https://github.com/postcss/postcss-nested) or the [PostCSS Nesting](https://github.com/csstools/postcss-nesting) specification.\n\nExample:\n\n\n .phone {\n &_title {}\n }\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "PostCssNesting", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "PostCSS", - "index": 13, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PostCssCustomMedia", - "shortDescription": { - "text": "Invalid custom media" - }, - "fullDescription": { - "text": "Reports a syntax error in a PostCSS Custom Media query. Example: '@custom-media --small-viewport (max-width: 30em);'", - "markdown": "Reports a syntax error in a [PostCSS Custom Media](https://github.com/postcss/postcss-custom-media) query.\n\nExample:\n\n\n @custom-media --small-viewport (max-width: 30em);\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "PostCssCustomMedia", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "PostCSS", - "index": 13, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PostCssCustomSelector", - "shortDescription": { - "text": "Invalid custom selector" - }, - "fullDescription": { - "text": "Reports a syntax error in PostCSS Custom Selector. Example: '@custom-selector :--heading h1, h2, h3;'", - "markdown": "Reports a syntax error in [PostCSS Custom Selector](https://github.com/postcss/postcss-custom-selectors).\n\nExample:\n\n\n @custom-selector :--heading h1, h2, h3;\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "PostCssCustomSelector", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "PostCSS", - "index": 13, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PostCssMediaRange", - "shortDescription": { - "text": "Invalid media query range" - }, - "fullDescription": { - "text": "Checks range context syntax, which may alternatively be used for media features with a 'range' type. Example: '@media screen and (500px <= width <= 1200px) {}'", - "markdown": "Checks [range context](https://github.com/postcss/postcss-media-minmax) syntax, which may alternatively be used for media features with a 'range' type.\n\nExample:\n\n\n @media screen and (500px <= width <= 1200px) {}\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "PostCssMediaRange", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "PostCSS", - "index": 13, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "JavaScript", - "version": "243.24609", - "rules": [ - { - "id": "ShiftOutOfRangeJS", - "shortDescription": { - "text": "Shift operation by possibly wrong constant" - }, - "fullDescription": { - "text": "Reports a shift operation where the second operand is a constant outside the reasonable range, for example, an integer shift operation outside the range '0..31', shifting by negative or overly large values.", - "markdown": "Reports a shift operation where the second operand is a constant outside the reasonable range, for example, an integer shift operation outside the range `0..31`, shifting by negative or overly large values." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ShiftOutOfRangeJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Performance" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Bitwise operation issues", - "index": 15, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSClosureCompilerSyntax", - "shortDescription": { - "text": "Incorrect usage of JSDoc tags" - }, - "fullDescription": { - "text": "Reports warnings implied by Google Closure Compiler annotations including correct use of '@abstract', '@interface', and '@implements' tags.", - "markdown": "Reports warnings implied by *Google Closure Compiler* annotations including correct use of `@abstract`, `@interface`, and `@implements` tags." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSClosureCompilerSyntax", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "BadExpressionStatementJS", - "shortDescription": { - "text": "Expression statement which is not assignment or call" - }, - "fullDescription": { - "text": "Reports an expression statement that is neither an assignment nor a call. Such statements usually indicate an error.", - "markdown": "Reports an expression statement that is neither an assignment nor a call. Such statements usually indicate an error." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "BadExpressionStatementJS", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Validity issues", - "index": 22, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ContinueStatementJS", - "shortDescription": { - "text": "'continue' statement" - }, - "fullDescription": { - "text": "Reports a 'continue' statement.", - "markdown": "Reports a `continue` statement." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ContinueStatementJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Potentially undesirable code constructs", - "index": 31, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSXSyntaxUsed", - "shortDescription": { - "text": "JSX syntax used" - }, - "fullDescription": { - "text": "Reports a usage of a JSX tag in JavaScript code.", - "markdown": "Reports a usage of a JSX tag in JavaScript code." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "JSXSyntaxUsed", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSJoinVariableDeclarationAndAssignment", - "shortDescription": { - "text": "Variable declaration can be merged with the first assignment to the variable" - }, - "fullDescription": { - "text": "Reports a variable that is declared without an initializer and is used much further in the code or in a single nested scope. Suggests moving the variable closer to its usages and joining it with the initializer expression.", - "markdown": "Reports a variable that is declared without an initializer and is used much further in the code or in a single nested scope. Suggests moving the variable closer to its usages and joining it with the initializer expression." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "JSJoinVariableDeclarationAndAssignment", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ES6ConvertModuleExportToExport", - "shortDescription": { - "text": "'module.exports' is used instead of 'export'" - }, - "fullDescription": { - "text": "Reports a 'module.export' statement. Suggests replacing it with an 'export' or 'export default' statement. Please note that the quick-fix for converting 'module.export' into 'export' is not available for 'module.export' inside functions or statements because 'export' statements can only be at the top level of a module.", - "markdown": "Reports a `module.export` statement. Suggests replacing it with an `export` or `export default` statement. \n\nPlease note that the quick-fix for converting `module.export` into `export` is not available for `module.export` inside functions or statements because `export` statements can only be at the top level of a module." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ES6ConvertModuleExportToExport", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/ES2015 migration aids", - "index": 49, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "DocumentWriteJS", - "shortDescription": { - "text": "Call to 'document.write()'" - }, - "fullDescription": { - "text": "Reports a method call to 'document.write()' or 'document.writeln()'. Most usages of such calls are performed better with explicit DOM calls, such as 'getElementByID()' and 'createElement()'. Additionally, the 'write()' and 'writeln()' calls will not work with XML DOMs, including DOMs for XHTML if viewed as XML. This can result in difficulty to point out bugs.", - "markdown": "Reports a method call to `document.write()` or `document.writeln()`. Most usages of such calls are performed better with explicit DOM calls, such as `getElementByID()` and `createElement()`. Additionally, the `write()` and `writeln()` calls will not work with XML DOMs, including DOMs for XHTML if viewed as XML. This can result in difficulty to point out bugs." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "DocumentWriteJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Performance" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/DOM issues", - "index": 51, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IncompatibleMaskJS", - "shortDescription": { - "text": "Incompatible bitwise mask operation" - }, - "fullDescription": { - "text": "Reports a bitwise mask expression which for sure evaluates to 'true' or 'false'. Expressions are of the form '(var & constant1) == constant2' or '(var | constant1) == constant2', where 'constant1' and 'constant2' are incompatible bitmask constants. Example: '// Incompatible mask: as the last byte in mask is zero,\n// something like 0x1200 would be possible, but not 0x1234\nif ((mask & 0xFF00) == 0x1234) {...}'", - "markdown": "Reports a bitwise mask expression which for sure evaluates to `true` or `false`. Expressions are of the form `(var & constant1) == constant2` or `(var | constant1) == constant2`, where `constant1` and `constant2` are incompatible bitmask constants.\n\nExample:\n\n\n // Incompatible mask: as the last byte in mask is zero,\n // something like 0x1200 would be possible, but not 0x1234\n if ((mask & 0xFF00) == 0x1234) {...}\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "IncompatibleBitwiseMaskOperation", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Bitwise operation issues", - "index": 15, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSDuplicatedDeclaration", - "shortDescription": { - "text": "Duplicate declaration" - }, - "fullDescription": { - "text": "Reports multiple declarations in a scope.", - "markdown": "Reports multiple declarations in a scope." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSDuplicatedDeclaration", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "TypeScriptValidateGenericTypes", - "shortDescription": { - "text": "Incorrect generic type argument" - }, - "fullDescription": { - "text": "Reports an invalid type argument in a function, interface, or class declaration.", - "markdown": "Reports an invalid type argument in a function, interface, or class declaration." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "TypeScriptValidateGenericTypes", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/TypeScript", - "index": 55, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSFileReferences", - "shortDescription": { - "text": "Unresolved file reference" - }, - "fullDescription": { - "text": "Reports an unresolved file reference in a JavaScript file, including CommonJS and AMD modules references.", - "markdown": "Reports an unresolved file reference in a JavaScript file, including CommonJS and AMD modules references." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSFileReferences", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "FunctionWithInconsistentReturnsJS", - "shortDescription": { - "text": "Function with inconsistent returns" - }, - "fullDescription": { - "text": "Reports a function that returns a value in some cases while in other cases no value is returned. This usually indicates an error. Example: 'function foo() {\n if (true)\n return 3;\n return;\n}'", - "markdown": "Reports a function that returns a value in some cases while in other cases no value is returned. This usually indicates an error.\n\nExample:\n\n\n function foo() {\n if (true)\n return 3;\n return;\n }\n\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "FunctionWithInconsistentReturnsJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Validity issues", - "index": 22, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ES6ClassMemberInitializationOrder", - "shortDescription": { - "text": "Use of possibly unassigned property in a static initializer" - }, - "fullDescription": { - "text": "Reports a class member initializer which references another non-hoisted class member while the latter may be not initialized yet. Initialization of class members happens consequently for fields, so a field cannot reference another field that is declared later.", - "markdown": "Reports a class member initializer which references another non-hoisted class member while the latter may be not initialized yet. \n\nInitialization of class members happens consequently for fields, so a field cannot reference another field that is declared later." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ES6ClassMemberInitializationOrder", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NestedFunctionJS", - "shortDescription": { - "text": "Nested function" - }, - "fullDescription": { - "text": "Reports a function nested inside another function. Although JavaScript allows functions to be nested, such constructs may be confusing. Use the checkbox below to ignore anonymous nested functions.", - "markdown": "Reports a function nested inside another function. Although JavaScript allows functions to be nested, such constructs may be confusing.\n\n\nUse the checkbox below to ignore anonymous nested functions." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "NestedFunctionJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Potentially confusing code constructs", - "index": 61, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "TypeScriptUMDGlobal", - "shortDescription": { - "text": "Referenced UMD global variable" - }, - "fullDescription": { - "text": "Reports a usage of a Universal Module Definition (UMD) global variable if the current file is a module (ECMAScript or CommonJS). Referencing UMD variables without explicit imports can lead to a runtime error if the library isn't included implicitly.", - "markdown": "Reports a usage of a Universal Module Definition (UMD) global variable if the current file is a module (ECMAScript or CommonJS). Referencing UMD variables without explicit imports can lead to a runtime error if the library isn't included implicitly." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "TypeScriptUMDGlobal", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/TypeScript", - "index": 55, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnnecessaryReturnJS", - "shortDescription": { - "text": "Unnecessary 'return' statement" - }, - "fullDescription": { - "text": "Reports an unnecessary 'return' statement, that is, a 'return' statement that returns no value and occurs just before the function would have \"fallen through\" the bottom. These statements may be safely removed.", - "markdown": "Reports an unnecessary `return` statement, that is, a `return` statement that returns no value and occurs just before the function would have \"fallen through\" the bottom. These statements may be safely removed." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "UnnecessaryReturnStatementJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Control flow issues", - "index": 65, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "StandardJS", - "shortDescription": { - "text": "Standard code style" - }, - "fullDescription": { - "text": "Reports a discrepancy detected by the JavaScript Standard Style linter. The highlighting severity in the editor is based on the severity level the linter reports.", - "markdown": "Reports a discrepancy detected by the [JavaScript Standard Style](https://standardjs.com/) linter. \n\nThe highlighting severity in the editor is based on the severity level the linter reports." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "StandardJS", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Code quality tools", - "index": 69, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSCommentMatchesSignature", - "shortDescription": { - "text": "Mismatched JSDoc and function signature" - }, - "fullDescription": { - "text": "Reports mismatch between the names and the number of parameters within a JSDoc comment and the actual parameters of a function. Suggests updating parameters in JSDoc comment. Example: '/**\n * @param height Height in pixels\n */\nfunction sq(height, width) {} // width is not documented' After the quick-fix is applied: '/**\n * @param height Height in pixels\n * @param width\n */\nfunction sq(height, width) {}'", - "markdown": "Reports mismatch between the names and the number of parameters within a JSDoc comment and the actual parameters of a function. Suggests updating parameters in JSDoc comment.\n\n**Example:**\n\n\n /**\n * @param height Height in pixels\n */\n function sq(height, width) {} // width is not documented\n\nAfter the quick-fix is applied:\n\n\n /**\n * @param height Height in pixels\n * @param width\n */\n function sq(height, width) {}\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSCommentMatchesSignature", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "FunctionWithMultipleReturnPointsJS", - "shortDescription": { - "text": "Function with multiple return points" - }, - "fullDescription": { - "text": "Reports a function with multiple return points. Such functions are hard to understand and maintain.", - "markdown": "Reports a function with multiple return points. Such functions are hard to understand and maintain." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "FunctionWithMultipleReturnPointsJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Function metrics", - "index": 76, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSRemoveUnnecessaryParentheses", - "shortDescription": { - "text": "Unnecessary parentheses" - }, - "fullDescription": { - "text": "Reports redundant parentheses. In expressions: 'var x = ((1) + 2) + 3' In arrow function argument lists: 'var incrementer = (x) => x + 1' In TypeScript and Flow type declarations: 'type Card = (Suit & Rank) | (Suit & Number)'", - "markdown": "Reports redundant parentheses.\n\nIn expressions:\n\n var x = ((1) + 2) + 3\n\nIn arrow function argument lists:\n\n var incrementer = (x) => x + 1\n\nIn TypeScript and Flow type declarations:\n\n type Card = (Suit & Rank) | (Suit & Number)\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "JSRemoveUnnecessaryParentheses", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Code style issues", - "index": 79, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CommaExpressionJS", - "shortDescription": { - "text": "Comma expression" - }, - "fullDescription": { - "text": "Reports a comma expression. Such expressions are often a sign of overly clever code, and may lead to subtle bugs. Comma expressions in the initializer or in the update section of 'for' loops are ignored.", - "markdown": "Reports a comma expression. Such expressions are often a sign of overly clever code, and may lead to subtle bugs. Comma expressions in the initializer or in the update section of `for` loops are ignored." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CommaExpressionJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Potentially undesirable code constructs", - "index": 31, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ES6BindWithArrowFunction", - "shortDescription": { - "text": "Suspicious usage of 'bind' with arrow function" - }, - "fullDescription": { - "text": "Reports 'bind' used together with an arrow function. Because arrow functions use lexical 'this', a 'bind' call will have no effect on them. See here for details.", - "markdown": "Reports `bind` used together with an arrow function. \nBecause arrow functions use lexical `this`, a `bind` call will have no effect on them. \nSee [here](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/Arrow_functions#Lexical_this) for details." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ES6BindWithArrowFunction", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Probable bugs", - "index": 86, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSBitwiseOperatorUsage", - "shortDescription": { - "text": "Bitwise operator usage" - }, - "fullDescription": { - "text": "Reports a suspicious usage of a bitwise AND (\"'&'\") or OR (\"'|'\") operator. Usually it is a typo and the result of applying boolean operations AND (\"'&&'\") and OR (\"'||'\") is expected.", - "markdown": "Reports a suspicious usage of a bitwise AND (\"`&`\") or OR (\"`|`\") operator. Usually it is a typo and the result of applying boolean operations AND (\"`&&`\") and OR (\"`||`\") is expected." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSBitwiseOperatorUsage", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Bitwise operation issues", - "index": 15, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IfStatementWithIdenticalBranchesJS", - "shortDescription": { - "text": "'if' statement with identical branches" - }, - "fullDescription": { - "text": "Reports an 'if' statement with identical 'then' and 'else' branches. Such statements are almost certainly an error.", - "markdown": "Reports an `if` statement with identical `then` and `else` branches. Such statements are almost certainly an error." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "IfStatementWithIdenticalBranchesJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Control flow issues", - "index": 65, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSConsecutiveCommasInArrayLiteral", - "shortDescription": { - "text": "Consecutive commas in array literal" - }, - "fullDescription": { - "text": "Reports a consecutive comma in an array literal. The skipped element accepts the 'undefined' value, but it could be done unintentionally, for example, when commas are at the end of one line and at the beginning of the next one.", - "markdown": "Reports a consecutive comma in an array literal. The skipped element accepts the `undefined` value, but it could be done unintentionally, for example, when commas are at the end of one line and at the beginning of the next one." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSConsecutiveCommasInArrayLiteral", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Probable bugs", - "index": 86, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSValidateTypes", - "shortDescription": { - "text": "Type mismatch" - }, - "fullDescription": { - "text": "Reports incorrect type of: a parameter in a function call a return value an assigned expression TypeScript code is ignored.", - "markdown": "Reports incorrect type of:\n\n* a parameter in a function call\n* a return value\n* an assigned expression\n\nTypeScript code is ignored." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "JSValidateTypes", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSPotentiallyInvalidUsageOfClassThis", - "shortDescription": { - "text": "Potentially invalid reference to 'this' of a class from closure" - }, - "fullDescription": { - "text": "Reports an attempt to reference a member of an ECMAScript class via the 'this.' qualifier in a nested function that is not a lambda. 'this' in a nested function that is not a lambda is the function's own 'this' and doesn't relate to the outer class.", - "markdown": "Reports an attempt to reference a member of an ECMAScript class via the `this.` qualifier in a nested function that is not a lambda. \n`this` in a nested function that is not a lambda is the function's own `this` and doesn't relate to the outer class." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSPotentiallyInvalidUsageOfClassThis", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Probable bugs", - "index": 86, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnnecessaryContinueJS", - "shortDescription": { - "text": "Unnecessary 'continue' statement" - }, - "fullDescription": { - "text": "Reports an unnecessary 'continue' statement at the end of a loop. Suggests removing such statements.", - "markdown": "Reports an unnecessary `continue` statement at the end of a loop. Suggests removing such statements." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "UnnecessaryContinueJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Control flow issues", - "index": 65, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "BreakStatementWithLabelJS", - "shortDescription": { - "text": "'break' statement with label" - }, - "fullDescription": { - "text": "Reports a labeled 'break' statement.", - "markdown": "Reports a labeled `break` statement." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "BreakStatementWithLabelJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Potentially undesirable code constructs", - "index": 31, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSDeclarationsAtScopeStart", - "shortDescription": { - "text": "'var' declared not at the beginning of a function" - }, - "fullDescription": { - "text": "Checks that declarations of local variables declared with var are at the top of a function scope. By default, variable declarations are always moved (\"hoisted\") invisibly to the top of their containing scope when the code is executed. Therefore, declaring them at the top of the scope helps represent this behavior in the code.", - "markdown": "Checks that declarations of local variables declared with **var** are at the top of a function scope. \n\nBy default, variable declarations are always moved (\"hoisted\") invisibly to the top of their containing scope when the code is executed. Therefore, declaring them at the top of the scope helps represent this behavior in the code." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "JSDeclarationsAtScopeStart", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Code style issues", - "index": 79, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ES6ConvertIndexedForToForOf", - "shortDescription": { - "text": "Indexed 'for' is used instead of 'for..of'" - }, - "fullDescription": { - "text": "Reports an indexed 'for' loop used on an array. Suggests replacing it with a 'for..of' loop. 'for..of' loops are introduced in ECMAScript 6 and iterate over 'iterable' objects.", - "markdown": "Reports an indexed [for](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for) loop used on an array. Suggests replacing it with a [for..of](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...of) loop. \n`for..of` loops are introduced in ECMAScript 6 and iterate over `iterable` objects." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ES6ConvertIndexedForToForOf", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/ES2015 migration aids", - "index": 49, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ES6ConvertVarToLetConst", - "shortDescription": { - "text": "'var' is used instead of 'let' or 'const'" - }, - "fullDescription": { - "text": "Reports a 'var' declaration that is used instead of 'let' or 'const'. Both 'let' and 'const' are block-scoped and behave more strictly. Suggests replacing all 'var' declarations with 'let' or 'const' declarations, depending on the semantics of a particular value. The declarations may be moved to the top of the function or placed before the first usage of the variable to avoid Reference errors. Select the 'Conservatively convert var with Fix all action' option to prevent any changes in these complex cases when using the 'Fix all' action.", - "markdown": "Reports a `var` declaration that is used instead of `let` or `const`. \nBoth `let` and `const` are block-scoped and behave more strictly. \n\nSuggests replacing all `var` declarations with `let` or `const` declarations, depending on the semantics of a particular value. The declarations may be moved to the top of the function or placed before the first usage of the variable to avoid Reference errors. \nSelect the 'Conservatively convert var with Fix all action' option to prevent any changes in these complex cases when using the 'Fix all' action." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ES6ConvertVarToLetConst", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/ES2015 migration aids", - "index": 49, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "DynamicallyGeneratedCodeJS", - "shortDescription": { - "text": "Execution of dynamically generated code" - }, - "fullDescription": { - "text": "Reports a call of the 'eval()', 'setTimeout()', or 'setInterval()' function or an allocation of a 'Function' object. These functions are used to execute arbitrary strings of JavaScript text, which often dynamically generated. This can be very confusing, and may be a security risk. Ignores the cases when a callback function is provided to these methods statically, without code generation.", - "markdown": "Reports a call of the `eval()`, `setTimeout()`, or `setInterval()` function or an allocation of a `Function` object. These functions are used to execute arbitrary strings of JavaScript text, which often dynamically generated. This can be very confusing, and may be a security risk. \n\nIgnores the cases when a callback function is provided to these methods statically, without code generation." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "DynamicallyGeneratedCodeJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Security" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Potentially confusing code constructs", - "index": 61, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnusedCatchParameterJS", - "shortDescription": { - "text": "Unused 'catch' parameter" - }, - "fullDescription": { - "text": "Reports a 'catch' parameter that is not used in the corresponding block. The 'catch' parameters named 'ignore' or 'ignored' are ignored. Use the checkbox below to disable this inspection for 'catch' blocks with comments.", - "markdown": "Reports a `catch` parameter that is not used in the corresponding block. The `catch` parameters named `ignore` or `ignored` are ignored.\n\n\nUse the checkbox below to disable this inspection for `catch`\nblocks with comments." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "UnusedCatchParameterJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Try statement issues", - "index": 97, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AnonymousFunctionJS", - "shortDescription": { - "text": "Anonymous function" - }, - "fullDescription": { - "text": "Reports an anonymous function. An explicit name of a function expression may be helpful for debugging. Ignores function expressions without names if they have a 'name' property specified in the ECMAScript 6 standard. For example, 'var bar = function() {};' is not reported.", - "markdown": "Reports an anonymous function. An explicit name of a function expression may be helpful for debugging. Ignores function expressions without names if they have a `name` property specified in the ECMAScript 6 standard. For example, `var bar = function() {};` is not reported." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "AnonymousFunctionJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Potentially undesirable code constructs", - "index": 31, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EmptyCatchBlockJS", - "shortDescription": { - "text": "Empty 'catch' block" - }, - "fullDescription": { - "text": "Reports an empty 'catch' block. This indicates that errors are simply ignored instead of handling them. Any comment in a 'catch' block mutes the inspection.", - "markdown": "Reports an empty `catch` block. This indicates that errors are simply ignored instead of handling them. \n\nAny comment in a `catch` block mutes the inspection." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "EmptyCatchBlockJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Try statement issues", - "index": 97, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ThrowFromFinallyBlockJS", - "shortDescription": { - "text": "'throw' inside 'finally' block" - }, - "fullDescription": { - "text": "Reports s 'throw' statement inside a 'finally' block. Such 'throw' statements may mask exceptions thrown, and complicate debugging.", - "markdown": "Reports s `throw` statement inside a `finally` block. Such `throw` statements may mask exceptions thrown, and complicate debugging." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ThrowInsideFinallyBlockJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Try statement issues", - "index": 97, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSPotentiallyInvalidUsageOfThis", - "shortDescription": { - "text": "Potentially invalid reference to 'this' from closure" - }, - "fullDescription": { - "text": "Reports a 'this' in closure that is used for referencing properties of outer context. Example: 'function Outer() {\n this.outerProp = 1;\n function inner() {\n // bad, because 'outerProp' of Outer\n // won't be updated here\n // on calling 'new Outer()' as may be expected\n this.outerProp = 2;\n }\n inner();\n}'", - "markdown": "Reports a `this` in closure that is used for referencing properties of outer context.\n\nExample:\n\n\n function Outer() {\n this.outerProp = 1;\n function inner() {\n // bad, because 'outerProp' of Outer\n // won't be updated here\n // on calling 'new Outer()' as may be expected\n this.outerProp = 2;\n }\n inner();\n }\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSPotentiallyInvalidUsageOfThis", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Probable bugs", - "index": 86, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSUnresolvedLibraryURL", - "shortDescription": { - "text": "Missed locally stored library for HTTP link" - }, - "fullDescription": { - "text": "Reports a URL of an external JavaScript library that is not associated with any locally stored file. Suggests downloading the library. Such association enables the IDE to provide proper code completion and navigation.", - "markdown": "Reports a URL of an external JavaScript library that is not associated with any locally stored file. Suggests downloading the library. Such association enables the IDE to provide proper code completion and navigation." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSUnresolvedLibraryURL", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "TypeScriptFieldCanBeMadeReadonly", - "shortDescription": { - "text": "Field can be readonly" - }, - "fullDescription": { - "text": "Reports a private field that can be made readonly (for example, if the field is assigned only in the constructor).", - "markdown": "Reports a private field that can be made readonly (for example, if the field is assigned only in the constructor)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "TypeScriptFieldCanBeMadeReadonly", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/TypeScript", - "index": 55, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NegatedIfStatementJS", - "shortDescription": { - "text": "Negated 'if' statement" - }, - "fullDescription": { - "text": "Reports if statements which have an else branch and a negated condition. Flipping the order of the if and else branches will usually increase the clarity of such statements.", - "markdown": "Reports **if** statements which have an **else** branch and a negated condition. Flipping the order of the **if** and **else** branches will usually increase the clarity of such statements." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "NegatedIfStatementJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Potentially confusing code constructs", - "index": 61, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConditionalExpressionWithIdenticalBranchesJS", - "shortDescription": { - "text": "Conditional expression with identical branches" - }, - "fullDescription": { - "text": "Reports a ternary conditional expression with identical 'then' and 'else' branches.", - "markdown": "Reports a ternary conditional expression with identical `then` and `else` branches." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ConditionalExpressionWithIdenticalBranchesJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Control flow issues", - "index": 65, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSIncompatibleTypesComparison", - "shortDescription": { - "text": "Comparison of expressions having incompatible types" - }, - "fullDescription": { - "text": "Reports a comparison with operands of incompatible types or an operand with a type without possible common values.", - "markdown": "Reports a comparison with operands of incompatible types or an operand with a type without possible common values." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "JSIncompatibleTypesComparison", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Probable bugs", - "index": 86, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ES6TopLevelAwaitExpression", - "shortDescription": { - "text": "Top-level 'await' expression" - }, - "fullDescription": { - "text": "Reports a usage of a top-level 'await' expression. While the new 'top-level async' proposal is on its way, using 'await' outside async functions is not allowed.", - "markdown": "Reports a usage of a top-level `await` expression. While the new 'top-level async' proposal is on its way, using `await` outside async functions is not allowed." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "ES6TopLevelAwaitExpression", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Async code and promises", - "index": 103, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ParameterNamingConventionJS", - "shortDescription": { - "text": "Function parameter naming convention" - }, - "fullDescription": { - "text": "Reports a function parameter whose name is too short, too long, or doesn't follow the specified regular expression pattern. Use the fields provided below to specify minimum length, maximum length and regular expression expected for local variables names. Use the standard 'java.util.regex' format regular expressions.", - "markdown": "Reports a function parameter whose name is too short, too long, or doesn't follow the specified regular expression pattern.\n\n\nUse the fields provided below to specify minimum length, maximum length and regular expression\nexpected for local variables names. Use the standard `java.util.regex` format regular expressions." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ParameterNamingConventionJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Naming conventions", - "index": 104, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ParametersPerFunctionJS", - "shortDescription": { - "text": "Function with too many parameters" - }, - "fullDescription": { - "text": "Reports a function with too many parameters. Such functions often indicate problems with design. Use the field below to specify the maximum acceptable number of parameters for a function.", - "markdown": "Reports a function with too many parameters. Such functions often indicate problems with design.\n\n\nUse the field below to specify the maximum acceptable number of parameters for a function." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "OverlyComplexFunctionJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Function metrics", - "index": 76, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSSuspiciousNameCombination", - "shortDescription": { - "text": "Suspicious variable/parameter name combination" - }, - "fullDescription": { - "text": "Reports an assignment or a function call where the name of the target variable or the function parameter does not match the name of the value assigned to it. Example: 'var x = 0;\n var y = x;' or 'var x = 0, y = 0;\n var rc = new Rectangle(y, x, 20, 20);' Here the inspection guesses that 'x' and 'y' are mixed up. Specify the names that should not be used together. An error is reported if a parameter name or an assignment target name contains words from one group while the name of the assigned or passed variable contains words from another group.", - "markdown": "Reports an assignment or a function call where the name of the target variable or the function parameter does not match the name of the value assigned to it.\n\nExample:\n\n\n var x = 0;\n var y = x;\n\nor\n\n\n var x = 0, y = 0;\n var rc = new Rectangle(y, x, 20, 20);\n\nHere the inspection guesses that `x` and `y` are mixed up.\n\nSpecify the names that should not be used together. An error is reported\nif a parameter name or an assignment target name contains words from one group while the name of the assigned or passed\nvariable contains words from another group." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSSuspiciousNameCombination", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Probable bugs", - "index": 86, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ChainedFunctionCallJS", - "shortDescription": { - "text": "Chained function call" - }, - "fullDescription": { - "text": "Reports a function call whose target is another function call, for example, 'foo().bar()'", - "markdown": "Reports a function call whose target is another function call, for example, `foo().bar()`" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ChainedFunctionCallJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Performance" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Code style issues", - "index": 79, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConstantOnLHSOfComparisonJS", - "shortDescription": { - "text": "Constant on left side of comparison" - }, - "fullDescription": { - "text": "Reports a comparison operation with a constant value in the left-hand side. According to coding conventions, constants should be in the right-hand side of comparisons.", - "markdown": "Reports a comparison operation with a constant value in the left-hand side. According to coding conventions, constants should be in the right-hand side of comparisons." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ConstantOnLefSideOfComparisonJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Code style issues", - "index": 79, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSCheckFunctionSignatures", - "shortDescription": { - "text": "Signature mismatch" - }, - "fullDescription": { - "text": "Reports a JavaScript call expression where the arguments do not match the signature of the referenced function, including the types of arguments and their number. Also, reports if the overloading function doesn't match the overloaded one in terms of parameters and return types. TypeScript code is ignored.", - "markdown": "Reports a JavaScript call expression where the arguments do not match the signature of the referenced function, including the types of arguments and their number. Also, reports if the overloading function doesn't match the overloaded one in terms of parameters and return types.\n\nTypeScript code is ignored." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "JSCheckFunctionSignatures", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "TypeScriptUnresolvedReference", - "shortDescription": { - "text": "Unresolved TypeScript reference" - }, - "fullDescription": { - "text": "Reports an unresolved reference in TypeScript code.", - "markdown": "Reports an unresolved reference in TypeScript code." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "TypeScriptUnresolvedReference", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/TypeScript", - "index": 55, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ES6RedundantAwait", - "shortDescription": { - "text": "Redundant 'await' expression" - }, - "fullDescription": { - "text": "Reports a redundant usage of 'await', such as 'await await', or awaiting a non-promise result. When the 'Report for promises' option is selected, suggests removing 'await' before promises when applicable (in 'return' statements, and with 'Promise.resolve/reject'). Removing 'await' in such contexts causes two problems. Surrounding your code with 'try-catch' and forgetting to add 'await' will change code semantics while you may fail to notice that. Having an explicit 'await' may prevent the V8 runtime from providing async stack traces.", - "markdown": "Reports a redundant usage of `await`, such as `await await`, or awaiting a non-promise result.\n\n\nWhen the 'Report for promises' option is selected, suggests removing `await` before promises when applicable\n(in `return` statements, and with `Promise.resolve/reject`).\n\nRemoving `await` in such contexts causes two problems.\n\n* Surrounding your code with `try-catch` and forgetting to add `await` will change code semantics while you may fail to notice that.\n* Having an explicit `await` may prevent the V8 runtime from providing [async stack traces](http://bit.ly/v8-zero-cost-async-stack-traces)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ES6RedundantAwait", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Performance" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Async code and promises", - "index": 103, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AssignmentToFunctionParameterJS", - "shortDescription": { - "text": "Assignment to function parameter" - }, - "fullDescription": { - "text": "Reports an assignment to a function parameter, including increment and decrement operations. Although occasionally intended, this construct can be extremely confusing, and is often a result of an error.", - "markdown": "Reports an assignment to a function parameter, including increment and decrement operations. Although occasionally intended, this construct can be extremely confusing, and is often a result of an error." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "AssignmentToFunctionParameterJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Assignment issues", - "index": 108, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "FallThroughInSwitchStatementJS", - "shortDescription": { - "text": "Fallthrough in 'switch' statement" - }, - "fullDescription": { - "text": "Reports a 'switch' statement where control can proceed from a branch to the next one. Such \"fall-through\" often indicates an error, for example, a missing 'break' or 'return'.", - "markdown": "Reports a `switch` statement where control can proceed from a branch to the next one. Such \"fall-through\" often indicates an error, for example, a missing `break` or `return`." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "FallThroughInSwitchStatementJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Switch statement issues", - "index": 109, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CallerJS", - "shortDescription": { - "text": "Use of 'caller' property" - }, - "fullDescription": { - "text": "Reports a usage of the 'caller' property in a JavaScript function. Using this property to access the stack frame of the calling method can be extremely confusing and result in subtle bugs.", - "markdown": "Reports a usage of the `caller` property in a JavaScript function. Using this property to access the stack frame of the calling method can be extremely confusing and result in subtle bugs." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CallerJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Potentially confusing code constructs", - "index": 61, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSSwitchVariableDeclarationIssue", - "shortDescription": { - "text": "Variable is declared and being used in different 'case' clauses" - }, - "fullDescription": { - "text": "Reports a variable that is declared in one 'case' clause of a 'switch' statement but is used in another 'case' clause of the same statement. For block-scoped variables, this results in throwing a 'ReferenceError'. For 'var' variables, it indicates a potential error. Disable the inspection for 'var' variables if this pattern is used intentionally.", - "markdown": "Reports a variable that is declared in one `case` clause of a `switch` statement but is used in another `case` clause of the same statement. For block-scoped variables, this results in throwing a `ReferenceError`. For `var` variables, it indicates a potential error.\n\nDisable the inspection for `var` variables if this pattern is used intentionally." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSSwitchVariableDeclarationIssue", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Switch statement issues", - "index": 109, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReuseOfLocalVariableJS", - "shortDescription": { - "text": "Reuse of local variable" - }, - "fullDescription": { - "text": "Reports reusing a local variable and overwriting its value with a new value that is not related to the original variable usage. Reusing a local variable in this way may be confusing because the intended semantics of the local variable may vary with each usage. It may also cause bugs, if code changes result in values that were expected to be overwritten while they are actually live. It is good practices to keep variable lifetimes as short as possible, and not reuse local variables for the sake of brevity.", - "markdown": "Reports reusing a local variable and overwriting its value with a new value that is not related to the original variable usage. Reusing a local variable in this way may be confusing because the intended semantics of the local variable may vary with each usage. It may also cause bugs, if code changes result in values that were expected to be overwritten while they are actually live. It is good practices to keep variable lifetimes as short as possible, and not reuse local variables for the sake of brevity." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ReuseOfLocalVariableJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Data flow", - "index": 112, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ES6ConvertLetToConst", - "shortDescription": { - "text": "'let' is used instead of 'const'" - }, - "fullDescription": { - "text": "Reports a 'let' declaration that can be made 'const'.", - "markdown": "Reports a `let` declaration that can be made `const`. " - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ES6ConvertLetToConst", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/ES2015 migration aids", - "index": 49, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSReferencingMutableVariableFromClosure", - "shortDescription": { - "text": "Referencing mutable variable from closure" - }, - "fullDescription": { - "text": "Reports access to outer mutable variables from functions. Example: 'for (var i = 1; i <= 3; i++) {\n setTimeout(function() {\n console.log(i); // bad\n }, 0);\n }'", - "markdown": "Reports access to outer mutable variables from functions.\n\nExample:\n\n\n for (var i = 1; i <= 3; i++) {\n setTimeout(function() {\n console.log(i); // bad\n }, 0);\n }\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSReferencingMutableVariableFromClosure", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ES6ConvertRequireIntoImport", - "shortDescription": { - "text": "'require()' is used instead of 'import'" - }, - "fullDescription": { - "text": "Reports a 'require()' statement. Suggests converting it to a 'require()' call with an 'import' statement. Enable 'Convert require() inside inner scopes with Fix all action' to convert all 'require()' calls inside the nested functions and statements when using the 'Fix all' action. Please note that converting 'require()' statements inside inner scopes to 'import' statements may cause changes in the semantics of the code. Import statements are static module dependencies and are hoisted, which means that they are moved to the top of the current module. 'require()' calls load modules dynamically. They can be executed conditionally, and their scope is defined by the expression in which they are used. Clear the 'Convert require() inside inner scopes with Fix all action' checkbox to prevent any changes in these complex cases when using the 'Fix all' action.", - "markdown": "Reports a `require()` statement. Suggests converting it to a `require()` call with an `import` statement. \n\nEnable 'Convert require() inside inner scopes with Fix all action' to convert all `require()` calls inside the nested functions and statements when using the 'Fix all' action. \n\nPlease note that converting `require()` statements inside inner scopes to `import` statements may cause changes in the semantics of the code. Import statements are static module dependencies and are hoisted, which means that they are moved to the top of the current module. `require()` calls load modules dynamically. They can be executed conditionally, and their scope is defined by the expression in which they are used. \nClear the 'Convert require() inside inner scopes with Fix all action' checkbox to prevent any changes in these complex cases when using the 'Fix all' action." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ES6ConvertRequireIntoImport", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/ES2015 migration aids", - "index": 49, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSUnusedGlobalSymbols", - "shortDescription": { - "text": "Unused global symbol" - }, - "fullDescription": { - "text": "Reports an unused globally accessible public function, variable, class, or property.", - "markdown": "Reports an unused globally accessible public function, variable, class, or property." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSUnusedGlobalSymbols", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Performance" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Unused symbols", - "index": 117, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NestedConditionalExpressionJS", - "shortDescription": { - "text": "Nested conditional expression" - }, - "fullDescription": { - "text": "Reports a ternary conditional expression within another ternary condition. Such nested conditionals may be extremely confusing, and best replaced by more explicit conditional logic.", - "markdown": "Reports a ternary conditional expression within another ternary condition. Such nested conditionals may be extremely confusing, and best replaced by more explicit conditional logic." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "NestedConditionalExpressionJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Potentially confusing code constructs", - "index": 61, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ES6PossiblyAsyncFunction", - "shortDescription": { - "text": "'await' in non-async function" - }, - "fullDescription": { - "text": "Reports a usage of 'await' in a function that was possibly intended to be async but is actually missing the 'async' modifier. Although 'await' can be used as an identifier, it is likely that it was intended to be used as an operator, so the containing function should be made 'async'.", - "markdown": "Reports a usage of `await` in a function that was possibly intended to be async but is actually missing the `async` modifier. Although `await` can be used as an identifier, it is likely that it was intended to be used as an operator, so the containing function should be made `async`." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ES6PossiblyAsyncFunction", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Async code and promises", - "index": 103, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "FlowJSFlagCommentPlacement", - "shortDescription": { - "text": "Misplaced @flow flag" - }, - "fullDescription": { - "text": "Reports a '@flow' flag comment that is not located at the top of a file.", - "markdown": "Reports a `@flow` flag comment that is not located at the top of a file." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "FlowJSFlagCommentPlacement", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Flow type checker", - "index": 118, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSMissingSwitchDefault", - "shortDescription": { - "text": "'switch' statement has no 'default' branch" - }, - "fullDescription": { - "text": "Reports a 'switch' statement without a 'default' clause when some possible values are not enumerated.", - "markdown": "Reports a `switch` statement without a `default` clause when some possible values are not enumerated." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "JSMissingSwitchDefault", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Switch statement issues", - "index": 109, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSXNamespaceValidation", - "shortDescription": { - "text": "Missing JSX namespace" - }, - "fullDescription": { - "text": "Reports a usage of a JSX construction without importing namespace. Having the namespace in the file scope ensures proper code compilation.", - "markdown": "Reports a usage of a JSX construction without importing namespace. Having the namespace in the file scope ensures proper code compilation." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "JSXNamespaceValidation", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Imports and dependencies", - "index": 120, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReservedWordUsedAsNameJS", - "shortDescription": { - "text": "Reserved word used as name" - }, - "fullDescription": { - "text": "Reports a JavaScript reserved word used as a name. The JavaScript specification reserves a number of words which are currently not used as keywords. Using those words as identifiers may result in broken code if later versions of JavaScript start using them as keywords.", - "markdown": "Reports a JavaScript reserved word used as a name. The JavaScript specification reserves a number of words which are currently not used as keywords. Using those words as identifiers may result in broken code if later versions of JavaScript start using them as keywords." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ReservedWordAsName", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Validity issues", - "index": 22, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IncrementDecrementResultUsedJS", - "shortDescription": { - "text": "Result of increment or decrement used" - }, - "fullDescription": { - "text": "Reports an increment ('++') or decrement ('--') expression where the result of the assignment is used in a containing expression. Such assignments can result in confusion due to the order of operations, as evaluation of the assignment may affect the outer expression in unexpected ways. Example: 'var a = b++'", - "markdown": "Reports an increment (`++`) or decrement (`--`) expression where the result of the assignment is used in a containing expression. Such assignments can result in confusion due to the order of operations, as evaluation of the assignment may affect the outer expression in unexpected ways. Example: `var a = b++`" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "IncrementDecrementResultUsedJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Potentially confusing code constructs", - "index": 61, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SuspiciousTypeOfGuard", - "shortDescription": { - "text": "Unsound type guard check" - }, - "fullDescription": { - "text": "Reports a 'typeof' or 'instanceof' unsound type guard check. The 'typeof x' type guard can be unsound in one of the following two cases: 'typeof x' never corresponds to the specified value (for example, 'typeof x === 'number'' when 'x' is of the type 'string | boolean') 'typeof x' always corresponds to the specified value (for example, 'typeof x === 'string'' when 'x' is of the type 'string') The 'x instanceof A' type guard can be unsound in one of the following two cases: The type of 'x' is not related to 'A' The type of 'x' is 'A' or a subtype of 'A'", - "markdown": "Reports a `typeof` or `instanceof` unsound type guard check. The `typeof x` type guard can be unsound in one of the following two cases:\n\n* `typeof x` never corresponds to the specified value (for example, `typeof x === 'number'` when `x` is of the type 'string \\| boolean')\n* `typeof x` always corresponds to the specified value (for example, `typeof x === 'string'` when `x` is of the type 'string')\n\nThe `x instanceof A` type guard can be unsound in one of the following two cases:\n\n* The type of `x` is not related to `A`\n* The type of `x` is `A` or a subtype of `A`" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SuspiciousTypeOfGuard", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Control flow issues", - "index": 65, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "LoopStatementThatDoesntLoopJS", - "shortDescription": { - "text": "Loop statement that doesn't loop" - }, - "fullDescription": { - "text": "Reports a 'for', 'while', or 'do' statement whose bodies are guaranteed to execute at most once. Normally, this indicates an error.", - "markdown": "Reports a `for`, `while`, or `do` statement whose bodies are guaranteed to execute at most once. Normally, this indicates an error." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "LoopStatementThatDoesntLoopJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Control flow issues", - "index": 65, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSNonASCIINames", - "shortDescription": { - "text": "Identifiers with non-ASCII symbols" - }, - "fullDescription": { - "text": "Reports a non-ASCII symbol in a name. If the 'Allow only ASCII names' option is selected, reports all names that contain non-ASCII symbols. Otherwise reports all names that contain both ASCII and non-ASCII symbols.", - "markdown": "Reports a non-ASCII symbol in a name. \n\nIf the 'Allow only ASCII names' option is selected, reports all names that contain non-ASCII symbols. \nOtherwise reports all names that contain both ASCII and non-ASCII symbols." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSNonASCIINames", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Naming conventions", - "index": 104, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ES6MissingAwait", - "shortDescription": { - "text": "Missing await for an async function call" - }, - "fullDescription": { - "text": "Reports an 'async' function call without an expected 'await' prefix inside an 'async' function. Such call returns a 'Promise' and control flow is continued immediately. Example: 'async function bar() { /* ... */ }\nasync function foo() {\n bar(); // bad\n}' After the quick-fix is applied, the 'await' prefix is added: 'async function bar() { /* ... */ }\nasync function foo() {\n await bar(); // good\n}' When the 'Report for promises in return statements' checkbox is selected, also suggests adding 'await' in return statements. While this is generally not necessary, it gives two main benefits. You won't forget to add 'await' when surrounding your code with 'try-catch'. An explicit 'await' helps V8 runtime to provide async stack traces.", - "markdown": "Reports an `async` function call without an expected `await` prefix inside an `async` function. Such call returns a `Promise` and control flow is continued immediately.\n\nExample:\n\n\n async function bar() { /* ... */ }\n async function foo() {\n bar(); // bad\n }\n\n\nAfter the quick-fix is applied, the `await` prefix is added:\n\n\n async function bar() { /* ... */ }\n async function foo() {\n await bar(); // good\n }\n\nWhen the 'Report for promises in return statements' checkbox is selected, also suggests adding `await` in return statements. \nWhile this is generally not necessary, it gives two main benefits. \n\n* You won't forget to add `await` when surrounding your code with `try-catch`.\n* An explicit `await` helps V8 runtime to provide [async stack traces](https://bit.ly/v8-zero-cost-async-stack-traces)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ES6MissingAwait", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Async code and promises", - "index": 103, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "TailRecursionJS", - "shortDescription": { - "text": "Tail recursion" - }, - "fullDescription": { - "text": "Reports a tail recursion, that is, when a function calls itself as its last action before returning. A tail recursion can always be replaced by looping, which will be considerably faster. Some JavaScript engines perform this optimization, while others do not. Thus, tail recursive solutions may have considerably different performance characteristics in different environments.", - "markdown": "Reports a tail recursion, that is, when a function calls itself as its last action before returning. A tail recursion can always be replaced by looping, which will be considerably faster. Some JavaScript engines perform this optimization, while others do not. Thus, tail recursive solutions may have considerably different performance characteristics in different environments." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "TailRecursionJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Performance" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Control flow issues", - "index": 65, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConfusingPlusesOrMinusesJS", - "shortDescription": { - "text": "Confusing sequence of '+' or '-'" - }, - "fullDescription": { - "text": "Reports a suspicious combination of '+' or '-' characters in JavaScript code (for example, 'a+++b'. Such sequences are confusing, and their semantics may change through changes in the whitespace.", - "markdown": "Reports a suspicious combination of `+` or `-` characters in JavaScript code (for example, `a+++b`. Such sequences are confusing, and their semantics may change through changes in the whitespace." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ConfusingPlusesOrMinusesJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Security" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Potentially confusing code constructs", - "index": 61, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "TypeScriptConfig", - "shortDescription": { - "text": "Inconsistent tsconfig.json properties" - }, - "fullDescription": { - "text": "Reports inconsistency of a 'paths', 'checkJs', or 'extends' property in a tsconfig.json file. The 'checkJs' property requires 'allowJs'. The 'extends' property should be a valid file reference.", - "markdown": "Reports inconsistency of a `paths`, `checkJs`, or `extends` property in a tsconfig.json file. \nThe `checkJs` property requires `allowJs`. \nThe `extends` property should be a valid file reference." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "TypeScriptConfig", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/TypeScript", - "index": 55, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "OverlyComplexBooleanExpressionJS", - "shortDescription": { - "text": "Overly complex boolean expression" - }, - "fullDescription": { - "text": "Reports a boolean expression with too many terms. Such expressions may be confusing and bug-prone. Use the field below to specify the maximum number of terms allowed in an arithmetic expression.", - "markdown": "Reports a boolean expression with too many terms. Such expressions may be confusing and bug-prone.\n\n\nUse the field below to specify the maximum number of terms allowed in an arithmetic expression." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "OverlyComplexBooleanExpressionJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Potentially confusing code constructs", - "index": 61, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "OverlyComplexArithmeticExpressionJS", - "shortDescription": { - "text": "Overly complex arithmetic expression" - }, - "fullDescription": { - "text": "Reports an arithmetic expression with too many terms. Such expressions may be confusing and bug-prone. Use the field below to specify the maximum number of terms allowed in an arithmetic expression.", - "markdown": "Reports an arithmetic expression with too many terms. Such expressions may be confusing and bug-prone.\n\n\nUse the field below to specify the maximum number of terms allowed in an arithmetic expression." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "OverlyComplexArithmeticExpressionJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Potentially confusing code constructs", - "index": 61, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "DuplicateConditionJS", - "shortDescription": { - "text": "Duplicate condition in 'if' statement" - }, - "fullDescription": { - "text": "Reports duplicate conditions in different branches of an 'if' statement. Duplicate conditions usually represent programmer oversight. Example: 'if (a) {\n ...\n } else if (a) {\n ...\n }'", - "markdown": "Reports duplicate conditions in different branches of an `if` statement. Duplicate conditions usually represent programmer oversight.\n\nExample:\n\n\n if (a) {\n ...\n } else if (a) {\n ...\n }\n\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "DuplicateConditionJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Control flow issues", - "index": 65, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnnecessaryLabelJS", - "shortDescription": { - "text": "Unnecessary label" - }, - "fullDescription": { - "text": "Reports an unused label.", - "markdown": "Reports an unused label." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "UnnecessaryLabelJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Control flow issues", - "index": 65, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "InnerHTMLJS", - "shortDescription": { - "text": "Use of 'innerHTML' property" - }, - "fullDescription": { - "text": "Reports a JavaScript access to DOM nodes as text using the 'innerHTML' property. Most usages of 'innerHTML' are performed better with explicit DOM calls, such as 'getElementByID()' and 'createElement()'. Additionally, 'innerHTML' will not work with XML DOMs, including DOMs for XHTML if viewed as XML. This can lead to difficulties in diagnosing bugs.", - "markdown": "Reports a JavaScript access to DOM nodes as text using the `innerHTML` property. Most usages of `innerHTML` are performed better with explicit DOM calls, such as `getElementByID()` and `createElement()`. Additionally, `innerHTML` will not work with XML DOMs, including DOMs for XHTML if viewed as XML. This can lead to difficulties in diagnosing bugs." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "InnerHTMLJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Performance" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/DOM issues", - "index": 51, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ES6UnusedImports", - "shortDescription": { - "text": "Unused import" - }, - "fullDescription": { - "text": "Reports a redundant 'import' statement. This is usually the case if the imported symbols are not used in the source file. To avoid side-effects, consider using bare import 'import 'packageName'' instead of the regular one.", - "markdown": "Reports a redundant `import` statement. This is usually the case if the imported symbols are not used in the source file. To avoid side-effects, consider using bare import `import 'packageName'` instead of the regular one." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ES6UnusedImports", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Imports and dependencies", - "index": 120, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSAssignmentUsedAsCondition", - "shortDescription": { - "text": "Assignment used as condition" - }, - "fullDescription": { - "text": "Reports an assignment that is used as the condition of an 'if', 'while', 'for', or 'do' statement. Although occasionally intended, this usage is confusing, and often indicates a typo (for example, '=' instead of '==').", - "markdown": "Reports an assignment that is used as the condition of an `if`, `while`, `for`, or `do` statement. Although occasionally intended, this usage is confusing, and often indicates a typo (for example, `=` instead of `==`)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSAssignmentUsedAsCondition", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Assignment issues", - "index": 108, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ForLoopReplaceableByWhileJS", - "shortDescription": { - "text": "'for' loop may be replaced by 'while' loop" - }, - "fullDescription": { - "text": "Reports a 'for' loop that contains neither initialization nor an update component. Suggests replacing the loop with a simpler 'while' statement. Example: 'for(; exitCondition(); ) {\n process();\n }' After the quick-fix is applied the result looks like: 'while(exitCondition()) {\n process();\n }' Use the checkbox below if you wish this inspection to ignore for loops with trivial or non-existent conditions.", - "markdown": "Reports a `for` loop that contains neither initialization nor an update component. Suggests replacing the loop with a simpler `while` statement.\n\nExample:\n\n\n for(; exitCondition(); ) {\n process();\n }\n\nAfter the quick-fix is applied the result looks like:\n\n\n while(exitCondition()) {\n process();\n }\n\nUse the checkbox below if you wish this inspection to ignore **for** loops with trivial or non-existent conditions." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ForLoopReplaceableByWhile", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Control flow issues", - "index": 65, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConstantConditionalExpressionJS", - "shortDescription": { - "text": "Constant conditional expression" - }, - "fullDescription": { - "text": "Reports a conditional expression in the format 'true? result1: result2' or 'false? result1: result2. Suggests simplifying the expression.'", - "markdown": "Reports a conditional expression in the format `true? result1: result2` or `false? result1: result2``.\nSuggests simplifying the expression.\n`" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ConstantConditionalExpressionJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Control flow issues", - "index": 65, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSValidateJSDoc", - "shortDescription": { - "text": "Syntax errors and unresolved references in JSDoc" - }, - "fullDescription": { - "text": "Reports a syntax discrepancy in a documentation comment.", - "markdown": "Reports a syntax discrepancy in a documentation comment." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSValidateJSDoc", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NonBlockStatementBodyJS", - "shortDescription": { - "text": "Statement body without braces" - }, - "fullDescription": { - "text": "Reports a 'if', 'while', 'for', or 'with' statements whose body is not a block statement. Using code block in statement bodies is usually safer for downstream maintenance.", - "markdown": "Reports a `if`, `while`, `for`, or `with` statements whose body is not a block statement. Using code block in statement bodies is usually safer for downstream maintenance." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "NonBlockStatementBodyJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Code style issues", - "index": 79, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "FlowJSConfig", - "shortDescription": { - "text": "Missing .flowconfig" - }, - "fullDescription": { - "text": "Reports a JavaScript file with a '@flow' flag that doesn't have an associated '.flowconfig' file in the project.", - "markdown": "Reports a JavaScript file with a `@flow` flag that doesn't have an associated `.flowconfig` file in the project." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "FlowJSConfig", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Flow type checker", - "index": 118, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "TypeScriptValidateTypes", - "shortDescription": { - "text": "Type mismatch" - }, - "fullDescription": { - "text": "Reports a parameter, return value, or assigned expression of incorrect type.", - "markdown": "Reports a parameter, return value, or assigned expression of incorrect type." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "TypeScriptValidateTypes", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/TypeScript", - "index": 55, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSObjectNullOrUndefined", - "shortDescription": { - "text": "Object is 'null' or 'undefined'" - }, - "fullDescription": { - "text": "Reports an error caused by invoking a method, accessing a property, or calling a function on an object that is 'undefined' or 'null'.", - "markdown": "Reports an error caused by invoking a method, accessing a property, or calling a function on an object that is `undefined` or `null`." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSObjectNullOrUndefined", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Control flow issues", - "index": 65, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PointlessArithmeticExpressionJS", - "shortDescription": { - "text": "Pointless arithmetic expression" - }, - "fullDescription": { - "text": "Reports an arithmetic expression that include adding or subtracting zero, multiplying by zero or one, division by one, and shift by zero. Such expressions may result from not fully completed automated refactoring.", - "markdown": "Reports an arithmetic expression that include adding or subtracting zero, multiplying by zero or one, division by one, and shift by zero. Such expressions may result from not fully completed automated refactoring." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "PointlessArithmeticExpressionJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Performance" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Potentially confusing code constructs", - "index": 61, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "TypeScriptSmartCast", - "shortDescription": { - "text": "Narrowed type" - }, - "fullDescription": { - "text": "Reports a usage of a variable where the variable type is narrowed by a type guard. Note that severity level doesn't affect this inspection.", - "markdown": "Reports a usage of a variable where the variable type is narrowed by a type guard. Note that severity level doesn't affect this inspection." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "TypeScriptSmartCast", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/TypeScript", - "index": 55, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSAccessibilityCheck", - "shortDescription": { - "text": "Inaccessible @private and @protected members referenced" - }, - "fullDescription": { - "text": "Reports a reference to a JavaScript member that is marked with a '@private' or '@protected' tag but does not comply with visibility rules that these tags imply.", - "markdown": "Reports a reference to a JavaScript member that is marked with a `@private` or `@protected` tag but does not comply with visibility rules that these tags imply." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSAccessibilityCheck", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "FunctionWithMultipleLoopsJS", - "shortDescription": { - "text": "Function with multiple loops" - }, - "fullDescription": { - "text": "Reports a function with multiple loop statements.", - "markdown": "Reports a function with multiple loop statements." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "FunctionWithMultipleLoopsJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Performance" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Function metrics", - "index": 76, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NpmUsedModulesInstalled", - "shortDescription": { - "text": "Missing module dependency" - }, - "fullDescription": { - "text": "Reports a module from a 'require()' call or an 'import' statement that is not installed or is not listed in package.json dependencies. Suggests installing the module and/or including it into package.json. For 'require()' calls, works only in the files from the scope of Node.js Core JavaScript library.", - "markdown": "Reports a module from a `require()` call or an `import` statement that is not installed or is not listed in package.json dependencies.\n\nSuggests installing the module and/or including it into package.json.\n\nFor `require()` calls, works only in the files from the scope of *Node.js Core* JavaScript library." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "NpmUsedModulesInstalled", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Imports and dependencies", - "index": 120, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "FunctionNamingConventionJS", - "shortDescription": { - "text": "Function naming convention" - }, - "fullDescription": { - "text": "Reports a function whose name is too short, too long, or does not follow the specified regular expression pattern. Use the fields provided below to specify minimum length, maximum length, and a regular expression for function names. Use the standard 'java.util.regex' format for regular expressions.", - "markdown": "Reports a function whose name is too short, too long, or does not follow the specified regular expression pattern.\n\n\nUse the fields provided below to specify minimum length, maximum length, and a regular expression\nfor function names. Use the standard `java.util.regex` format for regular expressions." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "FunctionNamingConventionJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Naming conventions", - "index": 104, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ObjectAllocationIgnoredJS", - "shortDescription": { - "text": "Result of object allocation ignored" - }, - "fullDescription": { - "text": "Reports object allocation where the result of the allocated object is ignored, for example, 'new Error();' as a statement, without any assignment. Such allocation expressions may indicate an odd object initialization strategy.", - "markdown": "Reports object allocation where the result of the allocated object is ignored, for example, `new Error();` as a statement, without any assignment. Such allocation expressions may indicate an odd object initialization strategy." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ObjectAllocationIgnored", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Probable bugs", - "index": 86, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSHint", - "shortDescription": { - "text": "JSHint" - }, - "fullDescription": { - "text": "Reports a problem detected by the JSHint linter.", - "markdown": "Reports a problem detected by the [JSHint](https://jshint.com/) linter." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "JSHint", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Code quality tools", - "index": 69, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ExceptionCaughtLocallyJS", - "shortDescription": { - "text": "Exception used for local control-flow" - }, - "fullDescription": { - "text": "Reports a 'throw' statement whose exceptions are always caught by the containing 'try' statement. Using 'throw' statements as a 'goto' to change the local flow of control is confusing.", - "markdown": "Reports a `throw` statement whose exceptions are always caught by the containing `try` statement. Using `throw` statements as a `goto` to change the local flow of control is confusing." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ExceptionCaughtLocallyJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Try statement issues", - "index": 97, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CyclomaticComplexityJS", - "shortDescription": { - "text": "Overly complex function" - }, - "fullDescription": { - "text": "Reports a function with too many branching points in a function (too high cyclomatic complexity). Such functions may be confusing and hard to test. Use the field provided below to specify the maximum acceptable cyclomatic complexity for a function.", - "markdown": "Reports a function with too many branching points in a function (too high cyclomatic complexity). Such functions may be confusing and hard to test.\n\n\nUse the field provided below to specify the maximum acceptable cyclomatic complexity for a function." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "OverlyComplexFunctionJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Performance" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Function metrics", - "index": 76, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "TypeScriptJSXUnresolvedComponent", - "shortDescription": { - "text": "Unresolved JSX component" - }, - "fullDescription": { - "text": "Reports an unresolved reference to a JSX component. Suggests adding an import statement if the referenced component is defined in the project or its dependencies or creating a new component with the specified name. The template for a new component can be modified in Editor | File and Code Templates.", - "markdown": "Reports an unresolved reference to a JSX component. Suggests adding an import statement if the referenced component is defined in the project or its dependencies or creating a new component with the specified name.\n\nThe template for a new component can be modified in Editor \\| File and Code Templates." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "TypeScriptJSXUnresolvedComponent", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/TypeScript", - "index": 55, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSUnfilteredForInLoop", - "shortDescription": { - "text": "Unfiltered for..in loop" - }, - "fullDescription": { - "text": "Reports unfiltered 'for-in' loops. The use of this construct results in processing not only own properties of an object but properties from its prototype as well. It may be unexpected in some specific cases, for example, in utility methods that copy or modify all properties or when 'Object''s prototype may be incorrectly modified. For example, the following code will print 42 and myMethod: 'Object.prototype.myMethod = function myMethod() {};\nlet a = { foo: 42 };\nfor (let i in a) {\n console.log(a[i]);\n}' Suggests replacing the whole loop with a 'Object.keys()' method or adding a 'hasOwnProperty()' check. After applying the quick-fix the code looks as follows: 'for (let i in a) {\n if (a.hasOwnProperty(i)) {\n console.log(a[i]);\n }\n}'", - "markdown": "Reports unfiltered `for-in` loops. \n\nThe use of this construct results in processing not only own properties of an object but properties from its prototype as well. It may be unexpected in some specific cases, for example, in utility methods that copy or modify all properties or when `Object`'s prototype may be incorrectly modified. For example, the following code will print **42** and **myMethod** : \n\n\n Object.prototype.myMethod = function myMethod() {};\n let a = { foo: 42 };\n for (let i in a) {\n console.log(a[i]);\n }\n\nSuggests replacing the whole loop with a `Object.keys()` method or adding a `hasOwnProperty()` check. After applying the quick-fix the code looks as follows:\n\n\n for (let i in a) {\n if (a.hasOwnProperty(i)) {\n console.log(a[i]);\n }\n }\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSUnfilteredForInLoop", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSFunctionExpressionToArrowFunction", - "shortDescription": { - "text": "Function expression is used instead of arrow function" - }, - "fullDescription": { - "text": "Reports a function expression. Suggests converting it to an arrow function. Example: 'arr.map(function(el) {return el + 1})' After applying the quick-fix the code looks as follows: 'arr.map(el => el + 1)'", - "markdown": "Reports a [function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/function) expression. Suggests converting it to an [arrow function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions).\n\nExample:\n\n arr.map(function(el) {return el + 1})\n\nAfter applying the quick-fix the code looks as follows:\n\n arr.map(el => el + 1)\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "JSFunctionExpressionToArrowFunction", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/ES2015 migration aids", - "index": 49, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UpdateDependencyToLatestVersion", - "shortDescription": { - "text": "Update package.json dependencies to latest versions" - }, - "fullDescription": { - "text": "Suggests to upgrade your package.json dependencies to the latest versions, ignoring specified versions.", - "markdown": "Suggests to upgrade your package.json dependencies to the latest versions, ignoring specified versions." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UpdateDependencyToLatestVersion", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Imports and dependencies", - "index": 120, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AssignmentResultUsedJS", - "shortDescription": { - "text": "Result of assignment used" - }, - "fullDescription": { - "text": "Reports an assignment expression where the result of the assignment is used in the containing expression. Such assignments often indicate coding errors, for example, '=' instead of '=='. Moreover, they can result in confusion due to the order of operations, as evaluation of the assignment may affect the outer expression in unexpected ways. Expressions in parentheses are ignored.", - "markdown": "Reports an assignment expression where the result of the assignment is used in the containing expression. Such assignments often indicate coding errors, for example, `=` instead of `==`. Moreover, they can result in confusion due to the order of operations, as evaluation of the assignment may affect the outer expression in unexpected ways.\n\nExpressions in parentheses are ignored." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "AssignmentResultUsedJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Assignment issues", - "index": 108, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConstantOnRHSOfComparisonJS", - "shortDescription": { - "text": "Constant on right side of comparison" - }, - "fullDescription": { - "text": "Reports a comparison operation with a constant in the right-hand side. According to coding conventions, constants should only be in the left-hand side of comparisons.", - "markdown": "Reports a comparison operation with a constant in the right-hand side. According to coding conventions, constants should only be in the left-hand side of comparisons." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ConstantOnRightSideOfComparisonJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Code style issues", - "index": 79, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSUnnecessarySemicolon", - "shortDescription": { - "text": "Unnecessary semicolon" - }, - "fullDescription": { - "text": "Reports an unneeded semicolon.", - "markdown": "Reports an unneeded semicolon." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSUnnecessarySemicolon", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSSuspiciousEqPlus", - "shortDescription": { - "text": "Suspicious '=+' assignment" - }, - "fullDescription": { - "text": "Reports an assignment in the form 'a =+ b'. Suggests replacing with 'a += b'.", - "markdown": "Reports an assignment in the form `a =+ b`. Suggests replacing with `a += b`." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSSuspiciousEqPlus", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Probable bugs", - "index": 86, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSUnusedAssignment", - "shortDescription": { - "text": "Unused assignment" - }, - "fullDescription": { - "text": "Reports a variable whose value is never used after assignment. Suggests removing the unused variable to shorten the code and to avoid redundant allocations. The following cases are reported: A variable is never read after assignment. The value of a variable is always overwritten with another assignment before the variable is read next time. The initializer of a variable is redundant (for one of the above-mentioned reasons).", - "markdown": "Reports a variable whose value is never used after assignment. \nSuggests removing the unused variable to shorten the code and to avoid redundant allocations.\n\nThe following cases are reported:\n\n* A variable is never read after assignment.\n* The value of a variable is always overwritten with another assignment before the variable is read next time.\n* The initializer of a variable is redundant (for one of the above-mentioned reasons)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSUnusedAssignment", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Performance" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Unused symbols", - "index": 117, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConfusingFloatingPointLiteralJS", - "shortDescription": { - "text": "Confusing floating point literal" - }, - "fullDescription": { - "text": "Reports any floating point number that does not have a decimal point, or any numbers before the decimal point, or and numbers after the decimal point. Such literals may be confusing, and violate several coding standards.", - "markdown": "Reports any floating point number that does not have a decimal point, or any numbers before the decimal point, or and numbers after the decimal point. Such literals may be confusing, and violate several coding standards." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ConfusingFloatingPointLiteralJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Potentially confusing code constructs", - "index": 61, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ContinueOrBreakFromFinallyBlockJS", - "shortDescription": { - "text": "'continue' or 'break' inside 'finally' block" - }, - "fullDescription": { - "text": "Reports a 'break' or 'continue' statement inside a 'finally' block. Such statements are very confusing, may hide exceptions, and complicate debugging.", - "markdown": "Reports a `break` or `continue` statement inside a `finally` block. Such statements are very confusing, may hide exceptions, and complicate debugging." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ContinueOrBreakFromFinallyBlockJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Try statement issues", - "index": 97, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSMethodCanBeStatic", - "shortDescription": { - "text": "Method can be made 'static'" - }, - "fullDescription": { - "text": "Reports a class method that can be safely made 'static'. A method can be 'static' if it does not reference any of its class' non-static methods and non-static fields and is not overridden in a subclass. Use the first checkbox below to inspect only 'private' methods.", - "markdown": "Reports a class method that can be safely made `static`. A method can be `static` if it does not reference any of its class' non-static methods and non-static fields and is not overridden in a subclass.\n\n\nUse the first checkbox below to inspect only `private` methods." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "JSMethodCanBeStatic", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Performance" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSUndeclaredVariable", - "shortDescription": { - "text": "Implicitly declared global JavaScript variable" - }, - "fullDescription": { - "text": "Reports an implicit declaration of a global variable. Example: 'var aaa = 1; // good\n bbb = 2; // bad, if bbb is not declared with 'var' somewhere'", - "markdown": "Reports an implicit declaration of a global variable.\n\nExample:\n\n\n var aaa = 1; // good\n bbb = 2; // bad, if bbb is not declared with 'var' somewhere\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "JSUndeclaredVariable", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SillyAssignmentJS", - "shortDescription": { - "text": "Variable is assigned to itself" - }, - "fullDescription": { - "text": "Reports an assignment in the form 'x = x'.", - "markdown": "Reports an assignment in the form `x = x`." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SillyAssignmentJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Assignment issues", - "index": 108, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "TypeScriptCheckImport", - "shortDescription": { - "text": "Unresolved imported name" - }, - "fullDescription": { - "text": "Reports an unresolved name or binding in an 'import' declaration in TypeScript code.", - "markdown": "Reports an unresolved name or binding in an `import` declaration in TypeScript code." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "TypeScriptCheckImport", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/TypeScript", - "index": 55, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "InfiniteRecursionJS", - "shortDescription": { - "text": "Infinite recursion" - }, - "fullDescription": { - "text": "Reports a function which must either recurse infinitely or throw an exception. Such functions may not return normally.", - "markdown": "Reports a function which must either recurse infinitely or throw an exception. Such functions may not return normally." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "InfiniteRecursionJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Probable bugs", - "index": 86, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSMismatchedCollectionQueryUpdate", - "shortDescription": { - "text": "Mismatched query and update of collection" - }, - "fullDescription": { - "text": "Reports a collection of fields or variables whose contents are either queried and not updated or updated and not queried. Such mismatched queries and updates are pointless and may indicate either dead code or a typographical error. Query methods are automatically detected, based on whether they return something, or a callback is passed to them. Use the table below to specify which methods are update methods.", - "markdown": "Reports a collection of fields or variables whose contents are either queried and not updated or updated and not queried. Such mismatched queries and updates are pointless and may indicate either dead code or a typographical error.\n\n\nQuery methods are automatically detected, based on whether they return something, or a callback is passed to them.\nUse the table below to specify which methods are update methods." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSMismatchedCollectionQueryUpdate", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ES6PreferShortImport", - "shortDescription": { - "text": "Import can be shortened" - }, - "fullDescription": { - "text": "Reports an ES6 import whose 'from' part can be shortened. Suggests importing the parent directory.", - "markdown": "Reports an ES6 import whose `from` part can be shortened. Suggests importing the parent directory." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ES6PreferShortImport", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PointlessBitwiseExpressionJS", - "shortDescription": { - "text": "Bitwise expression can be simplified" - }, - "fullDescription": { - "text": "Reports an expression that includes 'and' with zero, 'or' by zero, or shifting by zero. Such expressions may result from not fully completed automated refactorings.", - "markdown": "Reports an expression that includes `and` with zero, `or` by zero, or shifting by zero. Such expressions may result from not fully completed automated refactorings." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "PointlessBitwiseExpressionJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Bitwise operation issues", - "index": 15, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSStringConcatenationToES6Template", - "shortDescription": { - "text": "String concatenation is used instead of template literal" - }, - "fullDescription": { - "text": "Reports a string concatenation. Suggests replacing it with a template literal Example '\"result: \" + a + \".\"' After applying the quick-fix the code looks as follows: '`result: ${a}.`'", - "markdown": "Reports a string concatenation. Suggests replacing it with a [template literal](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals)\n\nExample\n\n \"result: \" + a + \".\" \n\nAfter applying the quick-fix the code looks as follows:\n\n `result: ${a}.` \n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "JSStringConcatenationToES6Template", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/ES2015 migration aids", - "index": 49, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceAssignmentWithOperatorAssignmentJS", - "shortDescription": { - "text": "Assignment could be replaced with operator assignment" - }, - "fullDescription": { - "text": "Reports an assignment operation that can be replaced by an operator assignment to make your code shorter and probably clearer. Example: 'x = x + 3;'\n 'x = x / 3;'\n After the quick fix is applied the result looks like: 'x += 3;'\n 'x /= 3;'", - "markdown": "Reports an assignment operation that can be replaced by an operator assignment to make your code shorter and probably clearer.\n\n\nExample:\n\n x = x + 3;\n x = x / 3;\n\nAfter the quick fix is applied the result looks like:\n\n x += 3;\n x /= 3;\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "AssignmentReplaceableWithOperatorAssignmentJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Assignment issues", - "index": 108, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ES6DestructuringVariablesMerge", - "shortDescription": { - "text": "Destructuring properties with the same key" - }, - "fullDescription": { - "text": "Reports multiple destructuring properties with identical keys. Suggests merging the properties.", - "markdown": "Reports multiple destructuring properties with identical keys. Suggests merging the properties." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ES6DestructuringVariablesMerge", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "TypeScriptRedundantGenericType", - "shortDescription": { - "text": "Redundant type arguments" - }, - "fullDescription": { - "text": "Reports a type argument that is equal to the default one and can be removed. Example: 'type Foo<T=number> = T;\nlet z: Foo<number>;'", - "markdown": "Reports a type argument that is equal to the default one and can be removed.\n\n\nExample:\n\n\n type Foo<T=number> = T;\n let z: Foo<number>;\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "TypeScriptRedundantGenericType", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/TypeScript", - "index": 55, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSLastCommaInObjectLiteral", - "shortDescription": { - "text": "Unneeded last comma in object literal" - }, - "fullDescription": { - "text": "Reports usages of a trailing comma in object literals. The warning is reported only when the JavaScript language version is set to ECMAScript 5.1. Trailing commas in object literals are allowed by the specification, however, some browsers might throw an error when a trailing comma is used. You can configure formatting options for trailing commas in Code Style | JavaScript or TypeScript | Punctuation.", - "markdown": "Reports usages of a trailing comma in object literals.\n\nThe warning is reported only when the JavaScript language version is set to ECMAScript 5.1.\n\nTrailing commas in object literals are allowed by the specification, however, some browsers might throw an error when a trailing comma is used.\n\nYou can configure formatting options for trailing commas in **Code Style** \\| **JavaScript** or **TypeScript** \\| **Punctuation**." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSLastCommaInObjectLiteral", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NestedAssignmentJS", - "shortDescription": { - "text": "Nested assignment" - }, - "fullDescription": { - "text": "Reports an assignment expression nested inside another expression, for example, 'a = b = 1'. Such expressions may be confusing and violate the general design principle that a given construct should do precisely one thing.", - "markdown": "Reports an assignment expression nested inside another expression, for example, `a = b = 1`. Such expressions may be confusing and violate the general design principle that a given construct should do precisely one thing." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "NestedAssignmentJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Assignment issues", - "index": 108, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "DefaultNotLastCaseInSwitchJS", - "shortDescription": { - "text": "'default' not last case in 'switch'" - }, - "fullDescription": { - "text": "Reports a 'switch' statement where the 'default' case comes before another case instead of being the very last case, which may cause confusion.", - "markdown": "Reports a `switch` statement where the `default` case comes before another case instead of being the very last case, which may cause confusion." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "DefaultNotLastCaseInSwitchJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Switch statement issues", - "index": 109, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EmptyFinallyBlockJS", - "shortDescription": { - "text": "Empty 'finally' block" - }, - "fullDescription": { - "text": "Reports an empty 'finally' block, which usually indicates an error.", - "markdown": "Reports an empty `finally` block, which usually indicates an error." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "EmptyFinallyBlockJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Try statement issues", - "index": 97, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ForLoopThatDoesntUseLoopVariableJS", - "shortDescription": { - "text": "'for' loop where update or condition does not use loop variable" - }, - "fullDescription": { - "text": "Reports a 'for' loop where the condition or update does not use the 'for' loop variable.", - "markdown": "Reports a `for` loop where the condition or update does not use the `for` loop variable." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ForLoopThatDoesntUseLoopVariableJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Probable bugs", - "index": 86, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "TypeScriptAbstractClassConstructorCanBeMadeProtected", - "shortDescription": { - "text": "Abstract class constructor can be made protected" - }, - "fullDescription": { - "text": "Reports a public constructor of an abstract class and suggests making it protected (because it is useless to have it public).", - "markdown": "Reports a public constructor of an abstract class and suggests making it protected (because it is useless to have it public)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "TypeScriptAbstractClassConstructorCanBeMadeProtected", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/TypeScript", - "index": 55, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ThreeNegationsPerFunctionJS", - "shortDescription": { - "text": "Function with more than three negations" - }, - "fullDescription": { - "text": "Reports a function with three or more negation operations ('!' or '!='). Such functions may be unnecessarily confusing.", - "markdown": "Reports a function with three or more negation operations (`!` or `!=`). Such functions may be unnecessarily confusing." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "FunctionWithMoreThanThreeNegationsJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Function metrics", - "index": 76, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "TrivialIfJS", - "shortDescription": { - "text": "Redundant 'if' statement" - }, - "fullDescription": { - "text": "Reports an 'if' statement that can be simplified to a single assignment or a 'return' statement. Example: 'if(foo())\n {\n return true;\n }\n else\n {\n return false;\n }' After applying the quick-fix the code looks as follows: 'return foo();'", - "markdown": "Reports an `if` statement that can be simplified to a single assignment or a `return` statement.\n\nExample:\n\n\n if(foo())\n {\n return true;\n }\n else\n {\n return false;\n }\n\nAfter applying the quick-fix the code looks as follows:\n\n return foo();\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantIfStatementJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Control flow issues", - "index": 65, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnterminatedStatementJS", - "shortDescription": { - "text": "Unterminated statement" - }, - "fullDescription": { - "text": "Reports a statement without a semicolon or a newline at the end. Select the 'Terminate statements with semicolons' option in Editor | Code Style | JavaScript or TypeScript - Punctuation to report any statement that doesn't end with a semicolon, even if a newline is used. According to some coding styles, semicolons are preferred to line-breaks for consistency with the other languages.", - "markdown": "Reports a statement without a semicolon or a newline at the end.\n\nSelect the 'Terminate statements with semicolons' option in *Editor \\| Code Style \\| JavaScript or TypeScript - Punctuation* to report any statement that doesn't end with a semicolon, even if a newline is used.\nAccording to some coding styles, semicolons are preferred to line-breaks for consistency with the other languages." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "UnterminatedStatementJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Code style issues", - "index": 79, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSUnreachableSwitchBranches", - "shortDescription": { - "text": "Unreachable 'case' branch of a 'switch' statement" - }, - "fullDescription": { - "text": "Reports an unreachable 'case' branch of a 'switch' statement. Example: '/**\n * @param {('foo' | 'bar')} p\n */\nfunction foo(p) {\n switch (p) {\n case 'foo': break;\n case 'bar': break;\n case 'baz': break; // unreachable\n }\n}'", - "markdown": "Reports an unreachable `case` branch of a `switch` statement.\n\nExample:\n\n\n /**\n * @param {('foo' | 'bar')} p\n */\n function foo(p) {\n switch (p) {\n case 'foo': break;\n case 'bar': break;\n case 'baz': break; // unreachable\n }\n }\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSUnreachableSwitchBranches", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Switch statement issues", - "index": 109, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "TrivialConditionalJS", - "shortDescription": { - "text": "Redundant conditional expression" - }, - "fullDescription": { - "text": "Reports a conditional expression of the form 'condition ? true : false\ncondition ? false : true' These expressions may be safely converted to 'condition\n!condition'", - "markdown": "Reports a conditional expression of the form\n\n\n condition ? true : false\n condition ? false : true\n\n\nThese expressions may be safely converted to\n\n\n condition\n !condition\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantConditionalExpressionJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Control flow issues", - "index": 65, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSTestFailedLine", - "shortDescription": { - "text": "Highlight failure line in test code" - }, - "fullDescription": { - "text": "Reports a failed method call or an assertion in a test.", - "markdown": "Reports a failed method call or an assertion in a test." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSTestFailedLine", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Unit testing", - "index": 140, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IfStatementWithTooManyBranchesJS", - "shortDescription": { - "text": "'if' statement with too many branches" - }, - "fullDescription": { - "text": "Reports an 'if' statement with too many branches. Such statements may be confusing, and often indicate inadequate levels of design abstraction. Use the field below to specify the maximum number of branches expected.", - "markdown": "Reports an `if` statement with too many branches. Such statements may be confusing, and often indicate inadequate levels of design abstraction.\n\n\nUse the field below to specify the maximum number of branches expected." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "IfStatementWithTooManyBranchesJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Control flow issues", - "index": 65, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "BreakStatementJS", - "shortDescription": { - "text": "'break' statement" - }, - "fullDescription": { - "text": "Reports a 'break' statements. Ignores 'break' statements that end case blocks.", - "markdown": "Reports a `break` statements. Ignores `break` statements that end case blocks." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "BreakStatementJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Potentially undesirable code constructs", - "index": 31, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "DebuggerStatementJS", - "shortDescription": { - "text": "'debugger' statement" - }, - "fullDescription": { - "text": "Reports a 'debugger' statement used for interaction with the Javascript debuggers. Such statements should not appear in production code.", - "markdown": "Reports a `debugger` statement used for interaction with the Javascript debuggers. Such statements should not appear in production code." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "DebuggerStatementJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Security" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Potentially undesirable code constructs", - "index": 31, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AssignmentToForLoopParameterJS", - "shortDescription": { - "text": "Assignment to 'for' loop parameter" - }, - "fullDescription": { - "text": "Reports an assignment to a variable declared as a 'for' loop parameter. Although occasionally intended, this construct can be extremely confusing, and is often a result of an error.", - "markdown": "Reports an assignment to a variable declared as a `for` loop parameter. Although occasionally intended, this construct can be extremely confusing, and is often a result of an error." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "AssignmentToForLoopParameterJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Assignment issues", - "index": 108, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConditionalExpressionJS", - "shortDescription": { - "text": "Conditional expression" - }, - "fullDescription": { - "text": "Reports a ternary conditional expression. Some coding standards prohibit such expressions in favor of explicit 'if' statements.", - "markdown": "Reports a ternary conditional expression. Some coding standards prohibit such expressions in favor of explicit `if` statements." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ConditionalExpressionJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Potentially undesirable code constructs", - "index": 31, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PointlessBooleanExpressionJS", - "shortDescription": { - "text": "Pointless statement or boolean expression" - }, - "fullDescription": { - "text": "Reports a pointless or pointlessly complicated boolean expression or statement. Example: 'let a = !(false && x);\n let b = false || x;' After the quick fix is applied the result looks like: 'let a = true;\n let b = x;'", - "markdown": "Reports a pointless or pointlessly complicated boolean expression or statement.\n\nExample:\n\n\n let a = !(false && x);\n let b = false || x;\n\nAfter the quick fix is applied the result looks like:\n\n\n let a = true;\n let b = x;\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "PointlessBooleanExpressionJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Control flow issues", - "index": 65, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSUrlImportUsage", - "shortDescription": { - "text": "URL import is used" - }, - "fullDescription": { - "text": "Checks used URL imports in the JavaScript language. Suggests downloading the module for the specified remote URL. Such association enables the IDE to provide proper code completion and navigation. URLs in import specifiers are supported only for ECMAScript modules in the JavaScript language.", - "markdown": "Checks used URL imports in the JavaScript language. Suggests downloading the module for the specified remote URL. Such association enables the IDE to provide proper code completion and navigation. \n\nURLs in import specifiers are supported only for ECMAScript modules in the JavaScript language." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "JSUrlImportUsage", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Imports and dependencies", - "index": 120, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnnecessaryLabelOnContinueStatementJS", - "shortDescription": { - "text": "Unnecessary label on 'continue' statement" - }, - "fullDescription": { - "text": "Reports a labeled 'continue' statement whose labels may be removed without changing the flow of control.", - "markdown": "Reports a labeled `continue` statement whose labels may be removed without changing the flow of control." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "UnnecessaryLabelOnContinueStatementJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Control flow issues", - "index": 65, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSPotentiallyInvalidTargetOfIndexedPropertyAccess", - "shortDescription": { - "text": "Possibly incorrect target of indexed property access" - }, - "fullDescription": { - "text": "Reports a potentially invalid indexed property access, for example, 'Array[1]'.", - "markdown": "Reports a potentially invalid indexed property access, for example, `Array[1]`." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSPotentiallyInvalidTargetOfIndexedPropertyAccess", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Probable bugs", - "index": 86, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSTypeOfValues", - "shortDescription": { - "text": "'typeof' comparison with non-standard value" - }, - "fullDescription": { - "text": "Reports a comparison of a 'typeof' expression with a literal string which is not one of the standard types: 'undefined', 'object', 'boolean', 'number', 'string', 'function', or 'symbol'. Such comparisons always return 'false'.", - "markdown": "Reports a comparison of a `typeof` expression with a literal string which is not one of the standard types: `undefined`, `object`, `boolean`, `number`, `string`, `function`, or `symbol`. Such comparisons always return `false`." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSTypeOfValues", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Probable bugs", - "index": 86, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "XHTMLIncompatabilitiesJS", - "shortDescription": { - "text": "Incompatible XHTML usages" - }, - "fullDescription": { - "text": "Reports common JavaScript DOM patterns which may present problems with XHTML documents. In particular, the patterns detected will behave completely differently depending on whether the document is loaded as XML or HTML. This can result in subtle bugs where script behaviour is dependent on the MIME-type of the document, rather than its content. Patterns detected include document.body, document.images, document.applets, document.links, document.forms, and document.anchors.", - "markdown": "Reports common JavaScript DOM patterns which may present problems with XHTML documents. In particular, the patterns detected will behave completely differently depending on whether the document is loaded as XML or HTML. This can result in subtle bugs where script behaviour is dependent on the MIME-type of the document, rather than its content. Patterns detected include **document.body** , **document.images** , **document.applets** , **document.links** , **document.forms** , and **document.anchors**." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "XHTMLIncompatabilitiesJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/DOM issues", - "index": 51, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSAnnotator", - "shortDescription": { - "text": "ECMAScript specification is not followed" - }, - "fullDescription": { - "text": "Reports basic syntax issues and inconsistencies with language specification, such as invalid usages of keywords, usages of incompatible numeric format, or multiple parameters to getters/setters. Generally, such errors must always be reported and shouldn't be disabled. But in some cases, such as issues due to the dynamic nature of JavaScript, the use of not yet supported language features, or bugs in IDE's checker, it may be handy to disable reporting these very basic errors.", - "markdown": "Reports basic syntax issues and inconsistencies with language specification, such as invalid usages of keywords, usages of incompatible numeric format, or multiple parameters to getters/setters. \nGenerally, such errors must always be reported and shouldn't be disabled. But in some cases, such as issues due to the dynamic nature of JavaScript, the use of not yet supported language features, or bugs in IDE's checker, it may be handy to disable reporting these very basic errors." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "JSAnnotator", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ES6ConvertToForOf", - "shortDescription": { - "text": "'for..in' is used instead of 'for..of'" - }, - "fullDescription": { - "text": "Reports a usage of a 'for..in' loop on an array. Suggests replacing it with a 'for..of' loop. 'for..of' loops, which are introduced in ECMAScript 6, iterate over 'iterable' objects. For arrays, this structure is preferable to 'for..in', because it works only with array values but not with array object's properties.", - "markdown": "Reports a usage of a [for..in](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in) loop on an array. Suggests replacing it with a [for..of](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...of) loop. \n`for..of` loops, which are introduced in ECMAScript 6, iterate over `iterable` objects. For arrays, this structure is preferable to `for..in`, because it works only with array values but not with array object's properties." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ES6ConvertToForOf", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/ES2015 migration aids", - "index": 49, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ThisExpressionReferencesGlobalObjectJS", - "shortDescription": { - "text": "'this' expression which references the global object" - }, - "fullDescription": { - "text": "Reports a 'this' expression outside an object literal or a constructor body. Such 'this' expressions reference the top-level \"global\" JavaScript object, but are mostly useless.", - "markdown": "Reports a `this` expression outside an object literal or a constructor body. Such `this` expressions reference the top-level \"global\" JavaScript object, but are mostly useless." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ThisExpressionReferencesGlobalObjectJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Validity issues", - "index": 22, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NestedFunctionCallJS", - "shortDescription": { - "text": "Nested function call" - }, - "fullDescription": { - "text": "Reports a function call that is used as an argument in another function call, for example, 'foo(bar())'", - "markdown": "Reports a function call that is used as an argument in another function call, for example, `foo(bar())`" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "NestedFunctionCallJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Code style issues", - "index": 79, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSEqualityComparisonWithCoercion", - "shortDescription": { - "text": "Equality operator may cause type coercion" - }, - "fullDescription": { - "text": "Reports a usage of an equality operator that may cause unexpected type coercions. Suggests replacing '==' and '!=' with type-safe equality operators '===' and '!=='. Depending on the option selected, one of the following cases will be reported: All usages of '==' and '!=' operators. All usages except comparison with null. Some code styles allow using 'x == null' as a replacement for 'x === null || x === undefined'. Only suspicious expressions, such as: '==' or '!=' comparisons with '0', '''', 'null', 'true', 'false', or 'undefined'.", - "markdown": "Reports a usage of an equality operator that may cause unexpected type coercions. Suggests replacing `==` and `!=` with type-safe equality operators `===` and `!==`.\n\nDepending on the option selected, one of the following cases will be reported:\n\n* All usages of `==` and `!=` operators.\n* All usages except comparison with null. Some code styles allow using `x == null` as a replacement for `x === null || x === undefined`.\n* Only suspicious expressions, such as: `==` or `!=` comparisons with `0`, `''`, `null`, `true`, `false`, or `undefined`." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "EqualityComparisonWithCoercionJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Security" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Probable bugs", - "index": 86, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSNonStrictModeUsed", - "shortDescription": { - "text": "Non-strict mode used" - }, - "fullDescription": { - "text": "Reports a JavaScript file that is not in the 'strict' mode.", - "markdown": "Reports a JavaScript file that is not in the `strict` mode." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSNonStrictModeUsed", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Security" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "TypeScriptExplicitMemberType", - "shortDescription": { - "text": "Explicit types" - }, - "fullDescription": { - "text": "Reports a type annotation that doesn't match the current code style for explicit types. Type declarations are not necessary when the type that is inferred from the context exactly matches the type annotation, for example: 'var pi: number = 3.14' In some cases it is preferable to always have explicit types - this prevents accidental type changes and makes code more explicit.", - "markdown": "Reports a type annotation that doesn't match the current code style for explicit types.\n\n\nType declarations are not necessary when the type that is inferred from the context exactly matches the type annotation, for example:\n\n\n var pi: number = 3.14\n\nIn some cases it is preferable to always have explicit types - this prevents accidental type changes and makes code more explicit." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "TypeScriptExplicitMemberType", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/TypeScript", - "index": 55, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSDuplicateCaseLabel", - "shortDescription": { - "text": "Duplicate 'case' label" - }, - "fullDescription": { - "text": "Reports a duplicated 'case' label on a 'switch' statement, which normally indicates an error.", - "markdown": "Reports a duplicated `case` label on a `switch` statement, which normally indicates an error." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSDuplicateCaseLabel", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Switch statement issues", - "index": 109, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSXDomNesting", - "shortDescription": { - "text": "Invalid DOM element nesting" - }, - "fullDescription": { - "text": "Detects HTML elements in JSX files which are not nested properly according to the DOM specification. React reports runtime warnings on incorrectly nested elements.", - "markdown": "Detects HTML elements in JSX files which are not nested properly according to the DOM specification. React reports runtime warnings on incorrectly nested elements." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSXDomNesting", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/React", - "index": 158, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnnecessaryLocalVariableJS", - "shortDescription": { - "text": "Redundant local variable" - }, - "fullDescription": { - "text": "Reports an unnecessary local variable that does not make a function more comprehensible: a local variable that is immediately returned a local variable that is immediately assigned to another variable and is not used anymore a local variable that always has the same value as another local variable or parameter. Use the checkbox below to have this inspection ignore variables that are immediately returned or thrown. Some coding styles suggest using such variables for clarity and ease of debugging.", - "markdown": "Reports an unnecessary local variable that does not make a function more comprehensible:\n\n* a local variable that is immediately returned\n* a local variable that is immediately assigned to another variable and is not used anymore\n* a local variable that always has the same value as another local variable or parameter.\n\n\nUse the checkbox below to have this inspection ignore variables that are immediately\nreturned or thrown. Some coding styles suggest using such variables for clarity and\nease of debugging." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "UnnecessaryLocalVariableJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Data flow", - "index": 112, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSXUnresolvedComponent", - "shortDescription": { - "text": "Unresolved JSX component" - }, - "fullDescription": { - "text": "Reports an unresolved reference to a JSX component. Suggests adding a missing import statement if the referenced component is defined in the project or its dependencies or creating a new component with this name. The template for a new component can be modified in Editor | File and Code Templates.", - "markdown": "Reports an unresolved reference to a JSX component. Suggests adding a missing import statement if the referenced component is defined in the project or its dependencies or creating a new component with this name.\n\nThe template for a new component can be modified in Editor \\| File and Code Templates." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "JSXUnresolvedComponent", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnnecessaryLabelOnBreakStatementJS", - "shortDescription": { - "text": "Unnecessary label on 'break' statement" - }, - "fullDescription": { - "text": "Reports a labeled 'break' statement whose labels may be removed without changing the flow of control.", - "markdown": "Reports a labeled `break` statement whose labels may be removed without changing the flow of control." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "UnnecessaryLabelOnBreakStatementJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Control flow issues", - "index": 65, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "DivideByZeroJS", - "shortDescription": { - "text": "Division by zero" - }, - "fullDescription": { - "text": "Reports division by zero or a remainder by zero.", - "markdown": "Reports division by zero or a remainder by zero." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "DivideByZeroJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Probable bugs", - "index": 86, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ChainedEqualityJS", - "shortDescription": { - "text": "Chained equality" - }, - "fullDescription": { - "text": "Reports a chained equality comparison (i.e. 'a==b==c'). Such comparisons are confusing.", - "markdown": "Reports a chained equality comparison (i.e. `a==b==c`). Such comparisons are confusing." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ChainedEqualityComparisonsJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Code style issues", - "index": 79, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSRedundantSwitchStatement", - "shortDescription": { - "text": "'switch' statement is redundant and can be replaced" - }, - "fullDescription": { - "text": "Reports a 'switch' statement with an empty body, or with only one 'case' branch, or with a 'default' branch only.", - "markdown": "Reports a `switch` statement with an empty body, or with only one `case` branch, or with a `default` branch only." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "JSRedundantSwitchStatement", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Switch statement issues", - "index": 109, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "BlockStatementJS", - "shortDescription": { - "text": "Unnecessary block statement" - }, - "fullDescription": { - "text": "Reports a block statement that is not used as the body of 'if', 'for', 'while', 'do', 'with', or 'try' statements, or as the body of a function declaration. Starting from ECMAScript 6, JavaScript blocks introduce new scopes for 'let' and 'const' variables, but still free-standing block statements may be confusing and result in subtle bugs when used with 'var' variables.", - "markdown": "Reports a block statement that is not used as the body of `if`, `for`, `while`, `do`, `with`, or `try` statements, or as the body of a function declaration. Starting from ECMAScript 6, JavaScript blocks introduce new scopes for `let` and `const` variables, but still free-standing block statements may be confusing and result in subtle bugs when used with `var` variables." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "BlockStatementJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Potentially confusing code constructs", - "index": 61, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "TextLabelInSwitchStatementJS", - "shortDescription": { - "text": "Text label in 'switch' statement" - }, - "fullDescription": { - "text": "Reports a labeled statement inside a 'switch' statement, which often results from a typo. Example: 'switch(x)\n {\n case 1:\n case2: //typo!\n case 3:\n break;\n }'", - "markdown": "Reports a labeled statement inside a `switch` statement, which often results from a typo.\n\nExample:\n\n\n switch(x)\n {\n case 1:\n case2: //typo!\n case 3:\n break;\n }\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "TextLabelInSwitchStatementJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Switch statement issues", - "index": 109, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSOctalInteger", - "shortDescription": { - "text": "Octal integer" - }, - "fullDescription": { - "text": "Reports a deprecated octal integer literal prefixed with '0' instead of '0o'. Such literals are not allowed in modern ECMAScript code, and using them in the strict mode is an error. To force this inspection for ES5 and ES3 language levels, select the 'Warn about obsolete octal literals in ES5- code' checkbox below.", - "markdown": "Reports a deprecated octal integer literal prefixed with `0` instead of `0o`. \nSuch literals are not allowed in modern ECMAScript code, and using them in the strict mode is an error. \nTo force this inspection for ES5 and ES3 language levels, select the 'Warn about obsolete octal literals in ES5- code' checkbox below." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "JSOctalInteger", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Validity issues", - "index": 22, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EmptyTryBlockJS", - "shortDescription": { - "text": "Empty 'try' block" - }, - "fullDescription": { - "text": "Reports an empty 'try' block, which usually indicates an error.", - "markdown": "Reports an empty `try` block, which usually indicates an error." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "EmptyTryBlockJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Try statement issues", - "index": 97, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSIgnoredPromiseFromCall", - "shortDescription": { - "text": "Result of method call returning a promise is ignored" - }, - "fullDescription": { - "text": "Reports a function call that returns a 'Promise' that is not used later. Such calls are usually unintended and indicate an error.", - "markdown": "Reports a function call that returns a `Promise` that is not used later. Such calls are usually unintended and indicate an error." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "JSIgnoredPromiseFromCall", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Async code and promises", - "index": 103, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "StringLiteralBreaksHTMLJS", - "shortDescription": { - "text": "String literal which breaks HTML parsing" - }, - "fullDescription": { - "text": "Reports a string literal that contains a '</' sequence. Such strings may result in incorrect parsing of any HTML in which the JavaScript code is embedded.", - "markdown": "Reports a string literal that contains a `</` sequence. Such strings may result in incorrect parsing of any HTML in which the JavaScript code is embedded." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "StringLiteralBreaksHTMLJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Security" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Validity issues", - "index": 22, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSComparisonWithNaN", - "shortDescription": { - "text": "Comparison with NaN" - }, - "fullDescription": { - "text": "Reports a comparison with NaN. Comparisons like 'expr == NaN' or 'expr === NaN' are always evaluated to 'false'.", - "markdown": "Reports a comparison with NaN. Comparisons like `expr == NaN` or `expr === NaN` are always evaluated to `false`." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSComparisonWithNaN", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Probable bugs", - "index": 86, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSUnresolvedReference", - "shortDescription": { - "text": "Unresolved reference" - }, - "fullDescription": { - "text": "Reports an unresolved reference in JavaScript code.", - "markdown": "Reports an unresolved reference in JavaScript code." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "JSUnresolvedReference", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PlatformDetectionJS", - "shortDescription": { - "text": "Inaccurate platform detection" - }, - "fullDescription": { - "text": "Reports a common JavaScript pattern for detecting the browser or operating system in which the script is run. In addition to pointing out non-portable constructs, these platform detection patterns are often incomplete and easily fooled. For most cases, detection of individual environment features is preferable to attempting to detect the entire platform. Patterns detected include: 'document.all' 'document.layers' 'navigator.userAgent' 'navigator.oscpu' 'navigator.appName' 'navigator.appCodeName' 'navigator.platform'", - "markdown": "Reports a common JavaScript pattern for detecting the browser or operating system in which the script is run. In addition to pointing out non-portable constructs, these platform detection patterns are often incomplete and easily fooled. For most cases, detection of individual environment features is preferable to attempting to detect the entire platform.\n\nPatterns detected include:\n\n* `document.all`\n* `document.layers`\n* `navigator.userAgent`\n* `navigator.oscpu`\n* `navigator.appName`\n* `navigator.appCodeName`\n* `navigator.platform`" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "PlatformDetectionJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/DOM issues", - "index": 51, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "TypeScriptDuplicateUnionOrIntersectionType", - "shortDescription": { - "text": "Duplicate union or intersection type component" - }, - "fullDescription": { - "text": "Reports a duplicate type inside a union or intersection.", - "markdown": "Reports a duplicate type inside a union or intersection." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "TypeScriptDuplicateUnionOrIntersectionType", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/TypeScript", - "index": 55, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VoidExpressionJS", - "shortDescription": { - "text": "'void' expression" - }, - "fullDescription": { - "text": "Reports a 'void' expression.", - "markdown": "Reports a `void` expression." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "VoidExpressionJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Potentially undesirable code constructs", - "index": 31, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSVoidFunctionReturnValueUsed", - "shortDescription": { - "text": "Void function return value used" - }, - "fullDescription": { - "text": "Reports a return value of a function that doesn't return anything. Calling of such functions always produces an 'undefined' value and such assignment may indicate an error. Example: 'let a = console.log('foo');' The following usages are ignored: Inside a return statement In some binary operations For overridden non-void functions", - "markdown": "Reports a return value of a function that doesn't return anything. Calling of such functions always produces an `undefined` value and such assignment may indicate an error.\n\nExample:\n\n\n let a = console.log('foo');\n\nThe following usages are ignored:\n\n* Inside a return statement\n* In some binary operations\n* For overridden non-void functions" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSVoidFunctionReturnValueUsed", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Probable bugs", - "index": 86, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReturnFromFinallyBlockJS", - "shortDescription": { - "text": "'return' inside 'finally' block" - }, - "fullDescription": { - "text": "Reports a 'return' statement inside a 'finally' block. Such 'return' statements may mask exceptions thrown, and complicate debugging.", - "markdown": "Reports a `return` statement inside a `finally` block. Such `return` statements may mask exceptions thrown, and complicate debugging." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ReturnInsideFinallyBlockJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Try statement issues", - "index": 97, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "StatementsPerFunctionJS", - "shortDescription": { - "text": "Overly long function" - }, - "fullDescription": { - "text": "Reports an overly long function. Function length is calculated by counting up the number of non-empty statements in the function. Functions that are too long are error-prone and difficult to test. Use the field below to specify the maximum acceptable number of statements in a function.", - "markdown": "Reports an overly long function. Function length is calculated by counting up the number of non-empty statements in the function. Functions that are too long are error-prone and difficult to test.\n\n\nUse the field below to specify the maximum acceptable number of statements in a function." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "FunctionTooLongJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Function metrics", - "index": 76, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ContinueStatementWithLabelJS", - "shortDescription": { - "text": "'continue' statement with label" - }, - "fullDescription": { - "text": "Reports a labeled 'continue' statement.", - "markdown": "Reports a labeled `continue` statement." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ContinueStatementWithLabelJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Potentially undesirable code constructs", - "index": 31, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "TypeScriptMissingConfigOption", - "shortDescription": { - "text": "Missing tsconfig.json option " - }, - "fullDescription": { - "text": "Reports a usage that requires an explicit option in 'tsconfig.json'. For example, to use JSX in '.tsx' files, 'tsconfig.json' must contain '\"jsx\"' property.", - "markdown": "Reports a usage that requires an explicit option in `tsconfig.json`. For example, to use JSX in `.tsx` files, `tsconfig.json` must contain `\"jsx\"` property." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "TypeScriptMissingConfigOption", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/TypeScript", - "index": 55, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ES6ShorthandObjectProperty", - "shortDescription": { - "text": "Property can be replaced with shorthand" - }, - "fullDescription": { - "text": "Reports an object property that can be converted to ES6 shorthand style and provides a quick-fix to do it. Example: 'var obj = {foo:foo}' After applying the quick-fix the code looks as follows: 'var obj = {foo}'", - "markdown": "Reports an object property that can be converted to ES6 shorthand style and provides a quick-fix to do it.\n\nExample:\n\n\n var obj = {foo:foo}\n\nAfter applying the quick-fix the code looks as follows:\n\n\n var obj = {foo}\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ES6ShorthandObjectProperty", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSPotentiallyInvalidConstructorUsage", - "shortDescription": { - "text": "Potentially invalid constructor usage" - }, - "fullDescription": { - "text": "Reports a usage of a potentially invalid constructor function, for example: a function that is not a constructor after 'new', using a constructor's prototype or calling a constructor without 'new'. A constructor function is assumed to have an upper case name (optional) or have an explicit JSDoc '@constructor' tag.", - "markdown": "Reports a usage of a potentially invalid constructor function, for example: a function that is not a constructor after `new`, using a constructor's prototype or calling a constructor without `new`. A constructor function is assumed to have an upper case name (optional) or have an explicit JSDoc `@constructor` tag." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSPotentiallyInvalidConstructorUsage", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Probable bugs", - "index": 86, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NodeCoreCodingAssistance", - "shortDescription": { - "text": "Unresolved Node.js APIs" - }, - "fullDescription": { - "text": "Suggests configuring coding assistance for Node.js, for example, 'require' and/or core modules ('path', 'http', 'fs', etc.). See https://nodejs.org/api/ for the complete list.", - "markdown": "Suggests configuring coding assistance for Node.js, for example, `require` and/or core modules ('path', 'http', 'fs', etc.).\n\n\nSee <https://nodejs.org/api/> for the complete list." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "NodeCoreCodingAssistance", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Node.js", - "index": 172, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSPrimitiveTypeWrapperUsage", - "shortDescription": { - "text": "Primitive type object wrapper used" - }, - "fullDescription": { - "text": "Reports an improper usage of a wrapper for primitive types or a property of a primitive type being modified, as in the latter case the assigned value will be lost.", - "markdown": "Reports an improper usage of a wrapper for primitive types or a property of a primitive type being modified, as in the latter case the assigned value will be lost." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSPrimitiveTypeWrapperUsage", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSLastCommaInArrayLiteral", - "shortDescription": { - "text": "Unneeded last comma in array literal" - }, - "fullDescription": { - "text": "Reports a usage of a trailing comma in an array literal. The warning is reported only when the JavaScript language version is set to ECMAScript 5.1. Although trailing commas in arrays are allowed by the specification, some browsers may throw an error when a trailing comma is used. You can configure formatting options for trailing commas in Code Style | JavaScript or TypeScript | Punctuation.", - "markdown": "Reports a usage of a trailing comma in an array literal.\n\nThe warning is reported only when the JavaScript language version is set to ECMAScript 5.1.\n\nAlthough trailing commas in arrays are allowed by the specification, some browsers may throw an error when a trailing comma is used.\n\nYou can configure formatting options for trailing commas in **Code Style** \\| **JavaScript** or **TypeScript** \\| **Punctuation**." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSLastCommaInArrayLiteral", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NegatedConditionalExpressionJS", - "shortDescription": { - "text": "Negated conditional expression" - }, - "fullDescription": { - "text": "Reports a conditional expression whose condition is negated. Suggests flipping the order of branches in the conditional expression to increase the clarity of the statement. Example: '!condition ? 2 : 1'", - "markdown": "Reports a conditional expression whose condition is negated. Suggests flipping the order of branches in the conditional expression to increase the clarity of the statement. Example: `!condition ? 2 : 1`" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "NegatedConditionalExpressionJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Potentially confusing code constructs", - "index": 61, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "LabeledStatementJS", - "shortDescription": { - "text": "Labeled statement" - }, - "fullDescription": { - "text": "Reports a labeled statement.", - "markdown": "Reports a labeled statement." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "LabeledStatementJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Potentially undesirable code constructs", - "index": 31, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "WithStatementJS", - "shortDescription": { - "text": "'with' statement" - }, - "fullDescription": { - "text": "Reports a 'with' statements. Such statements result in potentially confusing implicit bindings, and may behave strangely in setting new variables.", - "markdown": "Reports a `with` statements. Such statements result in potentially confusing implicit bindings, and may behave strangely in setting new variables." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "WithStatementJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Potentially undesirable code constructs", - "index": 31, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSConstantReassignment", - "shortDescription": { - "text": "Attempt to assign to const or readonly variable" - }, - "fullDescription": { - "text": "Reports reassigning a value to a constant or a readonly variable.", - "markdown": "Reports reassigning a value to a constant or a readonly variable." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "JSConstantReassignment", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Validity issues", - "index": 22, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MagicNumberJS", - "shortDescription": { - "text": "Magic number" - }, - "fullDescription": { - "text": "Reports a \"magic number\" that is a numeric literal used without being named by a constant declaration. Magic numbers can result in code whose intention is unclear, and may result in errors if a magic number is changed in one code location but remains unchanged in another. The numbers 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 100, 1000, 0.0 and 1.0 are ignored.", - "markdown": "Reports a \"magic number\" that is a numeric literal used without being named by a constant declaration. Magic numbers can result in code whose intention is unclear, and may result in errors if a magic number is changed in one code location but remains unchanged in another. The numbers 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 100, 1000, 0.0 and 1.0 are ignored." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "MagicNumberJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Potentially confusing code constructs", - "index": 61, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "TypeScriptLibrary", - "shortDescription": { - "text": "Missing global library" - }, - "fullDescription": { - "text": "Reports a TypeScript library file that is required for a symbol but is not listed under the 'lib' compiler option in 'tsconfig.json'.", - "markdown": "Reports a TypeScript library file that is required for a symbol but is not listed under the `lib` compiler option in `tsconfig.json`." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "TypeScriptLibrary", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/TypeScript", - "index": 55, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "TypeScriptMissingAugmentationImport", - "shortDescription": { - "text": "Missing augmentation import" - }, - "fullDescription": { - "text": "Reports a usage from augmentation module without an explicit import.", - "markdown": "Reports a usage from [augmentation module](https://www.typescriptlang.org/docs/handbook/declaration-merging.html#module-augmentation) without an explicit import." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "TypeScriptMissingAugmentationImport", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/TypeScript", - "index": 55, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Eslint", - "shortDescription": { - "text": "ESLint" - }, - "fullDescription": { - "text": "Reports a discrepancy detected by the ESLint linter. The highlighting is based on the rule severity specified in the ESLint configuration file for each individual rule. Clear the 'Use rule severity from the configuration file' checkbox to use the severity configured in this inspection for all ESLint rules.", - "markdown": "Reports a discrepancy detected by the [ESLint](https://eslint.org) linter. \n\nThe highlighting is based on the rule severity specified in the [ESLint configuration file](https://eslint.org/docs/user-guide/configuring) for each individual rule. \n\nClear the 'Use rule severity from the configuration file' checkbox to use the severity configured in this inspection for all ESLint rules." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "Eslint", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Code quality tools", - "index": 69, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSEqualityComparisonWithCoercion.TS", - "shortDescription": { - "text": "Equality operator may cause type coercion" - }, - "fullDescription": { - "text": "Reports a usage of equality operators may cause unexpected type coercions. Suggests replacing '==' or '!=' equality operators with type-safe '===' or '!==' operators. Depending on the option selected, one of the following cases will be reported: All usages of '==' and '!=' operators. All usages except comparison with null. Some code styles allow using 'x == null' as a replacement for 'x === null || x === undefined'. Only suspicious expressions, such as: '==' or '!=' comparisons with '0', '''', 'null', 'true', 'false', or 'undefined'.", - "markdown": "Reports a usage of equality operators may cause unexpected type coercions. Suggests replacing `==` or `!=` equality operators with type-safe `===` or `!==` operators.\n\nDepending on the option selected, one of the following cases will be reported:\n\n* All usages of `==` and `!=` operators.\n* All usages except comparison with null. Some code styles allow using `x == null` as a replacement for `x === null || x === undefined`.\n* Only suspicious expressions, such as: `==` or `!=` comparisons with `0`, `''`, `null`, `true`, `false`, or `undefined`." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "EqualityComparisonWithCoercionJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Security" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/TypeScript", - "index": 55, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PackageJsonMismatchedDependency", - "shortDescription": { - "text": "Mismatched dependencies in package.json" - }, - "fullDescription": { - "text": "Reports a dependency from package.json that is not installed or doesn't match the specified version range.", - "markdown": "Reports a dependency from package.json that is not installed or doesn't match the specified [version range](https://docs.npmjs.com/about-semantic-versioning)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "PackageJsonMismatchedDependency", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Imports and dependencies", - "index": 120, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "InfiniteLoopJS", - "shortDescription": { - "text": "Infinite loop statement" - }, - "fullDescription": { - "text": "Reports a 'for', 'while', or 'do' statement which can only exit by throwing an exception. Such statements often indicate coding errors.", - "markdown": "Reports a `for`, `while`, or `do` statement which can only exit by throwing an exception. Such statements often indicate coding errors." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "InfiniteLoopJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Probable bugs", - "index": 86, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSArrowFunctionBracesCanBeRemoved", - "shortDescription": { - "text": "Redundant braces around arrow function body" - }, - "fullDescription": { - "text": "Reports an arrow function whose body only consists of braces and exactly one statement. Suggests converting to concise syntax without braces. 'let incrementer = (x) => {return x + 1};' After the quick-fix is applied, the code fragment looks as follows: 'let incrementer = (x) => x + 1;'", - "markdown": "Reports an arrow function whose body only consists of braces and exactly one statement. Suggests converting to concise syntax without braces.\n\n\n let incrementer = (x) => {return x + 1};\n\nAfter the quick-fix is applied, the code fragment looks as follows:\n\n\n let incrementer = (x) => x + 1;\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "JSArrowFunctionBracesCanBeRemoved", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Code style issues", - "index": 79, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSClassNamingConvention", - "shortDescription": { - "text": "Class naming convention" - }, - "fullDescription": { - "text": "Reports a class or a function that is annotated with a JSDoc '@constructor' or '@class' tag whose names are too short, too long, or do not follow the specified regular expression pattern. Use the fields provided below to specify minimum length, maximum length, and a regular expression expected for classes names. Use the standard 'java.util.regex' format for regular expressions.", - "markdown": "Reports a class or a function that is annotated with a JSDoc `@constructor` or `@class` tag whose names are too short, too long, or do not follow the specified regular expression pattern.\n\n\nUse the fields provided below to specify minimum length, maximum length, and a regular expression\nexpected for classes names. Use the standard `java.util.regex` format for regular expressions." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSClassNamingConvention", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Naming conventions", - "index": 104, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSUndefinedPropertyAssignment", - "shortDescription": { - "text": "Undefined property assignment" - }, - "fullDescription": { - "text": "Reports an assignment to a property that is not defined in the type of a variable. Example: '/**\n * @type {{ property1: string, property2: number }}\n */\nlet myVariable = create();\n\nmyVariable.newProperty = 3; // bad'", - "markdown": "Reports an assignment to a property that is not defined in the type of a variable.\n\nExample:\n\n\n /**\n * @type {{ property1: string, property2: number }}\n */\n let myVariable = create();\n\n myVariable.newProperty = 3; // bad\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "JSUndefinedPropertyAssignment", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Code style issues", - "index": 79, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSDeprecatedSymbols", - "shortDescription": { - "text": "Deprecated symbol used" - }, - "fullDescription": { - "text": "Reports a usage of a deprecated function variable.", - "markdown": "Reports a usage of a deprecated function variable." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "JSDeprecatedSymbols", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "LocalVariableNamingConventionJS", - "shortDescription": { - "text": "Local variable naming convention" - }, - "fullDescription": { - "text": "Reports a local variable whose name is too short, too long, or doesn't follow the specified regular expression pattern. Use the fields provided below to specify minimum length, maximum length, and a regular expression expected for local variables names. Use the standard 'java.util.regex' format regular expressions.", - "markdown": "Reports a local variable whose name is too short, too long, or doesn't follow the specified regular expression pattern.\n\n\nUse the fields provided below to specify minimum length, maximum length, and a regular expression\nexpected for local variables names. Use the standard `java.util.regex` format regular expressions." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "LocalVariableNamingConventionJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Naming conventions", - "index": 104, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSUnresolvedExtXType", - "shortDescription": { - "text": "Unresolved Ext JS xtype" - }, - "fullDescription": { - "text": "Reports an Ext JS 'xtype' reference that doesn't have a corresponding class.", - "markdown": "Reports an Ext JS `xtype` reference that doesn't have a corresponding class." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSUnresolvedExtXType", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ES6RedundantNestingInTemplateLiteral", - "shortDescription": { - "text": "Redundant nesting in template literal" - }, - "fullDescription": { - "text": "Reports nested instances of a string or a template literal. Suggests inlining the nested instances into the containing template string. Example: 'let a = `Hello, ${`Brave ${\"New\"}`} ${\"World\"}!`' After applying the quick-fix the code looks as follows: 'let a = `Hello, Brave New World!`'", - "markdown": "Reports nested instances of a string or a template literal. Suggests inlining the nested instances into the containing template string.\n\nExample:\n\n\n let a = `Hello, ${`Brave ${\"New\"}`} ${\"World\"}!`\n\nAfter applying the quick-fix the code looks as follows:\n\n\n let a = `Hello, Brave New World!`\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ES6RedundantNestingInTemplateLiteral", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NestingDepthJS", - "shortDescription": { - "text": "Overly nested function" - }, - "fullDescription": { - "text": "Reports a function whose body contains statements that are too deeply nested within other statements. Such functions may be confusing and indicate that refactoring may be necessary. Use the field provided below to specify the maximum acceptable nesting depth allowed in a function.", - "markdown": "Reports a function whose body contains statements that are too deeply nested within other statements. Such functions may be confusing and indicate that refactoring may be necessary.\n\n\nUse the field provided below to specify the maximum acceptable nesting depth allowed in a function." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "OverlyNestedFunctionJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Function metrics", - "index": 76, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "TypeScriptSuspiciousConstructorParameterAssignment", - "shortDescription": { - "text": "Assigned constructor field parameter" - }, - "fullDescription": { - "text": "Reports a common mistake in TypeScript code, when a class field is declared as a constructor parameter, and then this parameter is assigned. In this case, the corresponding field won't be assigned, only the local parameter value is modified. 'class Foo {\n constructor(private p: number) {\n p = 1; //must be this.p = 1;\n }\n}'", - "markdown": "Reports a common mistake in TypeScript code, when a class field is declared as a constructor parameter, and then this parameter is assigned. \nIn this case, the corresponding field *won't* be assigned, only the local parameter value is modified.\n\n\n class Foo {\n constructor(private p: number) {\n p = 1; //must be this.p = 1;\n }\n }\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "TypeScriptSuspiciousConstructorParameterAssignment", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/TypeScript", - "index": 55, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NestedSwitchStatementJS", - "shortDescription": { - "text": "Nested 'switch' statement" - }, - "fullDescription": { - "text": "Reports a 'switch' statement that is nested in another 'switch' statement. Nested 'switch' statements may be very confusing, particularly if indenting is inconsistent.", - "markdown": "Reports a `switch` statement that is nested in another `switch` statement. Nested `switch` statements may be very confusing, particularly if indenting is inconsistent." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "NestedSwitchStatementJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Switch statement issues", - "index": 109, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSMissingSwitchBranches", - "shortDescription": { - "text": "'switch' statement has missing branches" - }, - "fullDescription": { - "text": "Reports a 'switch' statement on a variable of the type 'enum' or 'union' when the statement doesn't cover some value options from the type.", - "markdown": "Reports a `switch` statement on a variable of the type `enum` or `union` when the statement doesn't cover some value options from the type." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "JSMissingSwitchBranches", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Switch statement issues", - "index": 109, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSJQueryEfficiency", - "shortDescription": { - "text": "JQuery selector can be optimized" - }, - "fullDescription": { - "text": "Reports a duplicated jQuery selector that can be cached or a usage of an attribute or a pseudo-selector (optional).", - "markdown": "Reports a duplicated jQuery selector that can be cached or a usage of an attribute or a pseudo-selector (optional)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSJQueryEfficiency", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Performance" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnreachableCodeJS", - "shortDescription": { - "text": "Unreachable code" - }, - "fullDescription": { - "text": "Reports code that can never be executed, which almost certainly indicates an error", - "markdown": "Reports code that can never be executed, which almost certainly indicates an error" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "UnreachableCodeJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Control flow issues", - "index": 65, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EmptyStatementBodyJS", - "shortDescription": { - "text": "Statement with empty body" - }, - "fullDescription": { - "text": "Reports an 'if', 'while', 'for', or 'with' statement with an empty body. Such statements often result from typos, and may cause confusion. Use the checkbox below to specify whether the statements with empty block statements as bodies should be reported.", - "markdown": "Reports an `if`, `while`, `for`, or `with` statement with an empty body. Such statements often result from typos, and may cause confusion.\n\n\nUse the checkbox below to specify whether the statements with empty block statements as bodies\nshould be reported." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "StatementWithEmptyBodyJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Potentially confusing code constructs", - "index": 61, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSUnusedLocalSymbols", - "shortDescription": { - "text": "Unused local symbol" - }, - "fullDescription": { - "text": "Reports an unused locally accessible parameter, local variable, function, class, or private member declaration.", - "markdown": "Reports an unused locally accessible parameter, local variable, function, class, or private member declaration." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSUnusedLocalSymbols", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Unused symbols", - "index": 117, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "com.jetbrains.restClient", - "version": "243.24609", - "rules": [ - { - "id": "HttpClientRunRequestNameInspection", - "shortDescription": { - "text": "Possible request name" - }, - "fullDescription": { - "text": "Highlights request name in run block which has no specified import file. Suggests adding import for the file which contains this named request.", - "markdown": "Highlights request name in run block which has no specified import file. Suggests adding import for the file which contains this named request." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "HttpClientRunRequestNameInspection", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HTTP Client", - "index": 19, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HttpClientUnresolvedAuthId", - "shortDescription": { - "text": "Unresolved Auth identifier" - }, - "fullDescription": { - "text": "Highlights references to non-existent Auth configurations. Suggests creating a new one in the current environment.", - "markdown": "Highlights references to non-existent Auth configurations. Suggests creating a new one in the current environment." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "HttpClientUnresolvedAuthId", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Security" - } - }, - "relationships": [ - { - "target": { - "id": "HTTP Client", - "index": 19, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HttpRequestRequestSeparatorJsonBodyInspection", - "shortDescription": { - "text": "Missing request separator in JSON body" - }, - "fullDescription": { - "text": "Reports possible requests in injected JSON body where request separator '###' is missing. The quick fix suggests adding the separator '###' before the request.", - "markdown": "Reports possible requests in injected JSON body where request separator `###` is missing. The quick fix suggests adding the separator `###` before the request." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "HttpRequestRequestSeparatorJsonBodyInspection", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Security" - } - }, - "relationships": [ - { - "target": { - "id": "HTTP Client", - "index": 19, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HttpRequestContentLengthIsIgnored", - "shortDescription": { - "text": "Redundant 'Content-Length'" - }, - "fullDescription": { - "text": "Reports an explicitly set 'Content-Length' header. The header is redundant because HTTP Client uses the actual request body length.", - "markdown": "Reports an explicitly set `Content-Length` header. The header is redundant because HTTP Client uses the actual request body length." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "HttpRequestContentLengthIsIgnored", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Performance" - } - }, - "relationships": [ - { - "target": { - "id": "HTTP Client", - "index": 19, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HttpRequestRequestSeparatorXmlBodyInspection", - "shortDescription": { - "text": "Missing request separator in HTML/XML body" - }, - "fullDescription": { - "text": "Reports possible requests in injected XML/HTML body where request separator '###' is missing. The quick fix suggests adding the separator '###' before the request.", - "markdown": "Reports possible requests in injected XML/HTML body where request separator `###` is missing. The quick fix suggests adding the separator `###` before the request." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "HttpRequestRequestSeparatorXmlBodyInspection", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Security" - } - }, - "relationships": [ - { - "target": { - "id": "HTTP Client", - "index": 19, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HttpRequestJsonBodyInspection", - "shortDescription": { - "text": "Variable should be double-quoted" - }, - "fullDescription": { - "text": "Reports variables which should be double-quoted in json body. The quick fix suggests wrap variable with double quotes '\"{{variable}}\"'.", - "markdown": "Reports variables which should be double-quoted in json body. The quick fix suggests wrap variable with double quotes `\"{{variable}}\"`." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "HttpRequestJsonBodyInspection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "HTTP Client", - "index": 19, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HttpRequestCustomHttpMethodInspection", - "shortDescription": { - "text": "Unknown HTTP method" - }, - "fullDescription": { - "text": "Reports possible custom HTTP methods. The quick fix suggests adding the custom HTTP method to project settings.", - "markdown": "Reports possible custom HTTP methods. The quick fix suggests adding the custom HTTP method to project settings." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "HttpRequestCustomHttpMethodInspection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "HTTP Client", - "index": 19, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HttpClientUnresolvedVariable", - "shortDescription": { - "text": "Unresolved environment variable" - }, - "fullDescription": { - "text": "Reports variables undeclared in the current environment HTTP Client. Executing requests with undeclared variables probably fail. Consider adding a variable to the environment or selecting an environment with this variable. Inspection doesn't report variables in request bodies, because it can be a valid syntax of the body. Some variables may be not reported as unresolved, because they are declared in response or pre-request handler scripts via 'client.global.set' or 'request.variables.set' functions call.", - "markdown": "Reports variables undeclared in the current environment HTTP Client.\n\n\nExecuting requests with undeclared variables probably fail.\nConsider adding a variable to the environment or selecting an environment with this variable.\n\nInspection doesn't report variables in request bodies, because it can be a valid syntax of the body.\n\n\nSome variables may be not reported as unresolved, because they are declared in response or pre-request handler scripts via\n`client.global.set` or `request.variables.set` functions call." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "HttpClientUnresolvedVariable", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "HTTP Client", - "index": 19, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IncorrectHttpHeaderInspection", - "shortDescription": { - "text": "Incorrect HTTP header" - }, - "fullDescription": { - "text": "Reports unknown HTTP headers that do not match any publicly known headers. The quick fix suggests adding the header to the list of custom headers when the Use custom HTTP headers option is enabled. HTTP headers from the list of custom headers will not trigger the inspection.", - "markdown": "Reports unknown HTTP headers that do not match any [publicly\nknown headers](https://www.iana.org/assignments/message-headers/message-headers.xml). The quick fix suggests adding the header to the list of custom headers when the **Use custom HTTP headers** option\nis enabled. HTTP headers from the list of custom headers will not trigger the inspection." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "IncorrectHttpHeaderInspection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Security" - } - }, - "relationships": [ - { - "target": { - "id": "HTTP Client", - "index": 19, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HttpRequestEnvironmentAuthConfigurationValidationInspection", - "shortDescription": { - "text": "Auth configuration validation" - }, - "fullDescription": { - "text": "Reports Auth configuration the following problems in HTTP Client environment files: Missing properties in Auth configuration Auth/Security configuration placed in private environment file", - "markdown": "Reports Auth configuration the following problems in HTTP Client environment files:\n\n* Missing properties in Auth configuration\n* Auth/Security configuration placed in private environment file" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "HttpRequestEnvironmentAuthConfigurationValidationInspection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Security" - } - }, - "relationships": [ - { - "target": { - "id": "HTTP Client", - "index": 19, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HttpUrlsUsage", - "shortDescription": { - "text": "Link with unencrypted protocol" - }, - "fullDescription": { - "text": "Reports the links that use unencrypted protocols (such as HTTP), which can expose your data to man-in-the-middle attacks. These attacks are dangerous in general and may be especially harmful for artifact repositories. Use protocols with encryption, such as HTTPS, instead. See HTTPS: Difference from HTTP (wikipedia.org).", - "markdown": "Reports the links that use unencrypted protocols (such as HTTP), which can expose your data to man-in-the-middle attacks. These attacks\nare dangerous in general and may be especially harmful for artifact repositories. Use protocols with encryption, such as HTTPS,\ninstead.\n\nSee [HTTPS: Difference from HTTP (wikipedia.org)](https://en.wikipedia.org/wiki/HTTPS#Difference_from_HTTP)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "HttpUrlsUsage", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Security" - } - }, - "relationships": [ - { - "target": { - "id": "Security", - "index": 131, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HttpRequestPlaceholder", - "shortDescription": { - "text": "'$placeholder' in HTTP Request" - }, - "fullDescription": { - "text": "Reports a '$placeholder' inside a request. A '$placeholder' to be replaced by the user is created automatically when a tool cannot recognize a part of a request. For example, a request mapping '/aaaa/*/bbb' will be generated as 'GET localhost/aaaa/{{$placeholder}}/bbb'.", - "markdown": "Reports a `$placeholder` inside a request.\n\nA `$placeholder` to be replaced by the user is created automatically when a tool cannot recognize a part of a request. For example, a request mapping `/aaaa/*/bbb` will be generated as `GET localhost/aaaa/{{$placeholder}}/bbb`." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "HttpRequestPlaceholder", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "HTTP Client", - "index": 19, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HttpRequestWhitespaceInsideRequestTargetPath", - "shortDescription": { - "text": "Whitespace in URL in request" - }, - "fullDescription": { - "text": "Highlights spaces inside URL path segments. HTTP Client will ignore them. For better composing use Split Lines action.", - "markdown": "Highlights spaces inside URL path segments. HTTP Client will ignore them. For better composing use Split Lines action." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "HttpRequestWhitespaceInsideRequestTargetPath", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "HTTP Client", - "index": 19, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HttpClientInappropriateProtocolUsageInspection", - "shortDescription": { - "text": "Inappropriate HTTP Protocol usage" - }, - "fullDescription": { - "text": "Reports inappropriate usage of HTTP protocol keyword, e.g. 'HTTP/2', with non-HTTP method requests. Such a usage will be ignored.", - "markdown": "Reports inappropriate usage of HTTP protocol keyword, e.g. `HTTP/2`, with non-HTTP method requests. Such a usage will be ignored." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "HttpClientInappropriateProtocolUsageInspection", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Security" - } - }, - "relationships": [ - { - "target": { - "id": "HTTP Client", - "index": 19, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HttpRequestRequestSeparatorYamlBodyInspection", - "shortDescription": { - "text": "Missing request separator in YAML body" - }, - "fullDescription": { - "text": "Reports possible requests in injected YAML body where request separator '###' is missing. The quick fix suggests adding the separator '###' before the request.", - "markdown": "Reports possible requests in injected YAML body where request separator `###` is missing. The quick fix suggests adding the separator `###` before the request." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "HttpRequestRequestSeparatorYamlBodyInspection", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "HTTP Client", - "index": 19, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "org.editorconfig.editorconfigjetbrains", - "version": "243.24609", - "rules": [ - { - "id": "EditorConfigNumerousWildcards", - "shortDescription": { - "text": "Too many wildcards" - }, - "fullDescription": { - "text": "Reports sections that contain too many wildcards. Using a lot of wildcards may lead to performance issues.", - "markdown": "Reports sections that contain too many wildcards. Using a lot of wildcards may lead to performance issues." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "EditorConfigNumerousWildcards", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Performance" - } - }, - "relationships": [ - { - "target": { - "id": "EditorConfig", - "index": 20, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EditorConfigKeyCorrectness", - "shortDescription": { - "text": "Unknown property" - }, - "fullDescription": { - "text": "Reports properties that are not supported by the IDE. Note: some “ij” domain properties may require specific language plugins.", - "markdown": "Reports properties that are not supported by the IDE. Note: some \"ij\" domain properties may require specific language plugins." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "EditorConfigKeyCorrectness", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "EditorConfig", - "index": 20, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EditorConfigEncoding", - "shortDescription": { - "text": "File encoding doesn't match EditorConfig charset" - }, - "fullDescription": { - "text": "Checks that current file encoding matches the encoding defined in \"charset\" property of .editorconfig file.", - "markdown": "Checks that current file encoding matches the encoding defined in \"charset\" property of .editorconfig file." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "EditorConfigEncoding", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "EditorConfig", - "index": 20, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EditorConfigEmptyHeader", - "shortDescription": { - "text": "Empty header" - }, - "fullDescription": { - "text": "Reports sections with an empty header. Section header must contain file path globs in the format similar to one supported by 'gitignore'.", - "markdown": "Reports sections with an empty header. Section header must contain file path globs in the format similar to one supported by `gitignore`." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "EditorConfigEmptyHeader", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "EditorConfig", - "index": 20, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EditorConfigSpaceInHeader", - "shortDescription": { - "text": "Space in file pattern" - }, - "fullDescription": { - "text": "Reports space characters in wildcard patterns that affect pattern matching. If these characters are not intentional, they should be removed.", - "markdown": "Reports space characters in wildcard patterns that affect pattern matching. If these characters are not intentional, they should be removed." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "EditorConfigSpaceInHeader", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "EditorConfig", - "index": 20, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EditorConfigOptionRedundancy", - "shortDescription": { - "text": "Redundant property" - }, - "fullDescription": { - "text": "Reports properties that are redundant when another applicable section already contains the same property and value. For example: '[*]\nindent_size=4\n[*.java]\nindent_size=4' are both applicable to '*.java' files and define the same 'indent_size' value.", - "markdown": "Reports properties that are redundant when another applicable section already contains the same property and value.\n\n\nFor example:\n\n\n [*]\n indent_size=4\n [*.java]\n indent_size=4\n\nare both applicable to `*.java` files and define the same `indent_size` value." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "EditorConfigOptionRedundancy", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "EditorConfig", - "index": 20, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EditorConfigWildcardRedundancy", - "shortDescription": { - "text": "Redundant wildcard" - }, - "fullDescription": { - "text": "Reports wildcards that become redundant when the “**” wildcard is used in the same section. The “**” wildcard defines a broader set of files than any other wildcard. That is why, any other wildcard used in the same section has no affect and can be removed.", - "markdown": "Reports wildcards that become redundant when the \"\\*\\*\" wildcard is used in the same section.\n\n\nThe \"\\*\\*\" wildcard defines a broader set of files than any other wildcard.\nThat is why, any other wildcard used in the same section has no affect and can be removed." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "EditorConfigWildcardRedundancy", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "EditorConfig", - "index": 20, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EditorConfigUnusedDeclaration", - "shortDescription": { - "text": "Unused declaration" - }, - "fullDescription": { - "text": "Reports unused declarations. Such declarations can be removed.", - "markdown": "Reports unused declarations. Such declarations can be removed." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "EditorConfigUnusedDeclaration", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "EditorConfig", - "index": 20, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EditorConfigRootDeclarationUniqueness", - "shortDescription": { - "text": "Extra top-level declaration" - }, - "fullDescription": { - "text": "Reports multiple top-level declarations. There can be only one optional “root=true” top-level declaration in the EditorConfig file. Using multiple top-level declarations is not allowed.", - "markdown": "Reports multiple top-level declarations. There can be only one optional \"root=true\" top-level declaration in the EditorConfig file. Using multiple top-level declarations is not allowed." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "EditorConfigRootDeclarationUniqueness", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "EditorConfig", - "index": 20, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EditorConfigShadowedOption", - "shortDescription": { - "text": "Overridden property" - }, - "fullDescription": { - "text": "Reports properties that are already defined in other sections. For example: '[*.java]\nindent_size=4\n[{*.java,*.js}]\nindent_size=2' The second section includes all '*.java' files too but it also redefines indent_size. As a result the value 2 will be used for files matching '*.java'.", - "markdown": "Reports properties that are already defined in other sections.\n\nFor example:\n\n\n [*.java]\n indent_size=4\n [{*.java,*.js}]\n indent_size=2\n\nThe second section includes all `*.java` files too but it also redefines indent_size. As a result the value 2 will be used for files matching `*.java`." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "EditorConfigShadowedOption", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "EditorConfig", - "index": 20, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EditorConfigValueUniqueness", - "shortDescription": { - "text": "Non-unique list value" - }, - "fullDescription": { - "text": "Reports duplicates in lists of values.", - "markdown": "Reports duplicates in lists of values." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "EditorConfigValueUniqueness", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "EditorConfig", - "index": 20, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EditorConfigUnexpectedComma", - "shortDescription": { - "text": "Unexpected comma" - }, - "fullDescription": { - "text": "Reports commas that cannot be used in the current context. Commas are allowed only as separators for values in lists.", - "markdown": "Reports commas that cannot be used in the current context. Commas are allowed only as separators for values in lists." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "EditorConfigUnexpectedComma", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "EditorConfig", - "index": 20, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EditorConfigShadowingOption", - "shortDescription": { - "text": "Overriding property" - }, - "fullDescription": { - "text": "Reports properties that override the same properties defined earlier in the file. For example: '[*.java]\nindent_size=4\n[{*.java,*.js}]\nindent_size=2' The second section includes the same files as '[*.java]' but also sets indent_size to value 2. Thus the first declaration 'indent_size=4'will be ignored.", - "markdown": "Reports properties that override the same properties defined earlier in the file.\n\nFor example:\n\n\n [*.java]\n indent_size=4\n [{*.java,*.js}]\n indent_size=2\n\nThe second section includes the same files as `[*.java]` but also sets indent_size to value 2. Thus the first declaration `indent_size=4`will be ignored." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "EditorConfigShadowingOption", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "EditorConfig", - "index": 20, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EditorConfigReferenceCorrectness", - "shortDescription": { - "text": "Invalid reference" - }, - "fullDescription": { - "text": "Reports identifiers that are either unknown or have a wrong type.", - "markdown": "Reports identifiers that are either unknown or have a wrong type." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "EditorConfigReferenceCorrectness", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "EditorConfig", - "index": 20, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EditorConfigCharClassLetterRedundancy", - "shortDescription": { - "text": "Duplicate character class letter" - }, - "fullDescription": { - "text": "Reports wildcard patterns in the EditorConfig section that contain a duplicate character in the character class, for example '[aa]'.", - "markdown": "Reports wildcard patterns in the EditorConfig section that contain a duplicate character in the character class, for example `[aa]`." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "EditorConfigCharClassLetterRedundancy", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "EditorConfig", - "index": 20, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EditorConfigMissingRequiredDeclaration", - "shortDescription": { - "text": "Required declarations are missing" - }, - "fullDescription": { - "text": "Reports properties that miss the required declarations. Refer to the documentation for more information.", - "markdown": "Reports properties that miss the required declarations. Refer to the documentation for more information." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "EditorConfigMissingRequiredDeclaration", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "EditorConfig", - "index": 20, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EditorConfigPartialOverride", - "shortDescription": { - "text": "Overlapping sections" - }, - "fullDescription": { - "text": "Reports subsets of files specified in the current section that overlap with other subsets in other sections. For example: '[{foo,bar}]' and '[{foo,bas}]' both contain “foo”.", - "markdown": "Reports subsets of files specified in the current section that overlap with other subsets in other sections. For example: `[{foo,bar}]` and `[{foo,bas}]` both contain \"foo\"." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "EditorConfigPartialOverride", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "EditorConfig", - "index": 20, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EditorConfigListAcceptability", - "shortDescription": { - "text": "Unexpected value list" - }, - "fullDescription": { - "text": "Reports lists of values that are used in properties in which lists are not supported. In this case, only a single value can be specified.", - "markdown": "Reports lists of values that are used in properties in which lists are not supported. In this case, only a single value can be specified." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "EditorConfigListAcceptability", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "EditorConfig", - "index": 20, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EditorConfigPatternEnumerationRedundancy", - "shortDescription": { - "text": "Unnecessary braces" - }, - "fullDescription": { - "text": "Reports pattern lists that are either empty '{}' or contain just one pattern, for example '{foo}' in contrast to a list containing multiple patterns, for example '{foo,bar}'. In this case braces are handled as a part of the name. For example, the pattern '*.{a}' will match the file 'my.{a}' but not 'my.a'.", - "markdown": "Reports pattern lists that are either empty `{}` or contain just one pattern, for example `{foo}` in contrast to a list containing multiple patterns, for example `{foo,bar}`. In this case braces are handled as a part of the name. For example, the pattern `*.{a}` will match the file `my.{a}` but not `my.a`." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "EditorConfigPatternEnumerationRedundancy", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "EditorConfig", - "index": 20, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EditorConfigPairAcceptability", - "shortDescription": { - "text": "Unexpected key-value pair" - }, - "fullDescription": { - "text": "Reports key-value pairs that are not allowed in the current context.", - "markdown": "Reports key-value pairs that are not allowed in the current context." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "EditorConfigPairAcceptability", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "EditorConfig", - "index": 20, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EditorConfigNoMatchingFiles", - "shortDescription": { - "text": "No matching files" - }, - "fullDescription": { - "text": "Reports sections with wildcard patterns that do not match any files under the directory in which the '.editorconfig' file is located.", - "markdown": "Reports sections with wildcard patterns that do not match any files under the directory in which the `.editorconfig` file is located." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "EditorConfigNoMatchingFiles", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "EditorConfig", - "index": 20, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EditorConfigHeaderUniqueness", - "shortDescription": { - "text": "EditorConfig section is not unique" - }, - "fullDescription": { - "text": "Reports sections that define the same file pattern as other sections.", - "markdown": "Reports sections that define the same file pattern as other sections." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "EditorConfigHeaderUniqueness", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "EditorConfig", - "index": 20, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EditorConfigValueCorrectness", - "shortDescription": { - "text": "Invalid property value" - }, - "fullDescription": { - "text": "Reports property values that do not meet value restrictions. For example, some properties may be only “true” or “false”, others contain only integer numbers etc. If a value has a limited set of variants, use code completion to see all of them.", - "markdown": "Reports property values that do not meet value restrictions. For example, some properties may be only \"true\" or \"false\", others contain only integer numbers etc. If a value has a limited set of variants, use code completion to see all of them." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "EditorConfigValueCorrectness", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "EditorConfig", - "index": 20, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EditorConfigRootDeclarationCorrectness", - "shortDescription": { - "text": "Unexpected top-level declaration" - }, - "fullDescription": { - "text": "Reports unexpected top-level declarations. Top-level declarations other than “root=true” are not allowed in the EditorConfig file.", - "markdown": "Reports unexpected top-level declarations. Top-level declarations other than \"root=true\" are not allowed in the EditorConfig file." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "EditorConfigRootDeclarationCorrectness", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "EditorConfig", - "index": 20, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EditorConfigPatternRedundancy", - "shortDescription": { - "text": "Duplicate or redundant pattern" - }, - "fullDescription": { - "text": "Reports file patterns that are redundant as there already are other patterns that define the same scope of files or even a broader one. For example, in '[{*.java,*}]' the first '*.java' pattern defines a narrower scope compared to '*'. That is why it is redundant and can be removed.", - "markdown": "Reports file patterns that are redundant as there already are other patterns that define the same scope of files or even a broader one. For example, in `[{*.java,*}]` the first `*.java` pattern defines a narrower scope compared to `*`. That is why it is redundant and can be removed." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "EditorConfigPatternRedundancy", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "EditorConfig", - "index": 20, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EditorConfigDeprecatedDescriptor", - "shortDescription": { - "text": "Deprecated property" - }, - "fullDescription": { - "text": "Reports EditorConfig properties that are no longer supported.", - "markdown": "Reports EditorConfig properties that are no longer supported." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "EditorConfigDeprecatedDescriptor", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "EditorConfig", - "index": 20, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EditorConfigCharClassRedundancy", - "shortDescription": { - "text": "Unnecessary character class" - }, - "fullDescription": { - "text": "Reports character classes that consist of a single character. Such classes can be simplified to a character, for example '[a]'→'a'.", - "markdown": "Reports character classes that consist of a single character. Such classes can be simplified to a character, for example `[a]`→`a`." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "EditorConfigCharClassRedundancy", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "EditorConfig", - "index": 20, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EditorConfigEmptySection", - "shortDescription": { - "text": "Empty section" - }, - "fullDescription": { - "text": "Reports sections that do not contain any EditorConfig properties.", - "markdown": "Reports sections that do not contain any EditorConfig properties." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "EditorConfigEmptySection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "EditorConfig", - "index": 20, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EditorConfigVerifyByCore", - "shortDescription": { - "text": "Invalid .editorconfig file" - }, - "fullDescription": { - "text": "Verifies the whole file using the backing EditorConfig core library and reports any failures. Any such failure would prevent EditorConfig properties from being correctly applied.", - "markdown": "Verifies the whole file using the backing EditorConfig core library and reports any failures. Any such failure would prevent EditorConfig properties from being correctly applied." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "EditorConfigVerifyByCore", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "EditorConfig", - "index": 20, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "com.intellij.database", - "version": "243.24609", - "rules": [ - { - "id": "SqlMissingReturnInspection", - "shortDescription": { - "text": "Missing return statement" - }, - "fullDescription": { - "text": "Reports functions that have no RETURN statements. Example (Oracle): 'CREATE FUNCTION foo RETURN int AS\nBEGIN\nEND;' The 'foo' function must return the integer value but the function body returns nothing. To fix the error, add a RETURN statement (for example, 'return 1;'). 'CREATE FUNCTION foo RETURN int AS\nBEGIN\n RETURN 1;\nEND;'", - "markdown": "Reports functions that have no RETURN statements.\n\nExample (Oracle):\n\n CREATE FUNCTION foo RETURN int AS\n BEGIN\n END;\n\nThe `foo` function must return the integer value but the function body returns nothing. To fix the error,\nadd a RETURN statement (for example, `return 1;`).\n\n CREATE FUNCTION foo RETURN int AS\n BEGIN\n RETURN 1;\n END;\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "SqlMissingReturn", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlCaseVsIfInspection", - "shortDescription": { - "text": "Using CASE instead of conditional function and vice versa" - }, - "fullDescription": { - "text": "Reports situations when CASE and IF are interchangeable. Example (MySQL): 'SELECT CASE\nWHEN C1 IS NULL THEN 1\nELSE 0\nEND\nFROM dual;' To keep your code short, you can replace the CASE structure with IF. You can do that by applying the Replace with 'IF' call intention action. The example code will look as follows: 'SELECT IF(C1 IS NULL, 1, 0)\nFROM dual;' To revert IF to CASE, click IF and apply the Replace with CASE expression intention action.", - "markdown": "Reports situations when CASE and IF are interchangeable.\n\nExample (MySQL):\n\n SELECT CASE\n WHEN C1 IS NULL THEN 1\n ELSE 0\n END\n FROM dual;\n\nTo keep your code short, you can replace the CASE structure with IF. You can do that by applying the **Replace with 'IF' call**\nintention action. The example code will look as follows:\n\n SELECT IF(C1 IS NULL, 1, 0)\n FROM dual;\n\nTo revert IF to CASE, click IF and apply the **Replace with CASE expression** intention action." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlCaseVsIf", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlShouldBeInGroupByInspection", - "shortDescription": { - "text": "Column should be in group by clause" - }, - "fullDescription": { - "text": "Reports columns that are not in the GROUP BY clause or inside an aggregate function call. Example (Microsoft SQL Server): 'CREATE TABLE t1 (a INT, b INT);\nSELECT a, b FROM t1 GROUP BY a;' If you run the SELECT query, you will receive an error because Microsoft SQL Server expects the 'b' column in GROUP BY or used inside an aggregate function. The following two examples will fix the error. 'SELECT a, b FROM t1 GROUP BY a, b;\nSELECT a, max(b) max_b FROM t1 GROUP BY a;'", - "markdown": "Reports columns that are not in the GROUP BY clause or inside an aggregate function call.\n\nExample (Microsoft SQL Server):\n\n CREATE TABLE t1 (a INT, b INT);\n SELECT a, b FROM t1 GROUP BY a;\n\nIf you run the SELECT query, you will receive an error because Microsoft SQL Server expects the `b` column in GROUP BY or used\ninside an aggregate function. The following two examples will fix the error.\n\n SELECT a, b FROM t1 GROUP BY a, b;\n SELECT a, max(b) max_b FROM t1 GROUP BY a;\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlShouldBeInGroupBy", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlMisleadingReferenceInspection", - "shortDescription": { - "text": "Misleading references" - }, - "fullDescription": { - "text": "Reports ambiguous references in SQL code. For example, when a name refer to both a table column and a routine parameter. The execution of such code might lead to errors or unexpected results due to counter-intuitive resolution logic. Usually, names with a more local scope have higher priority. Example (PostgreSQL): 'CREATE TABLE foo\n(\n id INT,\n name VARCHAR(5)\n);\nCREATE FUNCTION func(name VARCHAR(5)) RETURNS INT AS\n$$\nDECLARE\n b INT;\nBEGIN\n -- `name` is ambiguous as it is used as a column name and a parameter\n SELECT COUNT(*) INTO b FROM foo t WHERE t.name = name;\n RETURN b;\nEND;\n$$ LANGUAGE plpgsql;' In PostgreSQL, you can use the '#variable_conflict' directives to explicitly specify a correct reference. For example, use '#variable_conflict use_column' to refer to a column name, or '#variable_conflict use_variable' to refer to a parameter. 'CREATE TABLE foo\n(\n id INT,\n name VARCHAR(5)\n);\nCREATE FUNCTION func(name VARCHAR(5)) RETURNS INT AS\n$$\n #variable_conflict use_column\nDECLARE\n b INT;\nBEGIN\n SELECT COUNT(*) INTO b FROM foo t WHERE t.name = name;\n RETURN b;\nEND;\n$$ LANGUAGE plpgsql;'", - "markdown": "Reports ambiguous references in SQL code.\n\nFor example, when a name refer to both a table column and a routine parameter. The execution of such code might lead to errors or unexpected\nresults due to counter-intuitive resolution logic. Usually, names with a more local scope have higher priority.\n\nExample (PostgreSQL):\n\n CREATE TABLE foo\n (\n id INT,\n name VARCHAR(5)\n );\n CREATE FUNCTION func(name VARCHAR(5)) RETURNS INT AS\n $$\n DECLARE\n b INT;\n BEGIN\n -- `name` is ambiguous as it is used as a column name and a parameter\n SELECT COUNT(*) INTO b FROM foo t WHERE t.name = name;\n RETURN b;\n END;\n $$ LANGUAGE plpgsql;\n\nIn PostgreSQL, you can use the `#variable_conflict` directives to explicitly specify a correct reference. For example,\nuse `#variable_conflict use_column` to refer to a column name, or `#variable_conflict use_variable` to refer to a\nparameter.\n\n CREATE TABLE foo\n (\n id INT,\n name VARCHAR(5)\n );\n CREATE FUNCTION func(name VARCHAR(5)) RETURNS INT AS\n $$\n #variable_conflict use_column\n DECLARE\n b INT;\n BEGIN\n SELECT COUNT(*) INTO b FROM foo t WHERE t.name = name;\n RETURN b;\n END;\n $$ LANGUAGE plpgsql;\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlMisleadingReference", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlRedundantAliasInspection", - "shortDescription": { - "text": "Redundant alias expressions" - }, - "fullDescription": { - "text": "Reports alias expressions that duplicate names of columns in tables and might be redundant. Example (PostgreSQL): 'CREATE TABLE foo(a INT, b INT);\n\nSELECT * FROM foo foo(a, b);\nSELECT * FROM foo foo(a);\nSELECT * FROM foo foo(x);\nSELECT * FROM foo foo(x, y);' The first two aliases use the same column names as in the 'foo' table. They are considered redundant because they column names are identical.", - "markdown": "Reports alias expressions that duplicate names of columns in tables and might be redundant.\n\nExample (PostgreSQL):\n\n CREATE TABLE foo(a INT, b INT);\n\n SELECT * FROM foo foo(a, b);\n SELECT * FROM foo foo(a);\n SELECT * FROM foo foo(x);\n SELECT * FROM foo foo(x, y);\n\nThe first two aliases use the same column names as in the `foo` table. They are considered redundant because they\ncolumn names are identical." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlRedundantAlias", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlUnusedCteInspection", - "shortDescription": { - "text": "Unused common table expression" - }, - "fullDescription": { - "text": "Reports unused common table expressions (CTE) inside the query. Example (PostgreSQL): 'CREATE TABLE foo(a INT);\n\nWITH a AS (SELECT 1 AS x FROM foo)\nSELECT 1 + 2 FROM foo;' By using WITH, we create a temporary named result set with the name 'a', also known as a common table expression (CTE). But we do not use this CTE later in the code. The unused CTE is greyed out.", - "markdown": "Reports unused common table expressions (CTE) inside the query.\n\nExample (PostgreSQL):\n\n CREATE TABLE foo(a INT);\n\n WITH a AS (SELECT 1 AS x FROM foo)\n SELECT 1 + 2 FROM foo;\n\nBy using WITH, we create a temporary named result set with the name `a`, also known as a common table expression (CTE). But\nwe do not use this CTE later in the code. The unused CTE is greyed out." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlUnusedCte", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Performance" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MongoJSResolveInspection", - "shortDescription": { - "text": "Resolution problems" - }, - "fullDescription": { - "text": "Reports unresolved references in MongoDB and JavaScript code. Example: 'db\nuse foo\n -- a reference to a non-existing collection\ndb.non_existing_collection\ndb['non_existing_collection']\ndb['non_existing_collection'].find().hasNext()' The 'non_existing_collection' collection does not exist in the database and will be reported.", - "markdown": "Reports unresolved references in MongoDB and JavaScript code.\n\nExample:\n\n db\n use foo\n -- a reference to a non-existing collection\n db.non_existing_collection\n db['non_existing_collection']\n db['non_existing_collection'].find().hasNext()\n\nThe `non_existing_collection` collection does not exist in the database and will be reported." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "MongoJSResolve", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "MongoJS", - "index": 89, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlDialectInspection", - "shortDescription": { - "text": "SQL dialect detection" - }, - "fullDescription": { - "text": "Reports situations when a dialect is not assigned to an SQL file. For example, when you open a new SQL file without assigning a dialect to it, you see a notification where the best matching dialect is advised. Click the Use <dialect> link to use the advised dialect. Alternatively, click the Change dialect to link to select the other dialect.", - "markdown": "Reports situations when a dialect is not assigned to an SQL file.\n\nFor example, when you open a new SQL file without assigning a dialect\nto it, you see a notification where the best matching dialect is advised. Click the **Use \\<dialect\\>** link to use the advised\ndialect. Alternatively, click the **Change dialect to** link to select the other dialect." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlDialectInspection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MongoJSExtDeprecationInspection", - "shortDescription": { - "text": "Deprecated element" - }, - "fullDescription": { - "text": "Reports usages of deprecated methods in MongoDB and JavaScript code. The quick-fix replaces deprecated methods with recommended alternatives. Example: 'db.my_collection.insert()' After the quick-fix is applied: 'db.my_collection.insertOne()'", - "markdown": "Reports usages of deprecated methods in MongoDB and JavaScript code.\n\nThe quick-fix replaces deprecated methods with recommended alternatives.\n\nExample:\n\n\n db.my_collection.insert()\n\nAfter the quick-fix is applied:\n\n\n db.my_collection.insertOne()\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "MongoJSDeprecation", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "MongoJS", - "index": 89, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MongoJSDeprecationInspection", - "shortDescription": { - "text": "Deprecated element" - }, - "fullDescription": { - "text": "Reports usages of deprecated methods in MongoDB and JavaScript code. The quick-fix replaces deprecated methods with recommended alternatives. Example: 'db.my_collection.insert()' After the quick-fix is applied: 'db.my_collection.insertOne()'", - "markdown": "Reports usages of deprecated methods in MongoDB and JavaScript code.\n\nThe quick-fix replaces deprecated methods with recommended alternatives.\n\nExample:\n\n db.my_collection.insert()\n\nAfter the quick-fix is applied:\n\n db.my_collection.insertOne()\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "MongoJSDeprecation", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "MongoJS", - "index": 89, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MsBuiltinInspection", - "shortDescription": { - "text": "Builtin functions" - }, - "fullDescription": { - "text": "Reports truncations of string arguments in ISNULL functions. The ISNULL syntax is 'ISNULL(check_expression, replacement_value)'. According to ISNULL at docs.microsoft.com, 'replacement_value' will be truncated if 'replacement_value' is longer than 'check_expression'. Example (Microsoft SQL Server): 'DECLARE @name1 VARCHAR(2) = NULL;\nDECLARE @name2 VARCHAR(10) = 'Example';\nDECLARE @name3 VARCHAR(2) = 'Hi';\n\n -- `@name2` is VARCHAR(10) and will be truncated\nSELECT ISNULL(@name1, @name2);\n\n -- `@name3` is VARCHAR(2) as `@name1` and will not be truncated\nSELECT ISNULL(@name1, @name3);'", - "markdown": "Reports truncations of string arguments in ISNULL functions.\n\nThe ISNULL syntax is `ISNULL(check_expression, replacement_value)`.\n\nAccording to [ISNULL at\ndocs.microsoft.com](https://docs.microsoft.com/en-us/sql/t-sql/functions/isnull-transact-sql), `replacement_value` will be truncated if `replacement_value` is longer than\n`check_expression`.\n\nExample (Microsoft SQL Server):\n\n DECLARE @name1 VARCHAR(2) = NULL;\n DECLARE @name2 VARCHAR(10) = 'Example';\n DECLARE @name3 VARCHAR(2) = 'Hi';\n\n -- `@name2` is VARCHAR(10) and will be truncated\n SELECT ISNULL(@name1, @name2);\n\n -- `@name3` is VARCHAR(2) as `@name1` and will not be truncated\n SELECT ISNULL(@name1, @name3);\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "MssqlBuiltin", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "SQL server", - "index": 102, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlMultipleLimitClausesInspection", - "shortDescription": { - "text": "Multiple row limiting/offset clauses in queries" - }, - "fullDescription": { - "text": "Reports usages of multiple row limiting clauses in a single query. Example (Microsoft SQL Server): 'create table foo(a int);\nselect top 1 * from foo order by a offset 10 rows fetch next 20 rows only;' The SELECT TOP clause is used to specify that only 1 record must be returned. The FETCH clause specifies the number of rows to return after the OFFSET clause has been processed. But as we already have the SELECT TOP limiting clause, the FETCH clause might be redundant.", - "markdown": "Reports usages of multiple row limiting clauses in a single query.\n\nExample (Microsoft SQL Server):\n\n create table foo(a int);\n select top 1 * from foo order by a offset 10 rows fetch next 20 rows only;\n\nThe SELECT TOP clause is used to specify that only 1 record must be\nreturned. The FETCH clause specifies the number of rows to return after the OFFSET\nclause has been processed. But as we already have the SELECT TOP limiting clause, the FETCH clause might be redundant." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlMultipleLimitClauses", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Performance" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlAmbiguousColumnInspection", - "shortDescription": { - "text": "Ambiguous reference" - }, - "fullDescription": { - "text": "Reports columns that have identical names but belong to different tables. Example (MySQL): 'CREATE TABLE foo(id INT PRIMARY KEY);\nCREATE TABLE bar(id INT PRIMARY KEY);\n\nSELECT foo.id, bar.id FROM foo, bar WHERE id > 0;' The 'id' column appears in 'foo' and 'bar' tables. You need to qualify the column name to make the query correct. 'SELECT foo.id, bar.id FROM foo, bar WHERE foo.id > 0;'", - "markdown": "Reports columns that have identical names but belong to different tables.\n\nExample (MySQL):\n\n CREATE TABLE foo(id INT PRIMARY KEY);\n CREATE TABLE bar(id INT PRIMARY KEY);\n\n SELECT foo.id, bar.id FROM foo, bar WHERE id > 0;\n\nThe `id` column appears in `foo` and `bar` tables. You need to qualify the column name to\nmake the query correct.\n\n SELECT foo.id, bar.id FROM foo, bar WHERE foo.id > 0;\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlAmbiguousColumn", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlInsertValuesInspection", - "shortDescription": { - "text": "VALUES clause cardinality" - }, - "fullDescription": { - "text": "Reports situations when a number of parameters in VALUES does not match a number of columns in a target table. Example (MySQL): 'CREATE TABLE foo(a INT, b INT, c INT);\n\nINSERT INTO foo VALUES (1,2,3,4)' The 'foo' table has three columns but in the INSERT INTO statement we pass four.", - "markdown": "Reports situations when a number of parameters in VALUES does not match a number of columns in a target table.\n\nExample (MySQL):\n\n CREATE TABLE foo(a INT, b INT, c INT);\n\n INSERT INTO foo VALUES (1,2,3,4)\n\nThe `foo` table has three columns but in the INSERT INTO statement we pass four." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlInsertValues", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlRedundantElseNullInspection", - "shortDescription": { - "text": "Redundant ELSE NULL clause" - }, - "fullDescription": { - "text": "Reports redundant ELSE NULL clauses. Example (MySQL): 'SELECT CASE WHEN 2 > 1 THEN 'OK' ELSE NULL END AS alias FROM foo;' The 'ELSE NULL' part will never be executed and may be omitted.", - "markdown": "Reports redundant ELSE NULL clauses.\n\nExample (MySQL):\n\n SELECT CASE WHEN 2 > 1 THEN 'OK' ELSE NULL END AS alias FROM foo;\n\nThe `ELSE NULL` part will never be executed and may be omitted." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlRedundantElseNull", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlCurrentSchemaInspection", - "shortDescription": { - "text": "Current console schema introspected" - }, - "fullDescription": { - "text": "Reports schemas and databases in the current session that are not introspected. For example, this warning might occur when you try to create a table in the schema that is not introspected. Introspection is a method of inspecting a data source. When you perform introspection, structural information in the data source is inspected to detect tables, columns, functions, and other elements with their attributes.", - "markdown": "Reports schemas and databases in the current session that are not introspected.\n\nFor example, this warning might occur when you try to create a table in the schema that is not introspected.\n\nIntrospection is a method of inspecting a data source. When you perform introspection, structural information in the data source is\ninspected to detect tables, columns, functions, and other elements with their attributes." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlCurrentSchemaInspection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlInsertNullIntoNotNullInspection", - "shortDescription": { - "text": "Insert NULL into NOT NULL column" - }, - "fullDescription": { - "text": "Reports cases when you insert NULL values into columns that accept only NOT NULL values. Example (Microsoft SQL Server): 'CREATE TABLE br2 (\nid INT NOT NULL,\ncol1 NVARCHAR (20) NOT NULL,\ncol2 NVARCHAR (20) NOT NULL,\n);\n--\nINSERT INTO br2 (id, col1, col2)\nVALUES (1, NULL, NULL);' You cannot insert NULL values in 'col1' and 'col2' because they are defined as NOT NULL. If you run the script as is, you will receive an error. To fix this code, replace NULL in the VALUES part with some values (for example, '42' and ''bird''). INSERT INTO br2 (id, col1, col2)\nVALUES (1, 42, 'bird');", - "markdown": "Reports cases when you insert NULL values into columns that accept only NOT NULL values.\n\nExample (Microsoft SQL Server):\n\n CREATE TABLE br2 (\n id INT NOT NULL,\n col1 NVARCHAR (20) NOT NULL,\n col2 NVARCHAR (20) NOT NULL,\n );\n --\n INSERT INTO br2 (id, col1, col2)\n VALUES (1, NULL, NULL);\n\nYou cannot insert NULL values in `col1` and `col2` because they are defined as NOT NULL. If you run the script as\nis,\nyou will receive an error. To fix this code, replace NULL in the VALUES part with some values (for example, `42` and\n`'bird'`).\n\n```\nINSERT INTO br2 (id, col1, col2)\nVALUES (1, 42, 'bird');\n```" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlInsertNullIntoNotNull", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlTriggerTransitionInspection", - "shortDescription": { - "text": "Suspicious code in triggers" - }, - "fullDescription": { - "text": "Reports incorrect usages of transition table variables in triggers. Example (HSQLDB): 'CREATE TABLE foo(a INT);\n\nCREATE TRIGGER trg\n AFTER DELETE ON foo\nBEGIN\n SELECT * FROM NEW;\nEND;\n\nCREATE TRIGGER trig AFTER INSERT ON foo\n REFERENCING OLD ROW AS newrow\n FOR EACH ROW WHEN (a > 1)\n INSERT INTO foo VALUES (1)' In HSQLDB, DELETE triggers may be used only with the OLD state while INSERT triggers may have only the NEW state. So, in the previous example, NEW in 'SELECT * FROM NEW;' will be highlighted as well as OLD in 'REFERENCING OLD ROW AS newrow'.", - "markdown": "Reports incorrect usages of transition table variables in triggers.\n\nExample (HSQLDB):\n\n CREATE TABLE foo(a INT);\n\n CREATE TRIGGER trg\n AFTER DELETE ON foo\n BEGIN\n SELECT * FROM NEW;\n END;\n\n CREATE TRIGGER trig AFTER INSERT ON foo\n REFERENCING OLD ROW AS newrow\n FOR EACH ROW WHEN (a > 1)\n INSERT INTO foo VALUES (1)\n\nIn HSQLDB, DELETE triggers may be used only with the OLD state while INSERT triggers may have only the NEW state. So, in the previous\nexample, NEW in `SELECT * FROM NEW;` will be highlighted as well as OLD in `REFERENCING OLD ROW AS newrow`." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlTriggerTransition", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlNamedArgumentsInspection", - "shortDescription": { - "text": "Named arguments should be used" - }, - "fullDescription": { - "text": "Reports arguments that are used without names in routine calls. By default, this inspection is disabled. For more information about the difference between named and unnamed parameters, see Binding Parameters by Name (Named Parameters) at docs.microsoft.com . Example (Microsoft SQL Server): 'CREATE FUNCTION foo(n INT, m INT) RETURNS INT AS\nBEGIN\n RETURN n + m;\nEND;\n\nCREATE PROCEDURE test AS\nBEGIN\n foo n = 1, m = 2;\n\n--- The following call misses parameter names and will be highlighted\n foo 1, 2;\nEND;' Parameters '1, 2' in the 'foo 1, 2;' call are highlighted because they miss names.", - "markdown": "Reports arguments that are used without names in routine calls. By default, this inspection is disabled.\n\nFor more information about the difference between named and unnamed parameters, see [Binding Parameters by Name (Named Parameters) at docs.microsoft.com](https://docs.microsoft.com/en-us/sql/odbc/reference/develop-app/binding-parameters-by-name-named-parameters).\n\nExample (Microsoft SQL Server):\n\n CREATE FUNCTION foo(n INT, m INT) RETURNS INT AS\n BEGIN\n RETURN n + m;\n END;\n\n CREATE PROCEDURE test AS\n BEGIN\n foo n = 1, m = 2;\n\n --- The following call misses parameter names and will be highlighted\n foo 1, 2;\n END;\n\nParameters `1, 2` in the `foo 1, 2;` call are highlighted because they miss names." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlNamedArguments", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlTransactionStatementInTriggerInspection", - "shortDescription": { - "text": "Use of transaction management statements in triggers" - }, - "fullDescription": { - "text": "Reports usages of transaction management statements like COMMIT or ROLLBACK in trigger bodies. With COMMIT or ROLLBACK statements in a trigger body, the trigger will not compile. The fail happens because triggers start during transactions. When the trigger starts the current transaction is still not complete. As COMMIT terminates a transaction, both statements (COMMIT and ROLLBACK) would lead to an exception. Changes that are executed in a trigger should be committed (or rolled back) by the owning transaction that started the trigger. Example (Oracle): 'CREATE TABLE employee_audit\n(\n id INT NOT NULL,\n update_date DATE NOT NULL,\n old_name VARCHAR2(100),\n new_name VARCHAR2(100)\n);\n\nCREATE TABLE employees\n(\n id INT NOT NULL,\n name VARCHAR2(100) NOT NULL\n);\n\nCREATE OR REPLACE TRIGGER trig_commit\n AFTER UPDATE OF name\n ON employees\n FOR EACH ROW\nBEGIN\n INSERT INTO employee_audit VALUES (:old.id, SYSDATE, :old.name, :new.name);\n COMMIT;\nEND;\n\nCREATE OR REPLACE TRIGGER trig_rollback\n AFTER UPDATE OF name\n ON employees\n FOR EACH ROW\nBEGIN\n INSERT INTO employee_audit VALUES (:old.id, SYSDATE, :old.name, :new.name);\n ROLLBACK;\nEND;'", - "markdown": "Reports usages of transaction management statements like COMMIT or ROLLBACK in trigger bodies.\n\nWith COMMIT or ROLLBACK statements in a trigger body, the trigger will not compile.\nThe fail happens because triggers start during transactions. When the trigger starts the current transaction is still not complete. As\nCOMMIT\nterminates a transaction, both statements (COMMIT and ROLLBACK) would lead to an exception.\nChanges that are executed in a trigger should be committed (or rolled back) by the owning transaction that started the trigger.\n\nExample (Oracle):\n\n CREATE TABLE employee_audit\n (\n id INT NOT NULL,\n update_date DATE NOT NULL,\n old_name VARCHAR2(100),\n new_name VARCHAR2(100)\n );\n\n CREATE TABLE employees\n (\n id INT NOT NULL,\n name VARCHAR2(100) NOT NULL\n );\n\n CREATE OR REPLACE TRIGGER trig_commit\n AFTER UPDATE OF name\n ON employees\n FOR EACH ROW\n BEGIN\n INSERT INTO employee_audit VALUES (:old.id, SYSDATE, :old.name, :new.name);\n COMMIT;\n END;\n\n CREATE OR REPLACE TRIGGER trig_rollback\n AFTER UPDATE OF name\n ON employees\n FOR EACH ROW\n BEGIN\n INSERT INTO employee_audit VALUES (:old.id, SYSDATE, :old.name, :new.name);\n ROLLBACK;\n END;\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlTransactionStatementInTrigger", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "OraMissingBodyInspection", - "shortDescription": { - "text": "Missing body for package/object type specification" - }, - "fullDescription": { - "text": "Reports package and object type specifications that are missing body declarations. Package specifications and object types that declare routines as well as package specifications with cursors must have body declarations where those routines and cursors are implemented. Absence of a body leads to a runtime error when routines or cursors are invoked in program code. Example (Oracle): 'CREATE OR REPLACE PACKAGE ppp IS\n FUNCTION foo(a INT) RETURN INT;\nEND;'", - "markdown": "Reports package and object type specifications that are missing body declarations.\n\nPackage specifications and object types that declare routines as well as package specifications with cursors must have body\ndeclarations where those routines and cursors are implemented. Absence of a body leads to a runtime error when routines or cursors are\ninvoked in program code.\n\nExample (Oracle):\n\n CREATE OR REPLACE PACKAGE ppp IS\n FUNCTION foo(a INT) RETURN INT;\n END;\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlMissingBody", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "Oracle", - "index": 123, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlCheckUsingColumnsInspection", - "shortDescription": { - "text": "Check using clause columns" - }, - "fullDescription": { - "text": "Reports columns in the USING clause that does not exist in both tables. Example (MySQL): 'CREATE TABLE t1 (i INT, j INT);\nCREATE TABLE t2 (k INT, l INT);\nSELECT * FROM t1 JOIN t2 USING (j);' In USING clauses, a column name must be present in both tables, and the SELECT query will automatically join those tables by using the given column name. As we do not have the 'j' column in 't2', we can rewrite the query using ON. The ON clause can join tables where the column names do not match in both tables. 'SELECT * FROM t1 JOIN t2 ON t1.j = t2.l;'", - "markdown": "Reports columns in the USING clause that does not exist in both tables.\n\nExample (MySQL):\n\n CREATE TABLE t1 (i INT, j INT);\n CREATE TABLE t2 (k INT, l INT);\n SELECT * FROM t1 JOIN t2 USING (j);\n\nIn USING clauses, a column name must be present in both tables, and the SELECT query will automatically join\nthose tables by using the given column name. As we do not have the `j` column in `t2`, we can\nrewrite the query using ON. The ON clause can join tables where the column names do not match in both tables.\n\n SELECT * FROM t1 JOIN t2 ON t1.j = t2.l;\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlCheckUsingColumns", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlInsertIntoGeneratedColumnInspection", - "shortDescription": { - "text": "Insertion into generated columns" - }, - "fullDescription": { - "text": "Reports INSERT statements that assign values to generated columns. Generated columns can be read, but their values can not be directly written. Example (PostgreSQL): 'CREATE TABLE foo\n(\n col1 INT,\n col2 INT GENERATED ALWAYS AS (col1 + 1) STORED\n);\nINSERT INTO foo(col1, col2) VALUES (1, 2);'\n You cannot insert '2' into the 'col2' column because this column is generated. For this script to work, you can change '2' to DEFAULT. 'INSERT INTO foo(col1, col2) VALUES (1, DEFAULT);'", - "markdown": "Reports INSERT statements that assign values to generated columns. Generated columns can be read, but their values can not be directly written.\n\nExample (PostgreSQL):\n\n CREATE TABLE foo\n (\n col1 INT,\n col2 INT GENERATED ALWAYS AS (col1 + 1) STORED\n );\n INSERT INTO foo(col1, col2) VALUES (1, 2);\n\nYou cannot insert `2` into the `col2` column because this column is generated.\nFor this script to work, you can change `2` to DEFAULT.\n`INSERT INTO foo(col1, col2) VALUES (1, DEFAULT);`" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlInsertIntoGeneratedColumn", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MsOrderByInspection", - "shortDescription": { - "text": "ORDER BY in queries" - }, - "fullDescription": { - "text": "Reports usages when the 'ORDER BY' clause is used without 'TOP', 'OFFSET', or 'FOR XML' in views, inline functions, derived tables, subqueries, and common table expressions. For more information about usages of 'ORDER BY', see SELECT - ORDER BY Clause (Transact-SQL) at docs.microsoft.com. Example (Microsoft SQL server): 'CREATE TABLE foo (a INT NOT NULL, b INT NOT NULL);\n\nSELECT *\nFROM (SELECT a, b\nFROM foo A\nWHERE a < 89\nORDER BY b) ALIAS;' In a subquery, ORDER BY will be highlighted as an error. You can add TOP, OFFSET, or FOR XML to a subquery. Alternatively, use the Delete element quick-fix to delete the ORDER BY section. After the quick-fix is applied: 'SELECT *\nFROM (SELECT a, b\nFROM foo A\nWHERE a < 89) ALIAS;'", - "markdown": "Reports usages when the `ORDER BY` clause is used without `TOP`, `OFFSET`, or `FOR XML` in views, inline functions, derived tables, subqueries, and common table expressions.\n\nFor more information about usages of `ORDER BY`, see [SELECT - ORDER BY Clause (Transact-SQL) at\ndocs.microsoft.com](https://docs.microsoft.com/en-us/sql/t-sql/queries/select-order-by-clause-transact-sql).\n\nExample (Microsoft SQL server):\n\n CREATE TABLE foo (a INT NOT NULL, b INT NOT NULL);\n\n SELECT *\n FROM (SELECT a, b\n FROM foo A\n WHERE a < 89\n ORDER BY b) ALIAS;\n\nIn a subquery, ORDER BY will be highlighted as an error. You can add TOP, OFFSET, or FOR XML to a subquery.\nAlternatively, use the **Delete element** quick-fix to delete the ORDER BY section.\n\nAfter the quick-fix is applied:\n\n SELECT *\n FROM (SELECT a, b\n FROM foo A\n WHERE a < 89) ALIAS;\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "MsOrderBy", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Performance" - } - }, - "relationships": [ - { - "target": { - "id": "SQL server", - "index": 102, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlDeprecateTypeInspection", - "shortDescription": { - "text": "Deprecated type" - }, - "fullDescription": { - "text": "Reports usages of types that are deprecated and might disappear in future versions of DBMS. Reported types: LONG in Oracle (see Deprecated and Desupported Features at docs.oracle.com). TEXT, NTEXT, and IMAGE in Microsoft SQL Server (see Deprecated Database Engine Features in SQL Server 2016 at docs.microsoft.com). Example (Oracle): 'CREATE TABLE ot.foo(\na NUMBER GENERATED BY DEFAULT AS IDENTITY,\nb LONG NOT NULL\n);'", - "markdown": "Reports usages of types that are deprecated and might disappear in future versions of DBMS.\n\nReported types:\n\n* LONG in Oracle (see [Deprecated\n and Desupported Features at docs.oracle.com](https://docs.oracle.com/cd/A91202_01/901_doc/server.901/a90120/ch4_dep.htm#6690)).\n* TEXT, NTEXT, and IMAGE in Microsoft SQL Server (see [Deprecated Database Engine Features in SQL Server 2016 at docs.microsoft.com](https://docs.microsoft.com/en-us/sql/database-engine/deprecated-database-engine-features-in-sql-server-2016?view=sql-server-ver15)).\n\nExample (Oracle):\n\n CREATE TABLE ot.foo(\n a NUMBER GENERATED BY DEFAULT AS IDENTITY,\n b LONG NOT NULL\n );\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlDeprecateType", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlGotoInspection", - "shortDescription": { - "text": "Usages of GOTO statements" - }, - "fullDescription": { - "text": "Reports usages of backward GOTO statements and GOTO statements used to exit a loop. The extensive use of GOTO statements is generally not recommended. For details, see GOTO statement in SQL procedures at ibm.com. Instead of jumping back to a previous statement using GOTO, consider using a loop. Instead of exiting the WHILE loop with GOTO, consider using other control-of-flow statements (for example, RETURN or BREAK). Example (Oracle): 'CREATE PROCEDURE test(n INT) AS\nDECLARE\n x INT;\nBEGIN\n x := 0;\n GOTO a;\n <<a>> x := 1;\n IF (n = 0) THEN\n GOTO a;\n END IF;\n WHILE TRUE\n LOOP\n GOTO b;\n END LOOP;\n <<b>> x := 3;\nEND;'", - "markdown": "Reports usages of backward GOTO statements and GOTO statements used to exit a loop.\n\nThe extensive use of GOTO statements is generally\nnot recommended. For details, see [GOTO statement in\nSQL\nprocedures at ibm.com](https://www.ibm.com/docs/no/db2/11.5?topic=procedures-goto-statement-in-sql).\n\nInstead of jumping back to a previous statement using GOTO, consider using a loop.\n\nInstead of exiting the WHILE loop with GOTO, consider using other control-of-flow statements (for example, RETURN or BREAK).\n\nExample (Oracle):\n\n CREATE PROCEDURE test(n INT) AS\n DECLARE\n x INT;\n BEGIN\n x := 0;\n GOTO a;\n <<a>> x := 1;\n IF (n = 0) THEN\n GOTO a;\n END IF;\n WHILE TRUE\n LOOP\n GOTO b;\n END LOOP;\n <<b>> x := 3;\n END;\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlGoto", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MysqlLoadDataPathInspection", - "shortDescription": { - "text": "LOAD statement path" - }, - "fullDescription": { - "text": "Reports paths that start with the tilde character in LOAD statements. Example (MySQL): 'CREATE TABLE table_name (id int);\nLOAD DATA LOCAL INFILE '~/Documents/some_file.txt'\nINTO TABLE table_name FIELDS TERMINATED BY ',' LINES TERMINATED BY '\\n'\nIGNORE 1 LINES;' Instead of the tilde character, use a full path to the file.", - "markdown": "Reports paths that start with the tilde character in LOAD statements.\n\nExample (MySQL):\n\n CREATE TABLE table_name (id int);\n LOAD DATA LOCAL INFILE '~/Documents/some_file.txt'\n INTO TABLE table_name FIELDS TERMINATED BY ',' LINES TERMINATED BY '\\n'\n IGNORE 1 LINES;\n\nInstead of the tilde character, use a full path to the file." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "MysqlLoadDataPath", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "MySQL", - "index": 142, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlDtInspection", - "shortDescription": { - "text": "Ill-formed date/time literals" - }, - "fullDescription": { - "text": "Reports errors in date and time literals. This inspection is available in MySQL, Oracle, Db2, and H2. Example (MySQL): 'SELECT TIME '10 -12:13:14' FROM dual;\nSELECT TIME ' 12 : 13 : 14 ' FROM dual;\nSELECT TIME '12 13 14' FROM dual;\nSELECT TIME '12-13-14' FROM dual;\nSELECT TIME '12.13.14' FROM dual;\nSELECT TIME '12:13:' FROM dual;\nSELECT TIME '12:13' FROM dual;\nSELECT TIME '12:' FROM dual;' In this example, dates ignore the MySQL standard for date and time literals. Therefore, they will be highlighted. For more information about date and time literals in MySQL, see Date and Time Literals at dev.mysql.com. The following date and type literals are valid for MySQL. 'SELECT TIME '12:13:14' FROM dual;\nSELECT TIME '12:13:14.555' FROM dual;\nSELECT TIME '12:13:14.' FROM dual;\nSELECT TIME '-12:13:14' FROM dual;\nSELECT TIME '10 12:13:14' FROM dual;\nSELECT TIME '-10 12:13:14' FROM dual;'", - "markdown": "Reports errors in date and time literals. This inspection is available in MySQL, Oracle, Db2, and H2.\n\nExample (MySQL):\n\n SELECT TIME '10 -12:13:14' FROM dual;\n SELECT TIME ' 12 : 13 : 14 ' FROM dual;\n SELECT TIME '12 13 14' FROM dual;\n SELECT TIME '12-13-14' FROM dual;\n SELECT TIME '12.13.14' FROM dual;\n SELECT TIME '12:13:' FROM dual;\n SELECT TIME '12:13' FROM dual;\n SELECT TIME '12:' FROM dual;\n\nIn this example, dates ignore the MySQL standard for date and time literals. Therefore, they will be highlighted.\nFor more information about date and time literals in MySQL, see [Date and Time Literals at dev.mysql.com](https://dev.mysql.com/doc/refman/8.0/en/date-and-time-literals.html).\n\nThe following date and type literals are valid for MySQL.\n\n SELECT TIME '12:13:14' FROM dual;\n SELECT TIME '12:13:14.555' FROM dual;\n SELECT TIME '12:13:14.' FROM dual;\n SELECT TIME '-12:13:14' FROM dual;\n SELECT TIME '10 12:13:14' FROM dual;\n SELECT TIME '-10 12:13:14' FROM dual;\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlDateTime", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlNoDataSourceInspection", - "shortDescription": { - "text": "No data sources configured" - }, - "fullDescription": { - "text": "Reports the absence of data sources in the Database tool window (View | Tool Windows | Database).", - "markdown": "Reports the absence of data sources in the **Database** tool window (**View \\| Tool Windows \\| Database**)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlNoDataSourceInspection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlConstantExpressionInspection", - "shortDescription": { - "text": "Constant expression" - }, - "fullDescription": { - "text": "Reports conditions and expressions that are always true, false or null. Example (MySQL): 'CREATE TABLE t1 (a TEXT, b INT, c BOOLEAN);\nSELECT a FROM t1 WHERE 'Cat' = 'Cat';\nSELECT a FROM t1 WHERE 'Cat' = null;' The ''Cat' = 'Cat'' is always true and will be reported. The ''Cat' = null' is always null and will be reported.", - "markdown": "Reports conditions and expressions that are always true, false or null.\n\nExample (MySQL):\n\n CREATE TABLE t1 (a TEXT, b INT, c BOOLEAN);\n SELECT a FROM t1 WHERE 'Cat' = 'Cat';\n SELECT a FROM t1 WHERE 'Cat' = null;\n\nThe `'Cat' = 'Cat'` is always true and will be reported.\n\nThe `'Cat' = null` is always null and will be reported." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlConstantExpression", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "OraUnmatchedForwardDeclarationInspection", - "shortDescription": { - "text": "Forward declaration without definition" - }, - "fullDescription": { - "text": "Reports declarations of procedures and functions that are missing their implementation in code. In Oracle, you can declare a procedure or a function without its body, and write the implementation later. The inspection will report names of such procedures or functions that are left without implementation. Example (Oracle): 'DECLARE PROCEDURE foo(a int, b varchar2);\nBEGIN\n NULL;\nEND;' The 'foo' procedure is declared but is missing implementation. We can add the implementation to get rid of the error. 'DECLARE PROCEDURE foo(a int, b varchar2);\n PROCEDURE foo(a int, b varchar2) IS\nBEGIN\n NULL;\nEND;\nBEGIN\n NULL;\nEND;'", - "markdown": "Reports declarations of procedures and functions that are missing their implementation in code.\n\nIn Oracle, you can declare a procedure or a function without its body, and write the implementation later. The inspection will report names\nof such procedures or functions that are left without implementation.\n\nExample (Oracle):\n\n DECLARE PROCEDURE foo(a int, b varchar2);\n BEGIN\n NULL;\n END;\n\nThe `foo` procedure is declared but is missing implementation. We can add the implementation to get rid of the error.\n\n DECLARE PROCEDURE foo(a int, b varchar2);\n PROCEDURE foo(a int, b varchar2) IS\n BEGIN\n NULL;\n END;\n BEGIN\n NULL;\n END;\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "SqlUnmatchedForwardDeclaration", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "Oracle", - "index": 123, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlWithoutWhereInspection", - "shortDescription": { - "text": "Delete or update statement without where clauses" - }, - "fullDescription": { - "text": "Reports usages of DELETE or UPDATE statements without WHERE clauses. Without WHERE clauses, DELETE drops all the data from the table, and UPDATE overwrites values for all the table rows. Example (MySQL): 'CREATE TABLE t1 (a TEXT, b INT, c BOOLEAN);\nupdate t1 set a = 'Smith';\ndelete from t1;'", - "markdown": "Reports usages of DELETE or UPDATE statements without WHERE clauses.\n\nWithout WHERE clauses, DELETE drops all the data from the table, and UPDATE overwrites values for all the table rows.\n\nExample (MySQL):\n\n CREATE TABLE t1 (a TEXT, b INT, c BOOLEAN);\n update t1 set a = 'Smith';\n delete from t1;\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlWithoutWhere", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Security" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MongoJSSideEffectsInspection", - "shortDescription": { - "text": "Statement with side effects" - }, - "fullDescription": { - "text": "Reports statements that can cause side effects while the data source is in read-only mode. For more information about enabling read-only mode, see Enable read-only mode for a connection in the IDE documentation. The Disable read-only mode quick-fix turns off the read-only mode for the respective data source. Example: 'db.my_collection.insertOne()'", - "markdown": "Reports statements that can cause side effects while the data source is in read-only mode.\n\nFor more information about enabling read-only mode, see\n[Enable\nread-only mode for a connection in the IDE documentation](https://www.jetbrains.com/help/datagrip/configuring-database-connections.html#enable-read-only-mode-for-a-connection).\n\nThe **Disable read-only mode** quick-fix turns off the read-only mode for the respective data source.\n\nExample:\n\n\n db.my_collection.insertOne()\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "MongoJSSideEffects", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Security" - } - }, - "relationships": [ - { - "target": { - "id": "MongoJS", - "index": 89, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MongoJSExtSideEffectsInspection", - "shortDescription": { - "text": "Statement with side effects" - }, - "fullDescription": { - "text": "Reports statements that may cause side effects while the data source is in read-only mode. The quick-fix turns off the read-only mode for the respective data source. Example: 'db.my_collection.insertOne()'", - "markdown": "Reports statements that may cause side effects while the data source is in read-only mode.\n\nThe quick-fix turns off the read-only mode for the respective data source.\n\nExample:\n\n\n db.my_collection.insertOne()\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "MongoJSSideEffects", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Security" - } - }, - "relationships": [ - { - "target": { - "id": "MongoJS", - "index": 89, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlUnusedSubqueryItemInspection", - "shortDescription": { - "text": "Unused subquery item" - }, - "fullDescription": { - "text": "Reports columns, aliases, and other subquery items that are not referenced in the outer query expression. Example (PostgreSQL): 'CREATE TABLE for_subquery(id INT);\nSELECT a, q FROM (SELECT 1 AS a, 10 AS b, 2 + 3 AS q, id\n FROM for_subquery) x;' We reference 'a' and 'q' aliases from a subquery. But the 'b' alias and the 'id' column are not referenced in the outer SELECT statement. Therefore, 'b' and 'id' are grayed out.", - "markdown": "Reports columns, aliases, and other subquery items that are not referenced in the outer query expression.\n\nExample (PostgreSQL):\n\n CREATE TABLE for_subquery(id INT);\n SELECT a, q FROM (SELECT 1 AS a, 10 AS b, 2 + 3 AS q, id\n FROM for_subquery) x;\n\nWe reference `a` and `q` aliases from a subquery. But the `b` alias and the `id` column are\nnot referenced in the outer SELECT statement. Therefore, `b` and `id` are grayed out." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlUnused", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Performance" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlSideEffectsInspection", - "shortDescription": { - "text": "Statement with side effects" - }, - "fullDescription": { - "text": "Reports statements that might lead to modification of a database during a read-only connection. To enable read-only mode for a connection, right-click a data source in the Database tool window (View | Tool Windows | Database) and select Properties. In the Data Sources and Drivers dialog, click the Options tab and select the Read-only checkbox. Example (MySQL): 'CREATE TABLE foo(a INT);\nINSERT INTO foo VALUES (1);' As 'CREATE TABLE' and 'INSERT INTO' statements lead to a database modification, these statements will be highlighted in read-only connection mode.", - "markdown": "Reports statements that might lead to modification of a database during a read-only connection.\n\nTo enable read-only mode for a\nconnection,\nright-click a data source in the **Database** tool window (**View \\| Tool Windows \\| Database** ) and select **Properties** .\nIn the **Data Sources and Drivers** dialog, click the **Options** tab and select the **Read-only** checkbox.\n\nExample (MySQL):\n\n CREATE TABLE foo(a INT);\n INSERT INTO foo VALUES (1);\n\nAs `CREATE TABLE` and `INSERT INTO` statements lead to a database modification, these statements will be highlighted\nin read-only connection mode." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlSideEffects", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Security" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlJoinWithoutOnInspection", - "shortDescription": { - "text": "Unsafe 'join' clause in 'delete' statement" - }, - "fullDescription": { - "text": "Reports missing conditional checks for statements that might modify the whole database. For example, usages of JOIN clauses inside DELETE statements without ON or WHERE. Without conditional checks on JOIN, DELETE drops contents of the entire table. Example (MySQL): 'CREATE TABLE foo (a INT,b INT,c INT);\nCREATE TABLE bar (a INT,b INT,c INT);\n\nDELETE table1 FROM foo table1 INNER JOIN bar table2;'", - "markdown": "Reports missing conditional checks for statements that might modify the whole database.\n\nFor example, usages of JOIN clauses inside DELETE statements without ON or WHERE. Without conditional checks on JOIN, DELETE drops\ncontents of the entire table.\n\nExample (MySQL):\n\n CREATE TABLE foo (a INT,b INT,c INT);\n CREATE TABLE bar (a INT,b INT,c INT);\n\n DELETE table1 FROM foo table1 INNER JOIN bar table2;\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlJoinWithoutOn", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Security" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlDropIndexedColumnInspection", - "shortDescription": { - "text": "Index is dependent on column" - }, - "fullDescription": { - "text": "Reports cases when you try to drop columns from indexed tables. This inspection is available in Microsoft SQL Server and Sybase ASE. Example (Microsoft SQL Server): 'CREATE TABLE test_index\n(\ncol INT NOT NULL,\ncol2 INT NOT NULL,\ncol3 INT NOT NULL UNIQUE,\ncol4 VARCHAR(200)\n);\n\nCREATE UNIQUE INDEX aaaa ON test_index (col, col2);\n\nALTER TABLE test_index\nDROP COLUMN col;' You cannot delete the 'col' column because it is in the indexed table. To delete the column, you need to delete the 'aaaa' index first (for example, DROP INDEX aaaa).", - "markdown": "Reports cases when you try to drop columns from indexed tables. This inspection is available in Microsoft SQL Server and Sybase ASE.\n\nExample (Microsoft SQL Server):\n\n CREATE TABLE test_index\n (\n col INT NOT NULL,\n col2 INT NOT NULL,\n col3 INT NOT NULL UNIQUE,\n col4 VARCHAR(200)\n );\n\n CREATE UNIQUE INDEX aaaa ON test_index (col, col2);\n\n ALTER TABLE test_index\n DROP COLUMN col;\n\nYou cannot delete the `col` column because it is in the indexed table. To delete the column, you need to delete the\n`aaaa` index first (for example, DROP INDEX aaaa)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlDropIndexedColumn", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlTypeInspection", - "shortDescription": { - "text": "Types compatibility" - }, - "fullDescription": { - "text": "Reports type-related errors.", - "markdown": "Reports type-related errors." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlType", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlUnicodeStringLiteralInspection", - "shortDescription": { - "text": "Unicode usage in SQL" - }, - "fullDescription": { - "text": "Reports string literals that use national characters without the 'N' prefix. Without the N prefix, the string is converted to the default code page of the database. This default code page may not recognize certain characters. For more information, see nchar and nvarchar (Transact-SQL) at docs.microsoft.com. Example (Microsoft SQL Server): 'SELECT 'abcde' AS a;\nSELECT N'abcde' AS b;\nSELECT 'абвгд' AS c;\nSELECT N'абвгд' AS d;' The 'SELECT 'абвгд' AS c;' does not have the 'N' prefix, the ''абвгд'' part will be highlighted.", - "markdown": "Reports string literals that use national characters without the `N` prefix.\n\nWithout the N prefix, the string is converted to the default\ncode page of the database. This default code page may not recognize certain characters. For more information, see\n[nchar and nvarchar\n(Transact-SQL)\nat docs.microsoft.com](https://docs.microsoft.com/en-us/sql/t-sql/data-types/nchar-and-nvarchar-transact-sql).\n\nExample (Microsoft SQL Server):\n\n SELECT 'abcde' AS a;\n SELECT N'abcde' AS b;\n SELECT 'абвгд' AS c;\n SELECT N'абвгд' AS d;\n\nThe `SELECT 'абвгд' AS c;` does not have the `N` prefix, the `'абвгд'` part will be highlighted." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlUnicodeStringLiteral", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlUnusedVariableInspection", - "shortDescription": { - "text": "Unused variable" - }, - "fullDescription": { - "text": "Reports unused arguments, variables, or parameters. Example (PostgreSQL): 'CREATE FUNCTION foo(PARAMUSED INT, PARAMUNUSED INT) RETURNS INT AS\n$$\nBEGIN\n RETURN PARAMUSED;\nEND\n$$ LANGUAGE plpgsql;' The 'PARAMUNUSED' parameter is not used in the function and might be deleted.", - "markdown": "Reports unused arguments, variables, or parameters.\n\nExample (PostgreSQL):\n\n CREATE FUNCTION foo(PARAMUSED INT, PARAMUNUSED INT) RETURNS INT AS\n $$\n BEGIN\n RETURN PARAMUSED;\n END\n $$ LANGUAGE plpgsql;\n\nThe `PARAMUNUSED` parameter is not used in the function and might be deleted." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlUnused", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PgSelectFromProcedureInspection", - "shortDescription": { - "text": "Postgres: Select from procedure call" - }, - "fullDescription": { - "text": "Reports situations when you make SELECT from a function or a DBLINK without an alias with a type (for example, 'AS t1(s VARCHAR)'). This requirement does not apply to scalar functions. Example (PostgreSQL): 'CREATE FUNCTION produce_a_table() RETURNS RECORD AS $$\nSELECT 1;\n$$ LANGUAGE sql;\nSELECT * FROM produce_a_table() AS s (c1 INT);\nSELECT * FROM produce_a_table() AS s (c1);\nSELECT * FROM DBLINK('dbname=mydb', 'SELECT proname, prosrc FROM pg_proc') AS t1;' The 'AS s (c1 INT)' has a typed alias, while 'AS s (c1)' and 'AS t1' do not. In this case, the second call of 'produce_a_table()' and 'DBLINK()' will be highlighted.", - "markdown": "Reports situations when you make SELECT from a function or a DBLINK without an alias with a type (for example, `AS t1(s VARCHAR)`).\n\nThis requirement does not apply to scalar functions.\n\nExample (PostgreSQL):\n\n CREATE FUNCTION produce_a_table() RETURNS RECORD AS $$\n SELECT 1;\n $$ LANGUAGE sql;\n SELECT * FROM produce_a_table() AS s (c1 INT);\n SELECT * FROM produce_a_table() AS s (c1);\n SELECT * FROM DBLINK('dbname=mydb', 'SELECT proname, prosrc FROM pg_proc') AS t1;\n\nThe `AS s (c1 INT)` has a typed alias, while `AS s (c1)` and `AS t1` do not.\nIn this case, the second call of `produce_a_table()` and `DBLINK()` will be highlighted." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "PgSelectFromProcedure", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "PostgreSQL", - "index": 152, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlStorageInspection", - "shortDescription": { - "text": "SQL source modification detection" - }, - "fullDescription": { - "text": "Reports situations when source code of a database object has been changed. The inspection is triggered when you perform database or object introspection. The introspection is run when you open source code of an object, run statements, and perform code refactoring. Also, you can run introspection by right-clicking an object and selecting Refresh. The inspection covers the following situations: Object source code was changed in the database but code in the editor was not updated. Works in PostgreSQL, Microsoft SQL Server, Oracle, and Sybase ASE. You changed the object source code, introspected the database, but source code has been already changed by someone else. The database introspector was updated in the IDE and you need to download new object properties that were missing in the previous introspector version.", - "markdown": "Reports situations when source code of a database object has been changed.\n\nThe inspection is triggered when you perform database or object introspection. The introspection is run when you open source code of an\nobject, run statements, and perform code refactoring.\nAlso, you can run introspection by right-clicking an object and selecting **Refresh**.\n\nThe inspection covers the following situations:\n\n* Object source code was changed in the database but code in the editor was not updated. Works in PostgreSQL, Microsoft SQL Server, Oracle, and Sybase ASE.\n* You changed the object source code, introspected the database, but source code has been already changed by someone else.\n* The database introspector was updated in the IDE and you need to download new object properties that were missing in the previous introspector version." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlStorageInspection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlSignatureInspection", - "shortDescription": { - "text": "Function signature" - }, - "fullDescription": { - "text": "Reports signature issues for built-in functions. The inspection will report a wrong number of arguments, invalid keywords, wrong data types, and other issues. Example (MySQL): 'CREATE TABLE foo (a INT, b INT, c INT)\n\nSELECT IFNULL() FROM foo; -- error\nSELECT IFNULL(a) FROM foo; -- error\nSELECT IFNULL(a, b) FROM foo; -- OK\nSELECT IFNULL(a, b, c) FROM foo; -- error' In MySQL, the 'IFNULL()' function accepts strictly two arguments. So, only the 'SELECT IFNULL(a, b) FROM foo;' query is correct.", - "markdown": "Reports signature issues for built-in functions.\n\nThe inspection will report a wrong number of arguments, invalid keywords, wrong data types, and other issues.\n\nExample (MySQL):\n\n CREATE TABLE foo (a INT, b INT, c INT)\n\n SELECT IFNULL() FROM foo; -- error\n SELECT IFNULL(a) FROM foo; -- error\n SELECT IFNULL(a, b) FROM foo; -- OK\n SELECT IFNULL(a, b, c) FROM foo; -- error\n\nIn MySQL, the `IFNULL()` function accepts strictly two arguments. So, only the `SELECT IFNULL(a, b) FROM foo;`\nquery is correct." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlSignature", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlRedundantOrderingDirectionInspection", - "shortDescription": { - "text": "Redundant ordering direction" - }, - "fullDescription": { - "text": "Reports redundant ordering directions like ASC and DESC in ORDER BY clauses. Example (MySQL): 'CREATE TABLE foo(a INT, b INT, c INT);\nSELECT * FROM foo ORDER BY a ASC, b DESC, c ASC;' The ORDER BY keyword sorts the records in the ascending order by default. So, the 'ASC' keyword for 'a' and 'c' columns is redundant.", - "markdown": "Reports redundant ordering directions like ASC and DESC in ORDER BY clauses.\n\nExample (MySQL):\n\n CREATE TABLE foo(a INT, b INT, c INT);\n SELECT * FROM foo ORDER BY a ASC, b DESC, c ASC;\n\nThe ORDER BY keyword sorts the records in the ascending order by default. So, the `ASC` keyword for `a` and\n`c` columns is redundant." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlRedundantOrderingDirection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "OraOverloadInspection", - "shortDescription": { - "text": "Overloading errors" - }, - "fullDescription": { - "text": "Reports invalid cases of subprogram overloading in Oracle. Example (Oracle): 'DECLARE\n SUBTYPE fff IS BINARY_INTEGER;\n SUBTYPE ggg IS NATURAL;\n PROCEDURE foo (a IN ggg) IS BEGIN NULL; END;\n PROCEDURE foo (a IN fff) IS BEGIN NULL; END;\nBEGIN\n NULL;\nEND;' You cannot overload subprograms which parameters differ only in subtypes. For example, you cannot overload procedures where one accepts a BINARY INTEGER parameter and the other accepts a NATURAL parameter. For more information about restrictions on procedure overloading, see Restrictions on Overloading at docs.oracle.com.", - "markdown": "Reports invalid cases of subprogram overloading in Oracle.\n\nExample (Oracle):\n\n DECLARE\n SUBTYPE fff IS BINARY_INTEGER;\n SUBTYPE ggg IS NATURAL;\n PROCEDURE foo (a IN ggg) IS BEGIN NULL; END;\n PROCEDURE foo (a IN fff) IS BEGIN NULL; END;\n BEGIN\n NULL;\n END;\n\nYou cannot overload subprograms which parameters differ only in subtypes. For example, you cannot overload procedures where one accepts a\nBINARY INTEGER parameter and the other accepts a NATURAL parameter. For more information about restrictions on procedure overloading,\nsee [Restrictions on Overloading at docs.oracle.com](https://docs.oracle.com/cd/B19306_01/appdev.102/b14261/subprograms.htm)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlOverload", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "Oracle", - "index": 123, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MysqlSpaceAfterFunctionNameInspection", - "shortDescription": { - "text": "Whitespace between the function name and the open parenthesis" - }, - "fullDescription": { - "text": "Reports any whitespace in a function call between the function name and the open parenthesis, which is not supported by default. Example (MySQL): 'SELECT MAX (qty) FROM orders;'", - "markdown": "Reports any whitespace in a function call between the function name and the open parenthesis, which is not supported by default.\n\nExample (MySQL):\n\n SELECT MAX (qty) FROM orders;\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "MysqlSpaceAfterFunctionName", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "MySQL", - "index": 142, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlAutoIncrementDuplicateInspection", - "shortDescription": { - "text": "Auto-increment duplicate" - }, - "fullDescription": { - "text": "Reports tables that contain two columns with an automatic increment. In MySQL, Microsoft SQL Server, and Db2 dialects, a table can have only one field with a auto-increment option, and this field must be a key. Example (MySQL): 'CREATE TABLE my_table\n(\n id INT AUTO_INCREMENT,\n c2 INT AUTO_INCREMENT,\n);' The AUTO_INCREMENT constraint for 'c2' will be highlighted as 'c1' already has this constraint. To fix the warning, you can make 'id' a primary key and delete AUTO_INCREMENT for 'c2'. 'CREATE TABLE my_table\n(\n id INT AUTO_INCREMENT PRIMARY KEY,\n c2 INT,\n);'", - "markdown": "Reports tables that contain two columns with an automatic increment. In MySQL, Microsoft SQL Server, and Db2 dialects, a table can have only one field with a auto-increment option, and this field must be a key.\n\nExample (MySQL):\n\n CREATE TABLE my_table\n (\n id INT AUTO_INCREMENT,\n c2 INT AUTO_INCREMENT,\n );\n\nThe AUTO_INCREMENT constraint for `c2` will be highlighted as `c1` already has this constraint. To fix the warning,\nyou can make `id` a primary key and delete AUTO_INCREMENT for `c2`.\n\n CREATE TABLE my_table\n (\n id INT AUTO_INCREMENT PRIMARY KEY,\n c2 INT,\n );\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlAutoIncrementDuplicate", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlStringLengthExceededInspection", - "shortDescription": { - "text": "Implicit string truncation" - }, - "fullDescription": { - "text": "Reports variables that exceed the defined length in characters. Example (Microsoft SQL Server): 'CREATE PROCEDURE test() AS\nBEGIN\nDECLARE myVarOk VARCHAR(5) = 'abcde';\nDECLARE myVarExceeded VARCHAR(5) = 'abcde12345';\n\nSET myVarOk = 'xyz';\nSET myVarExceeded = '123456789';\nEND;' The 'myVarExceeded' variable is defined as 'VARCHAR(5)' but both assigned values (''abcde12345'' and ''123456789'') exceed this limitation. You can truncate assigned values or increase the defined length. To increase the length, use the Increase type length quick-fix. After the quick-fix is applied: 'CREATE PROCEDURE test() AS\nBEGIN\nDECLARE myVarOk VARCHAR(5) = 'abcde';\nDECLARE myVarExceeded VARCHAR(10) = 'abcde12345';\n\nSET myVarOk = 'xyz';\nSET myVarExceeded = '123456789';\nEND;'", - "markdown": "Reports variables that exceed the defined length in characters.\n\nExample (Microsoft SQL Server):\n\n CREATE PROCEDURE test() AS\n BEGIN\n DECLARE myVarOk VARCHAR(5) = 'abcde';\n DECLARE myVarExceeded VARCHAR(5) = 'abcde12345';\n\n SET myVarOk = 'xyz';\n SET myVarExceeded = '123456789';\n END;\n\nThe `myVarExceeded` variable is defined as `VARCHAR(5)` but both assigned values (`'abcde12345'` and\n`'123456789'`) exceed this limitation. You can truncate assigned values or increase the defined length.\nTo increase the length, use the **Increase type length** quick-fix.\n\nAfter the quick-fix is applied:\n\n CREATE PROCEDURE test() AS\n BEGIN\n DECLARE myVarOk VARCHAR(5) = 'abcde';\n DECLARE myVarExceeded VARCHAR(10) = 'abcde12345';\n\n SET myVarOk = 'xyz';\n SET myVarExceeded = '123456789';\n END;\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlStringLengthExceeded", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MysqlParsingInspection", - "shortDescription": { - "text": "Unsupported syntax in pre-8.0 versions" - }, - "fullDescription": { - "text": "Reports invalid usages of UNION in queries. The inspection works in MySQL versions that are earlier than 8.0. Example (MySQL): 'SELECT * FROM (SELECT 1 UNION (SELECT 1 UNION SELECT 2)) a;'", - "markdown": "Reports invalid usages of UNION in queries.\n\nThe inspection works in MySQL versions that are earlier than 8.0.\n\nExample (MySQL):\n\n\n SELECT * FROM (SELECT 1 UNION (SELECT 1 UNION SELECT 2)) a;\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "MysqlParsing", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "MySQL", - "index": 142, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlCallNotationInspection", - "shortDescription": { - "text": "Using of named and positional arguments" - }, - "fullDescription": { - "text": "Reports calls in which positional arguments go after the named ones. Works in PostgreSQL, Oracle, and Db2. Example (In PostgreSQL): 'CREATE FUNCTION foo(a int, b int, c int) RETURNS int\n LANGUAGE plpgsql AS\n$$\nBEGIN\n RETURN a + b + c;\nEND\n$$;\nSELECT foo(a => 1, b => 2, c => 3);\n -- `3` goes after the named argument\nSELECT foo(1, b => 2, 3);\n -- `1` and `3` go after the named argument\nSELECT foo(b => 2, 1, 3);'", - "markdown": "Reports calls in which positional arguments go after the named ones. Works in PostgreSQL, Oracle, and Db2.\n\nExample (In PostgreSQL):\n\n CREATE FUNCTION foo(a int, b int, c int) RETURNS int\n LANGUAGE plpgsql AS\n $$\n BEGIN\n RETURN a + b + c;\n END\n $$;\n SELECT foo(a => 1, b => 2, c => 3);\n -- `3` goes after the named argument\n SELECT foo(1, b => 2, 3);\n -- `1` and `3` go after the named argument\n SELECT foo(b => 2, 1, 3);\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "SqlCallNotation", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlShadowingAliasInspection", - "shortDescription": { - "text": "Column is shadowed by alias" - }, - "fullDescription": { - "text": "Reports SELECT aliases with names that match column names in the FROM clause. Example (MySQL): 'CREATE TABLE foo (a INT, b INT, c INT);\nSELECT a b, c FROM foo;' The 'a' column uses the 'b' alias but the 'b' name is also used by the column from the 'foo' table.", - "markdown": "Reports SELECT aliases with names that match column names in the FROM clause.\n\nExample (MySQL):\n\n CREATE TABLE foo (a INT, b INT, c INT);\n SELECT a b, c FROM foo;\n\nThe `a` column uses the `b` alias but the `b` name is also used by the column from the `foo`\ntable." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlShadowingAlias", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlUnreachableCodeInspection", - "shortDescription": { - "text": "Unreachable code" - }, - "fullDescription": { - "text": "Reports unreachable statements inside SQL routines. Example (Microsoft SQL Server): 'CREATE FUNCTION foo() RETURNS INT AS\nBEGIN\n THROW;\n RETURN 1;\nEND;' In Microsoft SQL Server, the 'THROW' statement raises an exception and transfers execution to the CATCH block of the TRY...CATCH construct. Therefore, the 'RETURN 1;' part will never be executed.", - "markdown": "Reports unreachable statements inside SQL routines.\n\nExample (Microsoft SQL Server):\n\n CREATE FUNCTION foo() RETURNS INT AS\n BEGIN\n THROW;\n RETURN 1;\n END;\n\nIn Microsoft SQL Server, the `THROW` statement raises an exception and transfers execution to the CATCH block of the TRY...CATCH\nconstruct. Therefore, the `RETURN 1;` part will never be executed." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlUnreachable", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlResolveInspection", - "shortDescription": { - "text": "Unresolved reference" - }, - "fullDescription": { - "text": "Reports unresolved SQL references. Example (MySQL): 'CREATE TABLE users(id INT, name VARCHAR(40));\nCREATE TABLE admins(id INT, col1 INT);\n\nSELECT users.id, admins.id FROM admins WHERE admins.id > 1;' The 'users.id' column is unresolved because the 'users' table is missing in the FROM clause.", - "markdown": "Reports unresolved SQL references.\n\nExample (MySQL):\n\n CREATE TABLE users(id INT, name VARCHAR(40));\n CREATE TABLE admins(id INT, col1 INT);\n\n SELECT users.id, admins.id FROM admins WHERE admins.id > 1;\n\nThe `users.id` column is unresolved because the `users` table is missing in the FROM clause." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "SqlResolve", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlRedundantLimitInspection", - "shortDescription": { - "text": "Redundant row limiting in queries" - }, - "fullDescription": { - "text": "Reports redundant row limiting clauses like FETCH and LIMIT in queries. Example (PostgreSQL): 'CREATE TABLE foo(a INT);\n\nSELECT * FROM foo WHERE EXISTS(SELECT * FROM foo LIMIT 2);\nSELECT * FROM foo WHERE EXISTS(SELECT * FROM foo FETCH FIRST 2 ROWS ONLY);' To fix the warning, you can add OFFSET to limiting clauses. If OFFSET is missing, then LIMIT is redundant because the usage of LIMIT does not influence the operation result of EXISTS. In case with OFFSET, we skip first 'N' rows and this will influence the output. 'SELECT * FROM foo WHERE EXISTS(SELECT * FROM foo OFFSET 1 ROW LIMIT 2);\nSELECT * FROM foo WHERE EXISTS(SELECT * FROM foo OFFSET 1 ROW FETCH FIRST 2 ROWS ONLY);'", - "markdown": "Reports redundant row limiting clauses like FETCH and LIMIT in queries.\n\nExample (PostgreSQL):\n\n CREATE TABLE foo(a INT);\n\n SELECT * FROM foo WHERE EXISTS(SELECT * FROM foo LIMIT 2);\n SELECT * FROM foo WHERE EXISTS(SELECT * FROM foo FETCH FIRST 2 ROWS ONLY);\n\nTo fix the warning, you can add OFFSET to limiting clauses. If OFFSET is missing, then LIMIT is redundant because\nthe usage of LIMIT does not influence the operation result of EXISTS. In case with OFFSET, we skip first `N` rows and this will\ninfluence the output.\n\n SELECT * FROM foo WHERE EXISTS(SELECT * FROM foo OFFSET 1 ROW LIMIT 2);\n SELECT * FROM foo WHERE EXISTS(SELECT * FROM foo OFFSET 1 ROW FETCH FIRST 2 ROWS ONLY);\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlRedundantLimit", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Performance" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlDerivedTableAliasInspection", - "shortDescription": { - "text": "Each derived table should have alias" - }, - "fullDescription": { - "text": "Reports derived tables without aliases. Example (MySQL): 'CREATE TABLE table1 (id INT, name VARCHAR(20), cats FLOAT);\nCREATE TABLE table2 (id INT, age INTEGER);\n\nSELECT id AS ID, name, cats, age\nFROM (SELECT table1.id, name, cats, age\nFROM table1\nJOIN table2 ON table1.id = table2.id);' According to Derived Tables at dev.mysql.com, an alias is mandatory. You can add the alias by using the Introduce alias quick-fix. After the quick-fix is applied: 'SELECT id AS ID, name, cats, age\nFROM (SELECT table1.id, name, cats, age\nFROM table1\nJOIN table2 ON table1.id = table2.id);'", - "markdown": "Reports derived tables without aliases.\n\nExample (MySQL):\n\n CREATE TABLE table1 (id INT, name VARCHAR(20), cats FLOAT);\n CREATE TABLE table2 (id INT, age INTEGER);\n\n SELECT id AS ID, name, cats, age\n FROM (SELECT table1.id, name, cats, age\n FROM table1\n JOIN table2 ON table1.id = table2.id);\n\nAccording to [Derived Tables at dev.mysql.com](https://dev.mysql.com/doc/refman/8.0/en/derived-tables.html), an alias is\nmandatory. You can add the alias by using the **Introduce alias** quick-fix.\n\nAfter the quick-fix is applied:\n\n SELECT id AS ID, name, cats, age\n FROM (SELECT table1.id, name, cats, age\n FROM table1\n JOIN table2 ON table1.id = table2.id);\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlDerivedTableAlias", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlCaseVsCoalesceInspection", - "shortDescription": { - "text": "Using CASE instead of COALESCE function and vice versa" - }, - "fullDescription": { - "text": "Reports situations when CASE and COALESCE calls are interchangeable. This inspection has the following intention actions: Replace with 'COALESCE' call and the opposite one Replace with CASE expression. Example (MySQL): 'SELECT\n -- this CASE may be replaced by COALESCE\n\tCASE\n\t\tWHEN C1 IS NOT NULL THEN C1\n\t\tELSE 0\n\t\tEND\nFROM dual;' In the example, the CASE statement can be replaced with 'SELECT COALESCE(C1, 0)' that produces the same output. If you prefer using CASE expressions, select the Prefer CASE expressions over COALESCE function option on the inspection page.", - "markdown": "Reports situations when CASE and COALESCE calls are interchangeable. This inspection has the following intention actions: **Replace\nwith 'COALESCE' call** and the opposite one **Replace with CASE expression** .\n\nExample (MySQL):\n\n SELECT\n -- this CASE may be replaced by COALESCE\n \tCASE\n \t\tWHEN C1 IS NOT NULL THEN C1\n \t\tELSE 0\n \t\tEND\n FROM dual;\n\nIn the example, the CASE statement can be replaced with `SELECT COALESCE(C1, 0)` that produces the same output.\n\nIf you prefer using CASE expressions, select the **Prefer CASE expressions over COALESCE function** option on\nthe inspection page." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlCaseVsCoalesce", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlRedundantCodeInCoalesceInspection", - "shortDescription": { - "text": "Redundant code in COALESCE call" - }, - "fullDescription": { - "text": "Reports all the arguments except for the first expression that does not evaluate to NULL in COALESCE functions. Example (MySQL): 'SELECT COALESCE(NULL, NULL, NULL, 42, NULL, 'string') as a;' The first NOT NULL argument is '42', all other arguments will be grayed out.", - "markdown": "Reports all the arguments except for the first expression that does not evaluate to NULL in COALESCE functions.\n\nExample (MySQL):\n\n SELECT COALESCE(NULL, NULL, NULL, 42, NULL, 'string') as a;\n\nThe first NOT NULL argument is `42`, all other arguments will be grayed out." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlRedundantCodeInCoalesce", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlAggregatesInspection", - "shortDescription": { - "text": "Aggregate-related problems" - }, - "fullDescription": { - "text": "Reports invalid usages of SQL aggregate functions. The following situations are considered: Columns that are used in HAVING and ORDER BY clauses but are missed in GROUP BY clauses. 'CREATE TABLE foo(id INT PRIMARY KEY, a INT, b INT);\nSELECT a, MAX(b) FROM foo GROUP BY a HAVING b > 0;\nSELECT * FROM foo GROUP BY a ORDER BY b;' This rule does not apply when grouping is made by the primary key. 'SELECT * FROM foo GROUP BY id ORDER BY b;' Aggregate functions in a wrong context. Usually, you can use aggregate functions in the following contexts: a list of expressions in SELECT; in HAVING and ORDER BY sections; and other dialect-specific cases. The following queries will display an error. 'SELECT a FROM foo WHERE MAX(b) > 0;\nSELECT a FROM foo GROUP BY MAX(a);' Nested calls of aggregate functions. 'SELECT MAX(SUM(a)) FROM foo GROUP BY a;' This rule does not apply to analytic functions. The following query is valid and correct. 'SELECT MAX(SUM(a) OVER ()) FROM foo;' Usages of HAVING without aggregate functions. In this case, consider rewriting your code using the WHERE section. 'SELECT a, MAX(b) FROM foo GROUP BY a HAVING a > 0;'", - "markdown": "Reports invalid usages of SQL aggregate functions.\n\nThe following situations are considered:\n\n* Columns that are used in HAVING and ORDER BY clauses but are missed in GROUP BY clauses.\n\n CREATE TABLE foo(id INT PRIMARY KEY, a INT, b INT);\n SELECT a, MAX(b) FROM foo GROUP BY a HAVING b > 0;\n SELECT * FROM foo GROUP BY a ORDER BY b;\n\n This rule does not apply when grouping is made by the primary key.\n\n SELECT * FROM foo GROUP BY id ORDER BY b;\n\n* Aggregate functions in a wrong context. Usually, you can use aggregate functions in the following contexts: a list of expressions in\n SELECT; in HAVING and ORDER BY sections; and other dialect-specific cases. The following queries will display an error.\n\n SELECT a FROM foo WHERE MAX(b) > 0;\n SELECT a FROM foo GROUP BY MAX(a);\n\n* Nested calls of aggregate functions.\n\n SELECT MAX(SUM(a)) FROM foo GROUP BY a;\n\n This rule does not apply to analytic functions. The following query is valid and correct.\n\n SELECT MAX(SUM(a) OVER ()) FROM foo;\n\n* Usages of HAVING without aggregate functions. In this case, consider rewriting your code using the WHERE section.\n\n SELECT a, MAX(b) FROM foo GROUP BY a HAVING a > 0;\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlAggregates", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Security" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlMissingColumnAliasesInspection", - "shortDescription": { - "text": "Missing column aliases" - }, - "fullDescription": { - "text": "Reports queries without explicit aliases in output expressions (for example, in the SELECT statement). Example (PostgreSQL): 'CREATE TABLE foo(a INT, b INT);\n\nSELECT 1, a + 1 AS A2, MAX(b) AS M\nFROM foo;'", - "markdown": "Reports queries without explicit aliases in output expressions (for example, in the SELECT statement).\n\nExample (PostgreSQL):\n\n CREATE TABLE foo(a INT, b INT);\n\n SELECT 1, a + 1 AS A2, MAX(b) AS M\n FROM foo;\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlMissingColumnAliases", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlAddNotNullColumnInspection", - "shortDescription": { - "text": "Adding not null column without default value" - }, - "fullDescription": { - "text": "Reports attempts to create NOT NULL columns without DEFAULT values. Example (Microsoft SQL Server): 'CREATE TABLE foo (a INT, b INT)\n\nALTER TABLE foo ADD c INT NOT NULL;' By default, a column holds NULL values. In the example, we use the NOT NULL constraint that enforces a column not to accept NULL values. If we prohibit to use NULL values, we must set the DEFAULT value that SQL can use when we create a new record. 'ALTER TABLE foo ADD c INT NOT NULL DEFAULT 42;' You can quickly add the DEFAULT value by using the Add DEFAULT value quick-fix.", - "markdown": "Reports attempts to create NOT NULL columns without DEFAULT values.\n\nExample (Microsoft SQL Server):\n\n CREATE TABLE foo (a INT, b INT)\n\n ALTER TABLE foo ADD c INT NOT NULL;\n\nBy default, a column holds NULL values. In the example, we use the NOT NULL constraint that enforces a column not to accept NULL values.\nIf we prohibit to use NULL values, we must set the DEFAULT value that SQL can use when we create a new record.\n\n ALTER TABLE foo ADD c INT NOT NULL DEFAULT 42;\n\nYou can quickly add the DEFAULT value by using the **Add DEFAULT value** quick-fix." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlAddNotNullColumn", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MongoJSExtResolveInspection", - "shortDescription": { - "text": "Resolution problems" - }, - "fullDescription": { - "text": "Reports unresolved references in MongoDB and JavaScript code.", - "markdown": "Reports unresolved references in MongoDB and JavaScript code." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "MongoJSResolve", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "MongoJS", - "index": 89, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlJoinCountInspection", - "shortDescription": { - "text": "Excessive JOIN count" - }, - "fullDescription": { - "text": "Reports queries with excessive number of JOINS. Using too many joins is generally not recommended for performance reasons. 'SELECT * FROM a inner join b using(id) inner join c using (id) inner join d using (id) inner join e using (id)'", - "markdown": "Reports queries with excessive number of JOINS.\n\nUsing too many joins is generally\nnot recommended for performance reasons.\n\n SELECT * FROM a inner join b using(id) inner join c using (id) inner join d using (id) inner join e using (id)\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlJoinCount", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Performance" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlIllegalCursorStateInspection", - "shortDescription": { - "text": "Illegal cursor state" - }, - "fullDescription": { - "text": "Reports illegal cursor states inside SQL routines. A routine has CLOSE or FETCH statements but a cursor might be closed. A routine has the OPEN statement but a cursor might be opened. Example (Microsoft SQL Server): 'CREATE TABLE t(col INT);\n\nCREATE PROCEDURE foo() AS\nBEGIN\nDECLARE my_cursor CURSOR FOR SELECT * FROM t;\nDECLARE a INT;\nFETCH my_cursor INTO a;\nCLOSE my_cursor;\nEND;' According to CLOSE (Transact-SQL) at docs.microsoft.com, CLOSE must be issued on an open cursor, and CLOSE is not allowed on cursors that have only been declared or are already closed. So, we need to open the cursor to fix the warning. 'CREATE PROCEDURE foo() AS\nBEGIN\nDECLARE my_cursor CURSOR FOR SELECT * FROM t;\nDECLARE a INT;\nOPEN my_cursor;\nFETCH my_cursor INTO a;\nCLOSE my_cursor;\nEND;'", - "markdown": "Reports illegal cursor states inside SQL routines.\n\n* A routine has CLOSE or FETCH statements but a cursor might be closed.\n* A routine has the OPEN statement but a cursor might be opened.\n\nExample (Microsoft SQL Server):\n\n CREATE TABLE t(col INT);\n\n CREATE PROCEDURE foo() AS\n BEGIN\n DECLARE my_cursor CURSOR FOR SELECT * FROM t;\n DECLARE a INT;\n FETCH my_cursor INTO a;\n CLOSE my_cursor;\n END;\n\nAccording to [CLOSE (Transact-SQL) at\ndocs.microsoft.com](https://docs.microsoft.com/en-us/sql/t-sql/language-elements/close-transact-sql), CLOSE must be issued on an open cursor, and CLOSE is not allowed on cursors that have only been declared or are\nalready closed. So, we need to open the cursor to fix the warning.\n\n CREATE PROCEDURE foo() AS\n BEGIN\n DECLARE my_cursor CURSOR FOR SELECT * FROM t;\n DECLARE a INT;\n OPEN my_cursor;\n FETCH my_cursor INTO a;\n CLOSE my_cursor;\n END;\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlIllegalCursorState", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlDuplicateColumnInspection", - "shortDescription": { - "text": "Duplicating column name in SELECT" - }, - "fullDescription": { - "text": "Reports duplicated names of column aliases in SELECT lists. Example (Sybase ASE): 'CREATE TABLE t1 (a TEXT, b INT, c INT);\n\nSELECT a AS x, b AS x FROM t1;' The 'x' alias name is used for 'a' and 'b' columns. These assignments are highlighted as errors because you cannot use identical alias names for columns in Sybase ASE.", - "markdown": "Reports duplicated names of column aliases in SELECT lists.\n\nExample (Sybase ASE):\n\n CREATE TABLE t1 (a TEXT, b INT, c INT);\n\n SELECT a AS x, b AS x FROM t1;\n\nThe `x` alias name is used for `a` and `b` columns. These assignments are highlighted as errors because\nyou cannot use identical alias names for columns in Sybase ASE." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlDuplicateColumn", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlIdentifierInspection", - "shortDescription": { - "text": "Identifier should be quoted" - }, - "fullDescription": { - "text": "Reports situations when you use SQL reserved keywords as identifier names in your query. Example (Microsoft SQL Server): 'CREATE TABLE select (identity INT IDENTITY NOT NULL, order INT NOT NULL);' We use 'select', 'identity', and 'order' as table and column names. But they are also reserved keywords in Microsoft SQL Server. Therefore, in order to use them as object names in the query, you must quote these identifiers. To quote them, you can use the Quote identifier quick-fix. After the quick-fix is applied: 'CREATE TABLE [select] ([identity] INT IDENTITY NOT NULL, [order] INT NOT NULL);'", - "markdown": "Reports situations when you use SQL reserved keywords as identifier names in your query.\n\nExample (Microsoft SQL Server):\n\n CREATE TABLE select (identity INT IDENTITY NOT NULL, order INT NOT NULL);\n\nWe use `select`, `identity`, and `order` as table and column names.\nBut they are also reserved keywords in Microsoft SQL Server.\nTherefore, in order to use them as object names in the query, you must quote these identifiers. To quote them, you can use the\n**Quote identifier** quick-fix.\n\nAfter the quick-fix is applied:\n\n CREATE TABLE [select] ([identity] INT IDENTITY NOT NULL, [order] INT NOT NULL);\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlIdentifier", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "com.intellij.css", - "version": "243.24609", - "rules": [ - { - "id": "CssInvalidFunction", - "shortDescription": { - "text": "Invalid function" - }, - "fullDescription": { - "text": "Reports an unknown CSS function or an incorrect function parameter.", - "markdown": "Reports an unknown [CSS function](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Functions) or an incorrect function parameter." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "CssInvalidFunction", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "CSS/Invalid elements", - "index": 30, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CssConvertColorToRgbInspection", - "shortDescription": { - "text": "Color could be replaced with rgb()" - }, - "fullDescription": { - "text": "Reports an 'hsl()' or 'hwb()' color function or a hexadecimal color notation. Suggests replacing such color value with an equivalent 'rgb()' or 'rgba()' color function. Example: '#0c0fff' After the quick-fix is applied: 'rgb(12, 15, 255)'.", - "markdown": "Reports an `hsl()` or `hwb()` color function or a hexadecimal color notation.\n\nSuggests replacing such color value with an equivalent `rgb()` or `rgba()` color function.\n\n**Example:**\n\n #0c0fff\n\nAfter the quick-fix is applied:\n\n rgb(12, 15, 255).\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CssConvertColorToRgbInspection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "CSS", - "index": 29, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CssOverwrittenProperties", - "shortDescription": { - "text": "Overwritten property" - }, - "fullDescription": { - "text": "Reports a duplicated CSS property within a ruleset. Respects shorthand properties. Example: '.foo {\n margin-bottom: 1px;\n margin-bottom: 1px; /* duplicates margin-bottom */\n margin: 0; /* overrides margin-bottom */\n}'", - "markdown": "Reports a duplicated CSS property within a ruleset. Respects shorthand properties.\n\n**Example:**\n\n\n .foo {\n margin-bottom: 1px;\n margin-bottom: 1px; /* duplicates margin-bottom */\n margin: 0; /* overrides margin-bottom */\n }\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CssOverwrittenProperties", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "CSS", - "index": 29, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CssInvalidNestedSelector", - "shortDescription": { - "text": "Invalid nested selector" - }, - "fullDescription": { - "text": "Reports a nested selector starting with an identifier or a functional notation.", - "markdown": "Reports a nested selector starting with an identifier or a functional notation." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CssInvalidNestedSelector", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "CSS/Invalid elements", - "index": 30, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CssInvalidHtmlTagReference", - "shortDescription": { - "text": "Invalid type selector" - }, - "fullDescription": { - "text": "Reports a CSS type selector that matches an unknown HTML element.", - "markdown": "Reports a CSS [type selector](https://developer.mozilla.org/en-US/docs/Web/CSS/Type_selectors) that matches an unknown HTML element." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CssInvalidHtmlTagReference", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "CSS/Invalid elements", - "index": 30, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CssMissingSemicolon", - "shortDescription": { - "text": "Missing semicolon" - }, - "fullDescription": { - "text": "Reports a missing semicolon at the end of a declaration.", - "markdown": "Reports a missing semicolon at the end of a declaration." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CssMissingSemicolon", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "CSS/Code style issues", - "index": 114, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CssInvalidCustomPropertyAtRuleName", - "shortDescription": { - "text": "Invalid @property name" - }, - "fullDescription": { - "text": "Reports an invalid custom property name. Custom property name should be prefixed with two dashes. Example: '@property invalid-property-name {\n ...\n}\n\n@property --valid-property-name {\n ...\n}'", - "markdown": "Reports an invalid custom property name. Custom property name should be prefixed with two dashes.\n\n**Example:**\n\n\n @property invalid-property-name {\n ...\n }\n\n @property --valid-property-name {\n ...\n }\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "CssInvalidCustomPropertyAtRuleName", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "CSS/Invalid elements", - "index": 30, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CssUnknownTarget", - "shortDescription": { - "text": "Unresolved file reference" - }, - "fullDescription": { - "text": "Reports an unresolved file reference, for example, an incorrect path in an '@import' statement.", - "markdown": "Reports an unresolved file reference, for example, an incorrect path in an `@import` statement." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "CssUnknownTarget", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "CSS/Invalid elements", - "index": 30, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CssInvalidCharsetRule", - "shortDescription": { - "text": "Misplaced or incorrect @charset" - }, - "fullDescription": { - "text": "Reports a misplaced '@charset' at-rule or an incorrect charset value.", - "markdown": "Reports a misplaced `@charset` at-rule or an incorrect charset value." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CssInvalidCharsetRule", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "CSS/Invalid elements", - "index": 30, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CssInvalidPseudoSelector", - "shortDescription": { - "text": "Invalid pseudo-selector" - }, - "fullDescription": { - "text": "Reports an incorrect CSS pseudo-class pseudo-element.", - "markdown": "Reports an incorrect CSS [pseudo-class](https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-classes) [pseudo-element](https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-elements)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "CssInvalidPseudoSelector", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "CSS/Invalid elements", - "index": 30, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CssInvalidCustomPropertyAtRuleDeclaration", - "shortDescription": { - "text": "Invalid @property declaration" - }, - "fullDescription": { - "text": "Reports a missing required syntax, inherits, or initial-value property in a declaration of a custom property.", - "markdown": "Reports a missing required [syntax](https://developer.mozilla.org/en-US/docs/web/css/@property/syntax), [inherits](https://developer.mozilla.org/en-US/docs/web/css/@property/inherits), or [initial-value](https://developer.mozilla.org/en-US/docs/web/css/@property/initial-value) property in a declaration of a custom property." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "CssInvalidCustomPropertyAtRuleDeclaration", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "CSS/Invalid elements", - "index": 30, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CssBrowserCompatibilityForProperties", - "shortDescription": { - "text": "Property is incompatible with selected browsers" - }, - "fullDescription": { - "text": "Reports a CSS property that is not supported by the specified browsers. Based on the MDN Compatibility Data.", - "markdown": "Reports a CSS property that is not supported by the specified browsers. Based on the [MDN Compatibility Data](https://github.com/mdn/browser-compat-data)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CssBrowserCompatibilityForProperties", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "CSS", - "index": 29, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CssInvalidMediaFeature", - "shortDescription": { - "text": "Invalid media feature" - }, - "fullDescription": { - "text": "Reports an unknown CSS media feature or an incorrect media feature value.", - "markdown": "Reports an unknown [CSS media feature](https://developer.mozilla.org/en-US/docs/Web/CSS/Media_Queries/Using_media_queries) or an incorrect media feature value." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "CssInvalidMediaFeature", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "CSS/Invalid elements", - "index": 30, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CssUnresolvedCustomProperty", - "shortDescription": { - "text": "Unresolved custom property" - }, - "fullDescription": { - "text": "Reports an unresolved reference to a custom property among the arguments of the 'var()' function.", - "markdown": "Reports an unresolved reference to a [custom property](https://developer.mozilla.org/en-US/docs/Web/CSS/--*) among the arguments of the `var()` function." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "CssUnresolvedCustomProperty", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "CSS/Invalid elements", - "index": 30, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CssUnknownProperty", - "shortDescription": { - "text": "Unknown property" - }, - "fullDescription": { - "text": "Reports an unknown CSS property or a property used in a wrong context. Add the unknown property to the 'Custom CSS properties' list to skip validation.", - "markdown": "Reports an unknown CSS property or a property used in a wrong context.\n\nAdd the unknown property to the 'Custom CSS properties' list to skip validation." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CssUnknownProperty", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "CSS/Invalid elements", - "index": 30, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CssMissingComma", - "shortDescription": { - "text": "Missing comma in selector list" - }, - "fullDescription": { - "text": "Reports a multi-line selector. Most likely this means that several single-line selectors are actually intended but a comma is missing at the end of one or several lines. Example: 'input /* comma has probably been forgotten */\n.button {\n margin: 1px;\n}'", - "markdown": "Reports a multi-line selector. Most likely this means that several single-line selectors are actually intended but a comma is missing at the end of one or several lines.\n\n**Example:**\n\n\n input /* comma has probably been forgotten */\n .button {\n margin: 1px;\n }\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CssMissingComma", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "CSS/Probable bugs", - "index": 146, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CssUnusedSymbol", - "shortDescription": { - "text": "Unused selector" - }, - "fullDescription": { - "text": "Reports a CSS class or an element IDs that appears in selectors but is not used in HTML. Note that complete inspection results are available only when running it via Code | Inspect Code or Code | Analyze Code | Run Inspection by Name. Due to performance reasons, style sheet files are not inspected on the fly.", - "markdown": "Reports a CSS class or an element IDs that appears in selectors but is not used in HTML.\n\n\nNote that complete inspection results are available only when running it via **Code \\| Inspect Code** or\n**Code \\| Analyze Code \\| Run Inspection by Name**.\nDue to performance reasons, style sheet files are not inspected on the fly." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CssUnusedSymbol", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "CSS", - "index": 29, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CssDeprecatedValue", - "shortDescription": { - "text": "Deprecated value" - }, - "fullDescription": { - "text": "Reports a deprecated CSS value. Suggests replacing the deprecated value with its valid equivalent.", - "markdown": "Reports a deprecated CSS value. Suggests replacing the deprecated value with its valid equivalent." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "CssDeprecatedValue", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "CSS", - "index": 29, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CssNonIntegerLengthInPixels", - "shortDescription": { - "text": "Non-integer length in pixels" - }, - "fullDescription": { - "text": "Reports a non-integer length in pixels. Example: 'width: 3.14px'", - "markdown": "Reports a non-integer length in pixels.\n\n**Example:**\n\n width: 3.14px\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CssNonIntegerLengthInPixels", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "CSS/Probable bugs", - "index": 146, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CssConvertColorToHexInspection", - "shortDescription": { - "text": "Color could be replaced with #-hex" - }, - "fullDescription": { - "text": "Reports an 'rgb()', 'hsl()', or other color function. Suggests replacing a color function with an equivalent hexadecimal notation. Example: 'rgb(12, 15, 255)' After the quick-fix is applied: '#0c0fff'.", - "markdown": "Reports an `rgb()`, `hsl()`, or other color function.\n\nSuggests replacing a color function with an equivalent hexadecimal notation.\n\n**Example:**\n\n rgb(12, 15, 255)\n\nAfter the quick-fix is applied:\n\n #0c0fff.\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CssConvertColorToHexInspection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "CSS", - "index": 29, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CssInvalidAtRule", - "shortDescription": { - "text": "Unknown at-rule" - }, - "fullDescription": { - "text": "Reports an unknown CSS at-rule.", - "markdown": "Reports an unknown [CSS at-rule](https://developer.mozilla.org/en-US/docs/Web/CSS/At-rule)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "CssInvalidAtRule", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "CSS/Invalid elements", - "index": 30, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CssNegativeValue", - "shortDescription": { - "text": "Negative property value" - }, - "fullDescription": { - "text": "Reports a negative value of a CSS property that is not expected to be less than zero, for example, object width or height.", - "markdown": "Reports a negative value of a CSS property that is not expected to be less than zero, for example, object width or height." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "CssNegativeValue", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "CSS/Invalid elements", - "index": 30, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CssNoGenericFontName", - "shortDescription": { - "text": "Missing generic font family name" - }, - "fullDescription": { - "text": "Verifies that the 'font-family' property contains a generic font family name as a fallback alternative. Generic font family names are: 'serif', 'sans-serif', 'cursive', 'fantasy', and 'monospace'.", - "markdown": "Verifies that the [font-family](https://developer.mozilla.org/en-US/docs/Web/CSS/font-family) property contains a generic font family name as a fallback alternative.\n\n\nGeneric font family names are: `serif`, `sans-serif`, `cursive`, `fantasy`,\nand `monospace`." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CssNoGenericFontName", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "CSS/Probable bugs", - "index": 146, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CssRedundantUnit", - "shortDescription": { - "text": "Redundant measure unit" - }, - "fullDescription": { - "text": "Reports a measure unit of a zero value where units are not required by the specification. Example: 'width: 0px'", - "markdown": "Reports a measure unit of a zero value where units are not required by the specification.\n\n**Example:**\n\n width: 0px\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CssRedundantUnit", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "CSS/Code style issues", - "index": 114, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CssInvalidPropertyValue", - "shortDescription": { - "text": "Invalid property value" - }, - "fullDescription": { - "text": "Reports an incorrect CSS property value.", - "markdown": "Reports an incorrect CSS property value." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "CssInvalidPropertyValue", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "CSS/Invalid elements", - "index": 30, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CssReplaceWithShorthandUnsafely", - "shortDescription": { - "text": "Properties may probably be replaced with a shorthand" - }, - "fullDescription": { - "text": "Reports a set of longhand CSS properties and suggests replacing an incomplete set of longhand CSS properties with a shorthand form, which is however not 100% equivalent in this case. For example, 2 properties: 'outline-color' and 'outline-style' may be replaced with a single 'outline'. Such replacement is not 100% equivalent because shorthands reset all omitted sub-values to their initial states. In this example, switching to the 'outline' shorthand means that 'outline-width' is also set to its initial value, which is 'medium'. This inspection doesn't handle full sets of longhand properties (when switching to shorthand is 100% safe). For such cases see the 'Properties may be safely replaced with a shorthand' inspection instead.", - "markdown": "Reports a set of longhand CSS properties and suggests replacing an incomplete set of longhand CSS properties with a shorthand form, which is however not 100% equivalent in this case.\n\n\nFor example, 2 properties: `outline-color` and `outline-style` may be replaced with a single `outline`.\nSuch replacement is not 100% equivalent because shorthands reset all omitted sub-values to their initial states.\nIn this example, switching to the `outline` shorthand means that `outline-width` is also set to its initial value,\nwhich is `medium`.\n\n\nThis inspection doesn't handle full sets of longhand properties (when switching to shorthand is 100% safe).\nFor such cases see the 'Properties may be safely replaced with a shorthand' inspection instead." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CssReplaceWithShorthandUnsafely", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "CSS", - "index": 29, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CssUnknownUnit", - "shortDescription": { - "text": "Unknown unit" - }, - "fullDescription": { - "text": "Reports an unknown unit.", - "markdown": "Reports an unknown unit." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "CssUnknownUnit", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "CSS/Invalid elements", - "index": 30, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CssInvalidImport", - "shortDescription": { - "text": "Misplaced @import" - }, - "fullDescription": { - "text": "Reports a misplaced '@import' statement. According to the specification, '@import' rules must precede all other types of rules, except '@charset' rules.", - "markdown": "Reports a misplaced `@import` statement.\n\n\nAccording to the [specification](https://developer.mozilla.org/en-US/docs/Web/CSS/@import),\n`@import` rules must precede all other types of rules, except `@charset` rules." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CssInvalidImport", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "CSS/Invalid elements", - "index": 30, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CssUnresolvedClassInComposesRule", - "shortDescription": { - "text": "Unresolved class in 'composes' rule" - }, - "fullDescription": { - "text": "Reports a CSS class reference in the 'composes' rule that cannot be resolved to any valid target. Example: '.className {/* ... */}\n\n .otherClassName {\n composes: className;\n }'", - "markdown": "Reports a CSS class reference in the ['composes'](https://github.com/css-modules/css-modules#composition) rule that cannot be resolved to any valid target.\n\n**Example:**\n\n\n .className {/* ... */}\n\n .otherClassName {\n composes: className;\n }\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "CssUnresolvedClassInComposesRule", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "CSS/Invalid elements", - "index": 30, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CssReplaceWithShorthandSafely", - "shortDescription": { - "text": "Properties may be safely replaced with a shorthand" - }, - "fullDescription": { - "text": "Reports a set of longhand properties. Suggests replacing a complete set of longhand CSS properties with an equivalent shorthand form. For example, 4 properties: 'padding-top', 'padding-right', 'padding-bottom', and 'padding-left' can be safely replaced with a single 'padding' property. Note that this inspection doesn't show up if the set of longhand properties is incomplete (e.g. only 3 'padding-xxx' properties in a ruleset) because switching to a shorthand may change the result. For such cases consider the 'Properties may probably be replaced with a shorthand' inspection.", - "markdown": "Reports a set of longhand properties. Suggests replacing a complete set of longhand CSS properties with an equivalent shorthand form.\n\n\nFor example, 4 properties: `padding-top`, `padding-right`, `padding-bottom`, and\n`padding-left`\ncan be safely replaced with a single `padding` property.\n\n\nNote that this inspection doesn't show up if the set of longhand properties is incomplete\n(e.g. only 3 `padding-xxx` properties in a ruleset)\nbecause switching to a shorthand may change the result.\nFor such cases consider the 'Properties may probably be replaced with a shorthand'\ninspection." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CssReplaceWithShorthandSafely", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "CSS", - "index": 29, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "com.intellij.kubernetes", - "version": "243.24609", - "rules": [ - { - "id": "KubernetesDeprecatedResources", - "shortDescription": { - "text": "Deprecated Kubernetes resources" - }, - "fullDescription": { - "text": "Report deprecated Kubernetes resource types.", - "markdown": "Report deprecated Kubernetes resource types. " - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "KubernetesDeprecatedResources", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Kubernetes", - "index": 33, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "KubernetesNonEditableResources", - "shortDescription": { - "text": "Non-editable Kubernetes resources" - }, - "fullDescription": { - "text": "Reports non-editable (read-only) Kubernetes resource types.", - "markdown": "Reports non-editable (read-only) Kubernetes resource types. " - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "KubernetesNonEditableResources", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Kubernetes", - "index": 33, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "KubernetesDeprecatedKeys", - "shortDescription": { - "text": "Deprecated Kubernetes resource properties" - }, - "fullDescription": { - "text": "Reports deprecated keys in Kubernetes resource files.", - "markdown": "Reports deprecated keys in Kubernetes resource files. " - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "KubernetesDeprecatedKeys", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Kubernetes", - "index": 33, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "KubernetesNonEditableKeys", - "shortDescription": { - "text": "Non-editable Kubernetes resource properties" - }, - "fullDescription": { - "text": "Reports non-editable (read-only) keys in Kubernetes resource files.", - "markdown": "Reports non-editable (read-only) keys in Kubernetes resource files. " - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "KubernetesNonEditableKeys", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Kubernetes", - "index": 33, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HelmChartMissingKeys", - "shortDescription": { - "text": "Missing Chart.yaml keys" - }, - "fullDescription": { - "text": "Reports missing required keys in Chart.yaml.", - "markdown": "Reports missing required keys in Chart.yaml. " - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "HelmChartMissingKeys", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Kubernetes", - "index": 33, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "KubernetesUnknownValues", - "shortDescription": { - "text": "Unknown Kubernetes YAML values" - }, - "fullDescription": { - "text": "Reports invalid values in Kubernetes resource files.", - "markdown": "Reports invalid values in Kubernetes resource files. " - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "KubernetesUnknownValues", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Kubernetes", - "index": 33, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "KubernetesUnknownKeys", - "shortDescription": { - "text": "Unknown Kubernetes YAML keys" - }, - "fullDescription": { - "text": "Reports unrecognized keys in Kubernetes resource files.", - "markdown": "Reports unrecognized keys in Kubernetes resource files. " - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "KubernetesUnknownKeys", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Kubernetes", - "index": 33, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HelmChartUnknownValues", - "shortDescription": { - "text": "Invalid Chart.yaml values" - }, - "fullDescription": { - "text": "Reports unrecognized values in Chart.yaml and requirements.yaml.", - "markdown": "Reports unrecognized values in Chart.yaml and requirements.yaml. " - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "HelmChartUnknownValues", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Kubernetes", - "index": 33, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "KubernetesMissingKeys", - "shortDescription": { - "text": "Missing Kubernetes YAML keys" - }, - "fullDescription": { - "text": "Reports missing required keys in Kubernetes resource files.", - "markdown": "Reports missing required keys in Kubernetes resource files. " - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "KubernetesMissingKeys", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Kubernetes", - "index": 33, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "KubernetesUnknownResourcesInspection", - "shortDescription": { - "text": "Unknown Kubernetes resources" - }, - "fullDescription": { - "text": "Reports unrecognized Kubernetes resource types.", - "markdown": "Reports unrecognized Kubernetes resource types. " - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "KubernetesUnknownResourcesInspection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Kubernetes", - "index": 33, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HelmChartUnknownKeys", - "shortDescription": { - "text": "Unknown Chart.yaml keys" - }, - "fullDescription": { - "text": "Reports unrecognized keys in Chart.yaml.", - "markdown": "Reports unrecognized keys in Chart.yaml. " - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "HelmChartUnknownKeys", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Kubernetes", - "index": 33, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "KubernetesDuplicatedEnvVars", - "shortDescription": { - "text": "Duplicated EnvVar definitions" - }, - "fullDescription": { - "text": "Reports duplicate EnvVars in Kubernetes container definitions.", - "markdown": "Reports duplicate EnvVars in Kubernetes container definitions. " - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "KubernetesDuplicatedEnvVars", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Kubernetes", - "index": 33, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "com.intellij.properties", - "version": "243.24609", - "rules": [ - { - "id": "UseEllipsisInPropertyInspection", - "shortDescription": { - "text": "Three dot characters instead of the ellipsis" - }, - "fullDescription": { - "text": "Reports three \"dot\" characters which are used instead of the ellipsis character for UTF-8 properties files.", - "markdown": "Reports three \"dot\" characters which are used instead of the ellipsis character for UTF-8 properties files." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "UseEllipsisInPropertyInspection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "Properties files", - "index": 38, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AlphaUnsortedPropertiesFile", - "shortDescription": { - "text": "Properties file or resource bundle is alphabetically unsorted" - }, - "fullDescription": { - "text": "Reports alphabetically unsorted resource bundles or .properties files.", - "markdown": "Reports alphabetically unsorted resource bundles or .properties files." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "AlphaUnsortedPropertiesFile", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "Properties files", - "index": 38, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnusedProperty", - "shortDescription": { - "text": "Unused property" - }, - "fullDescription": { - "text": "Reports properties that are not referenced outside of the .properties file they are contained in.", - "markdown": "Reports properties that are not referenced outside of the .properties file they are contained in." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "UnusedProperty", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "Properties files", - "index": 38, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "TrailingSpacesInProperty", - "shortDescription": { - "text": "Trailing spaces in property" - }, - "fullDescription": { - "text": "Reports properties whose keys or values end with a whitespace.", - "markdown": "Reports properties whose keys or values end with a whitespace." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "TrailingSpacesInProperty", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "Properties files", - "index": 38, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "WrongPropertyKeyValueDelimiter", - "shortDescription": { - "text": "Property key/value delimiter doesn't match code style settings" - }, - "fullDescription": { - "text": "Reports properties in which key or value delimiters do not match code style settings.", - "markdown": "Reports properties in which key or value delimiters do not match code style settings." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "WrongPropertyKeyValueDelimiter", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "Properties files", - "index": 38, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "DuplicatePropertyInspection", - "shortDescription": { - "text": "Duplicate property" - }, - "fullDescription": { - "text": "Reports duplicate property keys with different values, duplicate keys, or duplicate property values. Example: 'property1=value;\nproperty2=value;' The Options list allows selecting the area in which the inspection should search for duplicates.", - "markdown": "Reports duplicate property keys with different values, duplicate keys, or duplicate property values.\n\nExample:\n\n\n property1=value;\n property2=value;\n\nThe **Options** list allows selecting the area in which the inspection should search for duplicates." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "DuplicatePropertyInspection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "Properties files", - "index": 38, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "XPathView", - "version": "243.24609", - "rules": [ - { - "id": "XsltUnusedDeclaration", - "shortDescription": { - "text": "Unused variable or parameter" - }, - "fullDescription": { - "text": "Reports local variables and parameters that are never used.", - "markdown": "Reports local variables and parameters that are never used." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "XsltUnusedDeclaration", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "XSLT", - "index": 43, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantTypeConversion", - "shortDescription": { - "text": "Redundant type conversion" - }, - "fullDescription": { - "text": "Reports unnecessary type conversions. Type conversions are unnecessary when the argument type of a 'string()', 'number()', or 'boolean()' function is already the same as the function's return type or if the expected expression type is 'any'. Suggests removing the unnecessary conversion.", - "markdown": "Reports unnecessary type conversions. Type conversions are unnecessary when the argument type of a `string()`, `number()`, or `boolean()` function is already the same as the function's return type or if the expected expression type is `any`. Suggests removing the unnecessary conversion." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantTypeConversion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Performance" - } - }, - "relationships": [ - { - "target": { - "id": "XPath", - "index": 85, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CheckNodeTest", - "shortDescription": { - "text": "Unknown element or attribute name" - }, - "fullDescription": { - "text": "Reports names of elements or attributes that are used in an XPath-expression but are missing in the associated XML files and are not defined in the referenced schemas. Such names are often the result of typos and would otherwise probably only be discovered at runtime. Example: '<xsl:template match=\"h:txtarea\" />' If the 'h' is bound to the XHTML namespace, the inspection will report this part of the 'match' expression as an unknown element name because the correct name of the element is \"textarea\".", - "markdown": "Reports names of elements or attributes that are used in an XPath-expression but are missing in the associated XML files and are not defined in the referenced schemas. Such names are often the result of typos and would otherwise probably only be discovered at runtime.\n\n**Example:**\n\n\n <xsl:template match=\"h:txtarea\" />\n\n\nIf the `h` is bound to the XHTML namespace, the inspection will report this part of the `match` expression as an\nunknown element name because the correct name of the element is \"textarea\"." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CheckNodeTest", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "XPath", - "index": 85, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "XsltDeclarations", - "shortDescription": { - "text": "Incorrect declaration" - }, - "fullDescription": { - "text": "Reports duplicate declarations and illegal identifiers in XSLT variables, parameters, and named templates:", - "markdown": "Reports duplicate declarations and illegal identifiers in XSLT variables, parameters, and named templates:" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "XsltDeclarations", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "XSLT", - "index": 43, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HardwiredNamespacePrefix", - "shortDescription": { - "text": "Hardcoded namespace prefix" - }, - "fullDescription": { - "text": "Reports comparisons of the 'name()' function with a string that contains a colon (':'). Such usages usually indicate a hardcoded namespace prefix in the comparison. As a result, the code will break when run against XML that uses another prefix for the same namespace. Example: '<xsl:if test=\"name() = 'xlink:href'\">...<xsl:if>'", - "markdown": "Reports comparisons of the `name()` function with a string that contains a colon (`:`). Such usages usually indicate a hardcoded namespace prefix in the comparison. As a result, the code will break when run against XML that uses another prefix for the same namespace.\n\n**Example:**\n\n\n <xsl:if test=\"name() = 'xlink:href'\">...<xsl:if>\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "HardwiredNamespacePrefix", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "XPath", - "index": 85, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ImplicitTypeConversion", - "shortDescription": { - "text": "Implicit type conversion" - }, - "fullDescription": { - "text": "Reports implicit conversions between the predefined XPath-types 'STRING', 'NUMBER', 'BOOLEAN', and 'NODESET'. Helps to write XSLT scripts that are more expressive about types and prevents subtle bugs: Example: '<xsl:if test=\"foo\" />' is not the same as '<xsl:if test=\"string(foo)\" />' The first test checks whether the element \"foo\" exists ('count(foo) > 0)'; the latter one however is only true if the element actually contains any text ('string-length(foo) > 0'). Suggests making the type conversion more explicit. Use the following options to configure the inspection: Enable or disable implicit conversions between certain types Always report explicit conversions that do not result in the actually expected type, for example, '<xsl:if test=\"number(foo)\" />' Ignore conversion from 'NODESET' to 'BOOLEAN' by using the 'string()' function as a shortcut for writing 'string-length() > 0'.", - "markdown": "Reports implicit conversions between the predefined XPath-types `STRING`, `NUMBER`, `BOOLEAN`, and `NODESET`. Helps to write XSLT scripts that are more expressive about types and prevents subtle bugs:\n\n**Example:**\n\n\n <xsl:if test=\"foo\" />\n\nis not the same as\n\n\n <xsl:if test=\"string(foo)\" />\n\n\nThe first test checks whether the element \"foo\" exists (`count(foo) > 0)`; the latter one however is only\ntrue if the element actually contains any text (`string-length(foo) > 0`). Suggests making\nthe type conversion more explicit.\n\n\nUse the following options to configure the inspection:\n\n* Enable or disable implicit conversions between certain types\n* Always report explicit conversions that do not result in the actually expected type, for example, `<xsl:if test=\"number(foo)\" />`\n* Ignore conversion from `NODESET` to `BOOLEAN` by using the `string()` function as a shortcut for writing `string-length() > 0`." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ImplicitTypeConversion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "XPath", - "index": 85, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IndexZeroUsage", - "shortDescription": { - "text": "XPath predicate with index 0" - }, - "fullDescription": { - "text": "Reports usages of '0' in a predicate index or in a comparison with the function 'position()'. Such usage is almost always a bug because in XPath, the index starts at '1', not at '0'. Example: '//someelement[position() = 0]' or '//something[0]'", - "markdown": "Reports usages of `0` in a predicate index or in a comparison with the function `position()`. Such usage is almost always a bug because in XPath, the index starts at `1`, *not* at `0`.\n\n**Example:**\n\n\n //someelement[position() = 0] or //something[0]\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "IndexZeroUsage", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "XPath", - "index": 85, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "XsltTemplateInvocation", - "shortDescription": { - "text": "Incorrect template invocation" - }, - "fullDescription": { - "text": "Reports missing arguments, passing arguments that are not declared, and passing arguments for parameters more than once in named XSLT template invocations. Parameters declared with a default value are optional and will not be reported as missing.", - "markdown": "Reports missing arguments, passing arguments that are not declared, and passing arguments for parameters more than once in named XSLT template invocations.\n\n\nParameters declared with a default value are optional and will not be reported as missing." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "XsltTemplateInvocation", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "XSLT", - "index": 43, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "XsltVariableShadowing", - "shortDescription": { - "text": "Shadowed variable" - }, - "fullDescription": { - "text": "Reports shadowed XSLT variables.", - "markdown": "Reports shadowed XSLT variables." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "XsltVariableShadowing", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "XSLT", - "index": 43, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "Docker", - "version": "243.24609", - "rules": [ - { - "id": "DockerFileRunCommandMissingContinuation", - "shortDescription": { - "text": "Missing continuation character for ''RUN'' command" - }, - "fullDescription": { - "text": "Reports missing continuation characters in 'RUN' command. In the shell form of 'RUN' command you should use a '\\' (backslash) to continue a single 'RUN' instruction onto the next line. Otherwise, Docker build will fail. Examples: '# the command below will fail\n RUN /bin/bash -c 'source $HOME/.bashrc;\n echo $HOME'' After the quick-fix is applied: 'RUN /bin/bash -c 'source $HOME/.bashrc; \\\n echo $HOME''", - "markdown": "Reports missing continuation characters in `RUN` command.\n\n\nIn the *shell* form of `RUN` command you should use a '\\\\' (backslash)\nto continue a single `RUN` instruction onto the next line.\nOtherwise, Docker build will fail.\n\n**Examples:**\n\n\n # the command below will fail\n RUN /bin/bash -c 'source $HOME/.bashrc;\n echo $HOME'\n\nAfter the quick-fix is applied:\n\n\n RUN /bin/bash -c 'source $HOME/.bashrc; \\\n echo $HOME'\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "DockerFileRunCommandMissingContinuation", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Dockerfile", - "index": 44, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "DockerJsonFormStringLiterals", - "shortDescription": { - "text": "A single quoted string in JSON array format" - }, - "fullDescription": { - "text": "Reports a single quoted string in JSON array format. JSON array form, must use double-quotes (\") around words not single-quotes ('). Otherwise, Docker build will fail. Examples: '# all the commands below will fail\n RUN ['/bin/bash', '-c', 'echo hello']\n ADD ['binaryA.jar', 'binary2.jar', 'destination/']\n COPY ['binaryA.jar', 'binary2.jar', 'destination/']' After the quick-fix is applied: 'RUN [\"/bin/bash\", \"-c\", \"echo hello\"]\n ADD [\"binaryA.jar\", \"binary2.jar\", \"destination/\"]\n COPY [\"binaryA.jar\", \"binary2.jar\", \"destination/\"]'", - "markdown": "Reports a single quoted string in JSON array format.\n\n\nJSON array form, must use double-quotes (\") around words not single-quotes ('). Otherwise, Docker build will fail.\n\n**Examples:**\n\n\n # all the commands below will fail\n RUN ['/bin/bash', '-c', 'echo hello']\n ADD ['binaryA.jar', 'binary2.jar', 'destination/']\n COPY ['binaryA.jar', 'binary2.jar', 'destination/']\n\nAfter the quick-fix is applied:\n\n\n RUN [\"/bin/bash\", \"-c\", \"echo hello\"]\n ADD [\"binaryA.jar\", \"binary2.jar\", \"destination/\"]\n COPY [\"binaryA.jar\", \"binary2.jar\", \"destination/\"]\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "DockerJsonFormStringLiterals", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Dockerfile", - "index": 44, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "DockerFileArgumentCount", - "shortDescription": { - "text": "Wrong number of arguments" - }, - "fullDescription": { - "text": "Reports invalid number of arguments for the Dockerfile commands. Docker build will fail after reaching the instruction with an invalid number of arguments.", - "markdown": "Reports invalid number of arguments for the Dockerfile commands.\n\n\nDocker build will fail after reaching the instruction with an invalid number of arguments." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "DockerFileArgumentCount", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Dockerfile", - "index": 44, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ComposeUnknownValues", - "shortDescription": { - "text": "Unknown docker-compose YAML values" - }, - "fullDescription": { - "text": "Reports unrecognized values in Docker Compose files.", - "markdown": "Reports unrecognized values in Docker Compose files. " - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "ComposeUnknownValues", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Docker-compose", - "index": 135, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "DockerFileAddOrCopyPaths", - "shortDescription": { - "text": "Invalid destination for ''ADD''/''COPY'' commands" - }, - "fullDescription": { - "text": "Reports invalid destination directories in 'ADD' and 'COPY' commands. According to the Dockerfile specification, if multiple sources are specified, then the destination must be a directory, and it must end with a slash '/'. Otherwise, Docker build will fail. Examples: '# all the commands below will fail\n ADD textA.txt textB.txt relativeDir\n ADD [\"binaryA.jar\", \"binary2.jar\", \"destination\"]\n COPY text3.txt text4.txt /absolute/path' After the quick-fix is applied: 'ADD textA.txt textB.txt relativeDir/\n ADD [\"binaryA.jar\", \"binary2.jar\", \"destination/\"]\n COPY text3.txt text4.txt /absolute/path/'", - "markdown": "Reports invalid destination directories in `ADD` and `COPY` commands.\n\n\nAccording to the [Dockerfile specification](https://docs.docker.com/engine/reference/builder/#add),\nif multiple sources are specified, then the destination must be a directory, and it must end with a slash '/'.\nOtherwise, Docker build will fail.\n\n**Examples:**\n\n\n # all the commands below will fail\n ADD textA.txt textB.txt relativeDir\n ADD [\"binaryA.jar\", \"binary2.jar\", \"destination\"]\n COPY text3.txt text4.txt /absolute/path\n\nAfter the quick-fix is applied:\n\n\n ADD textA.txt textB.txt relativeDir/\n ADD [\"binaryA.jar\", \"binary2.jar\", \"destination/\"]\n COPY text3.txt text4.txt /absolute/path/\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "DockerFileAddOrCopyPaths", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Dockerfile", - "index": 44, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ComposeMissingKeys", - "shortDescription": { - "text": "Missing docker-compose YAML keys" - }, - "fullDescription": { - "text": "Reports missing required keys in Docker Compose files.", - "markdown": "Reports missing required keys in Docker Compose files. " - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "ComposeMissingKeys", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Docker-compose", - "index": 135, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ComposeUnquotedPorts", - "shortDescription": { - "text": "Unquoted port mappings" - }, - "fullDescription": { - "text": "Reports unquoted port mappings in Docker Compose files. According to the Compose file specification, mapping ports in the 'HOST:CONTAINER' format may lead to erroneous results when using a container port lower than 60, because YAML parses numbers in the format 'xx:yy' as a base-60 value. For this reason, we recommend always explicitly specifying the port mappings as strings. Examples: 'ports:\n - 3000\n - 3000-3005\n - 22:22\n - 8080:8080' After the quick-fix is applied: 'ports:\n - \"3000\"\n - \"3000-3005\"\n - \"22:22\"\n - \"8080:8080\"'", - "markdown": "Reports unquoted port mappings in Docker Compose files.\n\n\nAccording to the [Compose file specification](https://docs.docker.com/compose/compose-file/compose-file-v3/#short-syntax-1),\nmapping ports in the `HOST:CONTAINER` format may lead to erroneous results when using a container port lower than 60,\nbecause YAML parses numbers in the format `xx:yy` as a base-60 value.\nFor this reason, we recommend always explicitly specifying the port mappings as strings.\n\n**Examples:**\n\n\n ports:\n - 3000\n - 3000-3005\n - 22:22\n - 8080:8080\n\nAfter the quick-fix is applied:\n\n\n ports:\n - \"3000\"\n - \"3000-3005\"\n - \"22:22\"\n - \"8080:8080\"\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ComposeUnquotedPorts", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Docker-compose", - "index": 135, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ComposeUnknownKeys", - "shortDescription": { - "text": "Unknown docker-compose YAML keys" - }, - "fullDescription": { - "text": "Reports unrecognized keys in Docker Compose files.", - "markdown": "Reports unrecognized keys in Docker Compose files. " - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "ComposeUnknownKeys", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Docker-compose", - "index": 135, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "DockerFileAssignments", - "shortDescription": { - "text": "Invalid spaces in ''key=value'' pair" - }, - "fullDescription": { - "text": "Reports incorrect spacing for key-value pairs in 'ARG', 'ENV', and 'LABEL' commands. While it is not explicitly specified in the Dockerfile specification, some combinations of spacing for key-value pairs are not allowed. Docker build will fail after reaching the problem instruction. Examples: The 'ARG' command does not allow any spaces around '=' 'ENV' and 'LABEL' do not allow spaces after '=' '# all the commands below will fail\n ARG answer = 42\n ARG version= \"1.0.0\"\n LABEL \"maintained.by\"= someone@gmail.com\n ENV JAVA_HOME= \"/docker-java-home\"' After the quick-fix is applied: 'ARG answer=2\n ARG version=\"1.0.0\"\n LABEL \"maintained.by\"=someone@gmail.com\n ENV JAVA_HOME=\"/docker-java-home\"'", - "markdown": "Reports incorrect spacing for key-value pairs in `ARG`, `ENV`, and `LABEL` commands.\n\n\nWhile it is not explicitly specified in the [Dockerfile specification](https://docs.docker.com/engine/reference/builder/#arg),\nsome combinations of spacing for key-value pairs are not allowed.\nDocker build will fail after reaching the problem instruction.\n\n**Examples:**\n\n* The `ARG` command does not allow any spaces around '='\n* `ENV` and `LABEL` do not allow spaces after '='\n\n\n # all the commands below will fail\n ARG answer = 42\n ARG version= \"1.0.0\"\n LABEL \"maintained.by\"= someone@gmail.com\n ENV JAVA_HOME= \"/docker-java-home\"\n\nAfter the quick-fix is applied:\n\n\n ARG answer=2\n ARG version=\"1.0.0\"\n LABEL \"maintained.by\"=someone@gmail.com\n ENV JAVA_HOME=\"/docker-java-home\"\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "DockerFileAssignments", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Dockerfile", - "index": 44, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "org.intellij.qodana", - "version": "243.24609", - "rules": [ - { - "id": "JsCoverageInspection", - "shortDescription": { - "text": "Check JavaScript and TypeScript source code coverage" - }, - "fullDescription": { - "text": "Reports methods, classes and files whose coverage is below a certain threshold.", - "markdown": "Reports methods, classes and files whose coverage is below a certain threshold." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JsCoverageInspection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Code Coverage", - "index": 53, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CyclomaticComplexityInspection", - "shortDescription": { - "text": "Code metrics" - }, - "fullDescription": { - "text": "Calculates cyclomatic complexity.", - "markdown": "Calculates cyclomatic complexity." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CyclomaticComplexityInspection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Qodana", - "index": 174, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "AngularJS", - "version": "243.24609", - "rules": [ - { - "id": "AngularInvalidImportedOrDeclaredSymbol", - "shortDescription": { - "text": "Invalid imported or declared symbol" - }, - "fullDescription": { - "text": "Reports any symbol that is declared, imported or exported by an Angular module or standalone component that is not a module, component, directive, or pipe or can’t be used in the context of the property.", - "markdown": "Reports any symbol that is declared, imported or exported by an Angular module or standalone component that is not a module, component, directive, or pipe or can't be used in the context of the property." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "AngularInvalidImportedOrDeclaredSymbol", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularRecursiveModuleImportExport", - "shortDescription": { - "text": "Recursive import or export of an Angular module or a standalone component" - }, - "fullDescription": { - "text": "Reports a cyclic dependency between Angular modules or standalone components.", - "markdown": "Reports a cyclic dependency between Angular modules or standalone components." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "AngularRecursiveModuleImportExport", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularNgOptimizedImage", - "shortDescription": { - "text": "Issues with ngSrc usage in img tags" - }, - "fullDescription": { - "text": "Reports issues related to usage of 'ngSrc' (NgOptimizedDirective) on 'img' tags. Following issues are reported: 'img' tags, which use 'src' instead of 'ngSrc' lack of 'width' and 'height', or 'fill' attributes when 'ngSrc' is used 'width' or 'height', and 'fill' attributes being present on the same element when 'ngSrc' is used", - "markdown": "Reports issues related to usage of `ngSrc` ([NgOptimizedDirective](https://angular.io/guide/image-directive)) on `img` tags.\n\n\nFollowing issues are reported:\n\n* `img` tags, which use `src` instead of `ngSrc`\n* lack of `width` and `height`, or `fill` attributes when `ngSrc` is used\n* `width` or `height`, and `fill` attributes being present on the same element when `ngSrc` is used" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "AngularNgOptimizedImage", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Performance" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularInvalidTemplateReferenceVariable", - "shortDescription": { - "text": "Unbound or ambiguous template reference variable" - }, - "fullDescription": { - "text": "Reports a template reference variable that is not assigned to a directive when using 'exportAs' or is assigned to multiple directives.", - "markdown": "Reports a template reference variable that is not assigned to a directive when using `exportAs` or is assigned to multiple directives." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "AngularInvalidTemplateReferenceVariable", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularMultipleStructuralDirectives", - "shortDescription": { - "text": "Multiple structural directives on one element" - }, - "fullDescription": { - "text": "Reports multiple structural directives ('*ngIf', '*ngFor', etc.) on one element.", - "markdown": "Reports multiple structural directives (`*ngIf`, `*ngFor`, etc.) on one element." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "AngularMultipleStructuralDirectives", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularUnsupportedSyntax", - "shortDescription": { - "text": "Unsupported Angular expression syntax" - }, - "fullDescription": { - "text": "Reports problems with Angular expression syntax, which is not supported in an older version of Angular.", - "markdown": "Reports problems with Angular expression syntax, which is not supported in an older version of Angular." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "AngularUnsupportedSyntax", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularNonStandaloneComponentImports", - "shortDescription": { - "text": "Invalid usage of imports in non-standalone components" - }, - "fullDescription": { - "text": "Reports usages of imports property in non-standalone component decorators. Imports can be used only in standalone components.", - "markdown": "Reports usages of imports property in non-standalone component decorators. Imports can be used only in standalone components." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "AngularNonStandaloneComponentImports", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularInvalidSelector", - "shortDescription": { - "text": "Missing or invalid selector" - }, - "fullDescription": { - "text": "Reports an invalid 'selector' property of a component or directive.", - "markdown": "Reports an invalid `selector` property of a component or directive." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "AngularInvalidSelector", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularNonEmptyNgContent", - "shortDescription": { - "text": "Content inside <ng-content> tag" - }, - "fullDescription": { - "text": "Reports a text or tag occurrence inside a '<ng-content>' tag used for content projection.", - "markdown": "Reports a text or tag occurrence inside a `<ng-content>` tag used for content projection." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "AngularNonEmptyNgContent", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularInsecureBindingToEvent", - "shortDescription": { - "text": "Insecure binding to event" - }, - "fullDescription": { - "text": "Reports a binding to an event property or attribute, for example, '[onclick]' or '[attr.onclick]' instead of '(click)'.", - "markdown": "Reports a binding to an event property or attribute, for example, `[onclick]` or `[attr.onclick]` instead of `(click)`." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "AngularInsecureBindingToEvent", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularDeferBlockOnTrigger", - "shortDescription": { - "text": "Problems with @defer `on` triggers" - }, - "fullDescription": { - "text": "Reports issues with triggers in `on` parameters in `@defer` block.", - "markdown": "Reports issues with triggers in \\`on\\` parameters in \\`@defer\\` block." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "AngularDeferBlockOnTrigger", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularMissingEventHandler", - "shortDescription": { - "text": "Missing event handler" - }, - "fullDescription": { - "text": "Reports a missing event handler statement for an event binding.", - "markdown": "Reports a missing event handler statement for an event binding." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "AngularMissingEventHandler", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularUndefinedBinding", - "shortDescription": { - "text": "Undefined binding" - }, - "fullDescription": { - "text": "Reports an undefined property, event, or structural directive bindings on elements.", - "markdown": "Reports an undefined property, event, or structural directive bindings on elements." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "AngularUndefinedBinding", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularForBlockNonIterableVar", - "shortDescription": { - "text": "Non-iterable type in @for block" - }, - "fullDescription": { - "text": "Reports that the type of variable to iterate over does not have '[Symbol.iterator]()' method, which returns an iterator.", - "markdown": "Reports that the type of variable to iterate over does not have `[Symbol.iterator]()` method, which returns an iterator." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "AngularForBlockNonIterableVar", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularBindingTypeMismatch", - "shortDescription": { - "text": "Invalid binding type" - }, - "fullDescription": { - "text": "Reports a mismatch between actual and expected directive binding type.", - "markdown": "Reports a mismatch between actual and expected directive binding type." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "AngularBindingTypeMismatch", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularUndefinedTag", - "shortDescription": { - "text": "Undefined tag" - }, - "fullDescription": { - "text": "Reports a tag defined by a component or directive out of the current scope.", - "markdown": "Reports a tag defined by a component or directive out of the current scope." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "AngularUndefinedTag", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularAmbiguousComponentTag", - "shortDescription": { - "text": "Ambiguous component tag" - }, - "fullDescription": { - "text": "Reports a component that is matched on an embedded template element '<ng-template>' or multiple components matched on any other element.", - "markdown": "Reports a component that is matched on an embedded template element `<ng-template>` or multiple components matched on any other element." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "AngularAmbiguousComponentTag", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularUndefinedModuleExport", - "shortDescription": { - "text": "Undefined export from Angular module" - }, - "fullDescription": { - "text": "Reports an export of an undeclared or unimported component, directive, or pipes from an Angular module.", - "markdown": "Reports an export of an undeclared or unimported component, directive, or pipes from an Angular module." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "AngularUndefinedModuleExport", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularInvalidI18nAttribute", - "shortDescription": { - "text": "Invalid i18n attribute" - }, - "fullDescription": { - "text": "Reports a problem with a 'i18n-*' attribute.", - "markdown": "Reports a problem with a `i18n-*` attribute." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "AngularInvalidI18nAttribute", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularIncorrectLetUsage", - "shortDescription": { - "text": "Incorrect usage of @let declaration" - }, - "fullDescription": { - "text": "Reports problems with @let declaration usages.", - "markdown": "Reports problems with @let declaration usages." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "AngularIncorrectLetUsage", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularInvalidAnimationTriggerAssignment", - "shortDescription": { - "text": "Invalid animation trigger assignment" - }, - "fullDescription": { - "text": "Reports an invalid assignment of an animation trigger. To attach an animation to an element, use '[@triggerName]=\"expression\"' or an attribute without a value '@triggerName'.", - "markdown": "Reports an invalid assignment of an animation trigger. To attach an animation to an element, use `[@triggerName]=\"expression\"` or an attribute without a value `@triggerName`." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "AngularInvalidAnimationTriggerAssignment", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularUnresolvedPipe", - "shortDescription": { - "text": "Unresolved pipe" - }, - "fullDescription": { - "text": "Reports an unresolved pipe.", - "markdown": "Reports an unresolved pipe." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "AngularUnresolvedPipe", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularUnusedComponentImport", - "shortDescription": { - "text": "Unused import in an Angular component declaration" - }, - "fullDescription": { - "text": "Reports unused imports in Angular components.", - "markdown": "Reports unused imports in Angular components." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "AngularUnusedComponentImport", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularIncorrectBlockUsage", - "shortDescription": { - "text": "Incorrect usage of Angular block" - }, - "fullDescription": { - "text": "Reports problems with Angular blocks.", - "markdown": "Reports problems with Angular blocks." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "AngularIncorrectBlockUsage", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularCliAddDependency", - "shortDescription": { - "text": "Angular CLI add dependency" - }, - "fullDescription": { - "text": "Suggests using the 'ng add' command to install the dependency. 'ng add' will use the package manager to download it and invoke a schematic which can update your project with configuration changes, add additional dependencies (e.g. polyfills), or scaffold package-specific initialization code.", - "markdown": "Suggests using the `ng add` command to install the dependency.\n\n`ng add` will use the package manager to download it and invoke a schematic\nwhich can update your project with configuration changes, add additional dependencies (e.g. polyfills),\nor scaffold package-specific initialization code." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "AngularCliAddDependency", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularInaccessibleSymbol", - "shortDescription": { - "text": "Inaccessible component member or directive input" - }, - "fullDescription": { - "text": "Reports access to invisible (private or protected) component member or directive input from an Angular template.", - "markdown": "Reports access to invisible (private or protected) component member or directive input from an Angular template." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "AngularInaccessibleSymbol", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Security" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularIncorrectTemplateDefinition", - "shortDescription": { - "text": "Incorrect component template definition" - }, - "fullDescription": { - "text": "Reports a component that doesn’t have an associated template or uses both 'template' and 'templateUrl' properties.", - "markdown": "Reports a component that doesn't have an associated template or uses both `template` and `templateUrl` properties." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "AngularIncorrectTemplateDefinition", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularMissingRequiredDirectiveInputBinding", - "shortDescription": { - "text": "Missing required directive input" - }, - "fullDescription": { - "text": "Reports a missing binding for a required directive input.", - "markdown": "Reports a missing binding for a required directive input." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "AngularMissingRequiredDirectiveInputBinding", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularMissingOrInvalidDeclarationInModule", - "shortDescription": { - "text": "Missing or invalid component, directive or pipe declaration in a module" - }, - "fullDescription": { - "text": "Reports a non-standalone Angular component, directive, or pipe that is not declared in any module or is declared in multiple modules.", - "markdown": "Reports a non-standalone Angular component, directive, or pipe that is not declared in any module or is declared in multiple modules." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "AngularMissingOrInvalidDeclarationInModule", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularInvalidEntryComponent", - "shortDescription": { - "text": "Invalid entry component" - }, - "fullDescription": { - "text": "Reports an invalid Angular component specified in the module’s 'bootstrap' or 'entryComponents' property.", - "markdown": "Reports an invalid Angular component specified in the module's `bootstrap` or `entryComponents` property." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "AngularInvalidEntryComponent", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "com.intellij.swagger", - "version": "243.24609", - "rules": [ - { - "id": "SwYamlMaybeSpecificationInspection", - "shortDescription": { - "text": "Possible OpenAPI/Swagger specification candidate" - }, - "fullDescription": { - "text": "Detects YAML files that can be interpreted as a part of OpenAPI/Swagger specification. Such files do not contain explicit specification attributes, but they are referenced from primary specification files located nearby. The following example contains two files located in the same directory. First one is a plain primary specification file. Second is referenced from the first one and thus is suggested to be considered a specification too. Primary specification file 'openapi.yaml': 'openapi: 3.1.0\ncomponents:\n schemas:\n CustomSchema:\n description: Custom schema object\n properties:\n foo:\n $ref: 'common.components.yaml#/components/schemas/CommonSchema'' Specification file candidate 'common.components.yaml': 'components: # 'Mark file as OpenAPI specification' highlighting\n schemas:\n CommonSchema:\n description: Common schema object reused in several specifications'", - "markdown": "Detects YAML files that can be interpreted as a part of OpenAPI/Swagger specification.\n\n\nSuch files do not contain explicit specification attributes, but they are referenced from primary specification files located nearby.\n\n\nThe following example contains two files located in the same directory. First one is a plain primary specification file.\nSecond is referenced from the first one and thus is suggested to be considered a specification too.\n\n**Primary specification file `openapi.yaml`:**\n\n\n openapi: 3.1.0\n components:\n schemas:\n CustomSchema:\n description: Custom schema object\n properties:\n foo:\n $ref: 'common.components.yaml#/components/schemas/CommonSchema'\n\n**Specification file candidate `common.components.yaml`:**\n\n\n components: # 'Mark file as OpenAPI specification' highlighting\n schemas:\n CommonSchema:\n description: Common schema object reused in several specifications\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SwYamlMaybeSpecificationInspection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "OpenAPI specifications", - "index": 66, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SwJsonUnresolvedReferencesInspection", - "shortDescription": { - "text": "Unresolved reference" - }, - "fullDescription": { - "text": "Detects unresolved references in JSON specification files.", - "markdown": "Detects unresolved references in JSON specification files." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "SwJsonUnresolvedReferencesInspection", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "OpenAPI specifications", - "index": 66, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SwJsonMaybeSpecificationInspection", - "shortDescription": { - "text": "Possible OpenAPI/Swagger specification candidate" - }, - "fullDescription": { - "text": "Detects JSON files that can be interpreted as a part of OpenAPI/Swagger specification. Such files do not contain explicit specification attributes, but they are referenced from primary specification files located nearby. The following example contains two files located in the same directory. First one is a plain primary specification file. Second is referenced from the first one and thus is suggested to be considered a specification too. Primary specification file 'openapi.yaml': 'openapi: 3.1.0\ncomponents:\n schemas:\n CustomSchema:\n description: Custom schema object\n properties:\n foo:\n $ref: 'common.components.json#/components/schemas/CommonSchema'' Specification file candidate 'common.components.json': '{\n \"components\": { // 'Mark file as OpenAPI specification' highlighting\n \"schemas\": {\n \"CommonSchema\": {\n \"description\": \"Common schema object reused in several specifications\"\n }\n }\n }\n}'", - "markdown": "Detects JSON files that can be interpreted as a part of OpenAPI/Swagger specification.\n\n\nSuch files do not contain explicit specification attributes, but they are referenced from primary specification files located nearby.\n\n\nThe following example contains two files located in the same directory. First one is a plain primary specification file.\nSecond is referenced from the first one and thus is suggested to be considered a specification too.\n\n**Primary specification file `openapi.yaml`:**\n\n\n openapi: 3.1.0\n components:\n schemas:\n CustomSchema:\n description: Custom schema object\n properties:\n foo:\n $ref: 'common.components.json#/components/schemas/CommonSchema'\n\n**Specification file candidate `common.components.json`:**\n\n\n {\n \"components\": { // 'Mark file as OpenAPI specification' highlighting\n \"schemas\": {\n \"CommonSchema\": {\n \"description\": \"Common schema object reused in several specifications\"\n }\n }\n }\n }\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SwJsonMaybeSpecificationInspection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "OpenAPI specifications", - "index": 66, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SwYamlUnresolvedReferencesInspection", - "shortDescription": { - "text": "Unresolved reference" - }, - "fullDescription": { - "text": "Detects unresolved references in YAML specification files.", - "markdown": "Detects unresolved references in YAML specification files." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "SwYamlUnresolvedReferencesInspection", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "OpenAPI specifications", - "index": 66, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "org.jetbrains.plugins.github", - "version": "243.24609-ultimate", - "rules": [ - { - "id": "CyclicJobDependency", - "shortDescription": { - "text": "Cyclic job dependency" - }, - "fullDescription": { - "text": "Detects cyclic dependencies for jobs in GitHub workflow YML file. See the GitHub Actions documentation for more information on workflow syntax.", - "markdown": "Detects cyclic dependencies for jobs in GitHub workflow YML file.\n\n\nSee the [GitHub Actions documentation](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idneeds) for more information on workflow syntax." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "CyclicJobDependency", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "GitHub actions", - "index": 70, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MandatoryParamsAbsent", - "shortDescription": { - "text": "Invalid parameters" - }, - "fullDescription": { - "text": "Reports the absence of mandatory parameters that do not have a default value for an action. It also provides a Quick Fix by adding the missing parameters with an empty value. For more information on action params, see the GitHub documentation.", - "markdown": "Reports the absence of mandatory parameters that do not have a default value for an action. It also provides a Quick Fix by adding the missing parameters with an empty value.\n\n\nFor more information on action params, see the [GitHub documentation](https://docs.github.com/en/actions/creating-actions/metadata-syntax-for-github-actions#runsstepswith)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "MandatoryParamsAbsent", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "GitHub actions", - "index": 70, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IllegalJobDependency", - "shortDescription": { - "text": "Undefined job dependency" - }, - "fullDescription": { - "text": "Detects dependencies to undefined Jobs in GitHub workflow YML file. See the GitHub Actions documentation for more information on workflow syntax.", - "markdown": "Detects dependencies to undefined Jobs in GitHub workflow YML file.\n\n\nSee the [GitHub Actions documentation](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idneeds) for more information on workflow syntax." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "IllegalJobDependency", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "GitHub actions", - "index": 70, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UndefinedAction", - "shortDescription": { - "text": "Undefined action/file reference" - }, - "fullDescription": { - "text": "Detects unresolved action references in GitHub action and workflow files. For more information on action references, see the GitHub documentation.", - "markdown": "Detects unresolved action references in GitHub action and workflow files.\n\n\nFor more information on action references, see the [GitHub documentation](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsuses)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "UndefinedAction", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "GitHub actions", - "index": 70, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UndefinedParamsPresent", - "shortDescription": { - "text": "Undefined parameters" - }, - "fullDescription": { - "text": "Reports the presence of parameters which are not defined in an action. It also provides a Quick Fix by removing the undefined parameters. For more information on action params, see the GitHub documentation.", - "markdown": "Reports the presence of parameters which are not defined in an action. It also provides a Quick Fix by removing the undefined parameters.\n\n\nFor more information on action params, see the [GitHub documentation](https://docs.github.com/en/actions/creating-actions/metadata-syntax-for-github-actions#runsstepswith)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "UndefinedParamsPresent", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "GitHub actions", - "index": 70, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "GithubFunctionSignatureValidation", - "shortDescription": { - "text": "Standard library functions validation" - }, - "fullDescription": { - "text": "Reports invalid GitHub Actions Expression language standard library function calls For more information on GitHub Actions Expression language, see the GitHub documentation.", - "markdown": "Reports invalid GitHub Actions Expression language standard library function calls\n\n\nFor more information on GitHub Actions Expression language, see the [GitHub documentation](https://docs.github.com/en/actions/learn-github-actions/expressions)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "GithubFunctionSignatureValidation", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "GitHub actions", - "index": 70, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "com.jetbrains.plugins.jade", - "version": "243.24609", - "rules": [ - { - "id": "JadeTabsAndSpaces", - "shortDescription": { - "text": "Tabs and spaces both used" - }, - "fullDescription": { - "text": "Reports use of spaces and tabs for indentation in a Pug file.", - "markdown": "Reports use of spaces and tabs for indentation in a Pug file." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "JadeTabsAndSpaces", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "Pug_Jade", - "index": 71, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "com.intellij.jsonpath", - "version": "243.24609", - "rules": [ - { - "id": "JsonPathUnknownFunction", - "shortDescription": { - "text": "Unknown JSONPath function" - }, - "fullDescription": { - "text": "Reports an unknown name in a JSONPath function call instead of known standard function names: 'concat', 'keys', 'length', 'min', 'max', 'avg', 'stddev', 'sum'.", - "markdown": "Reports an unknown name in a JSONPath function call instead of known standard function names: `concat`, `keys`, `length`, `min`, `max`, `avg`, `stddev`, `sum`." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JsonPathUnknownFunction", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JSONPath", - "index": 78, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JsonPathUnknownOperator", - "shortDescription": { - "text": "Unknown JSONPath operator" - }, - "fullDescription": { - "text": "Reports an unknown operator on a JSONPath expression instead of one of the standard ones: 'in', 'nin', 'subsetof', 'anyof', 'noneof', 'size', 'empty', 'contains'.", - "markdown": "Reports an unknown operator on a JSONPath expression instead of one of the standard ones: `in`, `nin`, `subsetof`, `anyof`, `noneof`, `size`, `empty`, `contains`." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JsonPathUnknownOperator", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JSONPath", - "index": 78, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JsonPathEvaluateUnknownKey", - "shortDescription": { - "text": "Unknown property key used for JSONPath evaluate expression" - }, - "fullDescription": { - "text": "Reports a key in a JSONPath expression that is missing in the source JSON document to evaluate.", - "markdown": "Reports a key in a JSONPath expression that is missing in the source JSON document to evaluate." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JsonPathEvaluateUnknownKey", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JSONPath", - "index": 78, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "HtmlTools", - "version": "243.24609", - "rules": [ - { - "id": "HtmlRequiredSummaryAttribute", - "shortDescription": { - "text": "Missing required 'summary' attribute" - }, - "fullDescription": { - "text": "Reports a missing 'summary' attribute in a 'table' tag. Suggests adding a'summary' attribute. Based on WCAG 2.0: H73.", - "markdown": "Reports a missing `summary` attribute in a `table` tag. Suggests adding a`summary` attribute. Based on WCAG 2.0: [H73](https://www.w3.org/TR/WCAG20-TECHS/H73.html)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "HtmlRequiredSummaryAttribute", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "HTML/Accessibility", - "index": 83, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HtmlNonExistentInternetResource", - "shortDescription": { - "text": "Unresolved web link" - }, - "fullDescription": { - "text": "Reports an unresolved web link. Works by making network requests in the background.", - "markdown": "Reports an unresolved web link. Works by making network requests in the background." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "HtmlNonExistentInternetResource", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "HTML", - "index": 11, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HtmlRequiredTitleAttribute", - "shortDescription": { - "text": "Missing required 'title' attribute" - }, - "fullDescription": { - "text": "Reports a missing title attribute 'frame', 'iframe', 'dl', and 'a' tags. Suggests adding a title attribute. Based on WCAG 2.0: H33, H40, and H64.", - "markdown": "Reports a missing title attribute `frame`, `iframe`, `dl`, and `a` tags. Suggests adding a title attribute. Based on WCAG 2.0: [H33](https://www.w3.org/TR/WCAG20-TECHS/H33.html), [H40](https://www.w3.org/TR/WCAG20-TECHS/H40.html), and [H64](https://www.w3.org/TR/WCAG20-TECHS/H64.html)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "HtmlRequiredTitleAttribute", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "HTML/Accessibility", - "index": 83, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HtmlRequiredAltAttribute", - "shortDescription": { - "text": "Missing required 'alt' attribute" - }, - "fullDescription": { - "text": "Reports a missing 'alt' attribute in a 'img' or 'applet' tag or in a 'area' element of an image map. Suggests adding a required attribute with a text alternative for the contents of the tag. Based on WCAG 2.0: H24, H35, H36, H37.", - "markdown": "Reports a missing `alt` attribute in a `img` or `applet` tag or in a `area` element of an image map. Suggests adding a required attribute with a text alternative for the contents of the tag. Based on WCAG 2.0: [H24](https://www.w3.org/TR/WCAG20-TECHS/H24.html), [H35](https://www.w3.org/TR/WCAG20-TECHS/H35.html), [H36](https://www.w3.org/TR/WCAG20-TECHS/H36.html), [H37](https://www.w3.org/TR/WCAG20-TECHS/H37.html)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "HtmlRequiredAltAttribute", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "HTML/Accessibility", - "index": 83, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HtmlPresentationalElement", - "shortDescription": { - "text": "Presentational tag" - }, - "fullDescription": { - "text": "Reports a presentational HTML tag. Suggests replacing the presentational tag with a CSS or another tag.", - "markdown": "Reports a presentational HTML tag. Suggests replacing the presentational tag with a CSS or another tag." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "HtmlPresentationalElement", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "HTML", - "index": 11, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HtmlDeprecatedTag", - "shortDescription": { - "text": "Obsolete tag" - }, - "fullDescription": { - "text": "Reports an obsolete HTML5 tag. Suggests replacing the obsolete tag with a CSS or another tag.", - "markdown": "Reports an obsolete HTML5 tag. Suggests replacing the obsolete tag with a CSS or another tag." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "HtmlDeprecatedTag", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "HTML", - "index": 11, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HtmlFormInputWithoutLabel", - "shortDescription": { - "text": "Missing associated label" - }, - "fullDescription": { - "text": "Reports a form element ('input', 'textarea', or 'select') without an associated label. Suggests creating a new label. Based on WCAG 2.0: H44.", - "markdown": "Reports a form element (`input`, `textarea`, or `select`) without an associated label. Suggests creating a new label. Based on WCAG 2.0: [H44](https://www.w3.org/TR/WCAG20-TECHS/H44.html). " - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "HtmlFormInputWithoutLabel", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "HTML/Accessibility", - "index": 83, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HtmlRequiredTitleElement", - "shortDescription": { - "text": "Missing required 'title' element" - }, - "fullDescription": { - "text": "Reports a missing 'title' element inside a 'head' section. Suggests adding a 'title' element. The title should describe the document. Based on WCAG 2.0: H25.", - "markdown": "Reports a missing `title` element inside a `head` section. Suggests adding a `title` element. The title should describe the document. Based on WCAG 2.0: [H25](https://www.w3.org/TR/WCAG20-TECHS/H25.html)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "HtmlRequiredTitleElement", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "HTML/Accessibility", - "index": 83, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HtmlDeprecatedAttribute", - "shortDescription": { - "text": "Obsolete attribute" - }, - "fullDescription": { - "text": "Reports an obsolete HTML5 attribute.", - "markdown": "Reports an obsolete HTML5 attribute." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "HtmlDeprecatedAttribute", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "HTML", - "index": 11, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CheckImageSize", - "shortDescription": { - "text": "Mismatched image size" - }, - "fullDescription": { - "text": "Reports a 'width' and 'height' attribute value of a 'img' tag that is different from the actual width and height of the referenced image.", - "markdown": "Reports a `width` and `height` attribute value of a `img` tag that is different from the actual width and height of the referenced image." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CheckImageSize", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Performance" - } - }, - "relationships": [ - { - "target": { - "id": "HTML", - "index": 11, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HtmlRequiredLangAttribute", - "shortDescription": { - "text": "Missing required 'lang' attribute" - }, - "fullDescription": { - "text": "Reports a missing 'lang' (or 'xml:lang') attribute in a 'html' tag. Suggests adding a required attribute to state the default language of the document. Based on WCAG 2.0: H57.", - "markdown": "Reports a missing `lang` (or `xml:lang`) attribute in a `html` tag. Suggests adding a required attribute to state the default language of the document. Based on WCAG 2.0: [H57](https://www.w3.org/TR/WCAG20-TECHS/H57.html)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "HtmlRequiredLangAttribute", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "HTML/Accessibility", - "index": 83, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "com.intellij.modules.json", - "version": "243.24609", - "rules": [ - { - "id": "JsonSchemaCompliance", - "shortDescription": { - "text": "Compliance with JSON schema" - }, - "fullDescription": { - "text": "Reports inconsistence between a JSON file and the JSON schema that is assigned to it.", - "markdown": "Reports inconsistence between a JSON file and the [JSON schema](https://json-schema.org) that is assigned to it. " - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JsonSchemaCompliance", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "JSON and JSON5", - "index": 84, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JsonSchemaDeprecation", - "shortDescription": { - "text": "Deprecated JSON property" - }, - "fullDescription": { - "text": "Reports a deprecated property in a JSON file. Note that deprecation mechanism is not defined in the JSON Schema specification yet, and this inspection uses a non-standard extension 'deprecationMessage'.", - "markdown": "Reports a deprecated property in a JSON file. \nNote that deprecation mechanism is not defined in the JSON Schema specification yet, and this inspection uses a non-standard extension 'deprecationMessage'." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "JsonSchemaDeprecation", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "JSON and JSON5", - "index": 84, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JsonStandardCompliance", - "shortDescription": { - "text": "Compliance with JSON standard" - }, - "fullDescription": { - "text": "Reports the following discrepancies of a JSON file with the language specification: A line or block comment (configurable). Multiple top-level values (expect for JSON Lines files, configurable for others). A trailing comma in an object or array (configurable). A single quoted string. A property key is a not a double quoted strings. A NaN or Infinity/-Infinity numeric value as a floating point literal (configurable).", - "markdown": "Reports the following discrepancies of a JSON file with [the language specification](https://tools.ietf.org/html/rfc7159):\n\n* A line or block comment (configurable).\n* Multiple top-level values (expect for JSON Lines files, configurable for others).\n* A trailing comma in an object or array (configurable).\n* A single quoted string.\n* A property key is a not a double quoted strings.\n* A NaN or Infinity/-Infinity numeric value as a floating point literal (configurable)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "JsonStandardCompliance", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JSON and JSON5", - "index": 84, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JsonSchemaRefReference", - "shortDescription": { - "text": "Unresolved '$ref' and '$schema' references" - }, - "fullDescription": { - "text": "Reports an unresolved '$ref' or '$schema' path in a JSON schema.", - "markdown": "Reports an unresolved `$ref` or `$schema` path in a JSON schema. " - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JsonSchemaRefReference", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "JSON and JSON5", - "index": 84, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Json5StandardCompliance", - "shortDescription": { - "text": "Compliance with JSON5 standard" - }, - "fullDescription": { - "text": "Reports inconsistency with the language specification in a JSON5 file.", - "markdown": "Reports inconsistency with [the language specification](http://json5.org) in a JSON5 file." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "Json5StandardCompliance", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JSON and JSON5", - "index": 84, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JsonDuplicatePropertyKeys", - "shortDescription": { - "text": "Duplicate keys in object literals" - }, - "fullDescription": { - "text": "Reports a duplicate key in an object literal.", - "markdown": "Reports a duplicate key in an object literal." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JsonDuplicatePropertyKeys", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JSON and JSON5", - "index": 84, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "org.jetbrains.plugins.vue", - "version": "243.24609", - "rules": [ - { - "id": "VueMissingComponentImportInspection", - "shortDescription": { - "text": "Missing component import" - }, - "fullDescription": { - "text": "Reports Vue components, which require to be imported in Vue templates. It provides a quick fix to add the missing import.", - "markdown": "Reports Vue components, which require to be imported in Vue templates. It provides a quick fix to add the missing import." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "VueMissingComponentImportInspection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Vue", - "index": 88, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VueDeprecatedSymbol", - "shortDescription": { - "text": "Deprecated symbol" - }, - "fullDescription": { - "text": "Reports a deprecated Vue symbol.", - "markdown": "Reports a deprecated Vue symbol." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "VueDeprecatedSymbol", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Vue", - "index": 88, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VueUnrecognizedDirective", - "shortDescription": { - "text": "Unrecognized directive" - }, - "fullDescription": { - "text": "Reports an unrecognized Vue directive.", - "markdown": "Reports an unrecognized Vue directive." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "VueUnrecognizedDirective", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Vue", - "index": 88, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VueDuplicateTag", - "shortDescription": { - "text": "Duplicate template/script tag" - }, - "fullDescription": { - "text": "Reports multiple usages of the 'template' or 'script' tag in a Vue file. Vue Component specification indicates that each '*.vue' file can contain at most one 'template' or 'script' block at a time.", - "markdown": "Reports multiple usages of the `template` or `script` tag in a Vue file.\n\n[Vue Component specification](https://vue-loader.vuejs.org/spec.html) indicates that each `*.vue` file can contain at most one `template` or `script` block at a time." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "VueDuplicateTag", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Vue", - "index": 88, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VueDataFunction", - "shortDescription": { - "text": "Data function" - }, - "fullDescription": { - "text": "Reports a Vue component data property that is not a function. Suggests wrapping an object literal with a function. When defining a component, 'data' must be declared as a function that returns the initial data object, because the same definition will be used for creating numerous instances. If a plain object is still used for 'data', that very object will be shared by reference across all instances created! With a 'data' function, every time a new instance is created we can simply call it to return a fresh copy of the initial data.", - "markdown": "Reports a Vue component [data](https://vuejs.org/v2/api/#data) property that is not a function. Suggests wrapping an object literal with a function.\n\nWhen defining a component, `data` must be declared as a function that returns the initial data object, because the same definition will be used for creating numerous instances. If a plain object is still used for `data`, that very object will be shared by reference across all instances created! With a `data` function, every time a new instance is created we can simply call it to return a fresh copy of the initial data." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "VueDataFunction", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "Vue", - "index": 88, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VueUnrecognizedSlot", - "shortDescription": { - "text": "Unrecognized slot" - }, - "fullDescription": { - "text": "Reports an unrecognized Vue slot.", - "markdown": "Reports an unrecognized Vue slot." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VueUnrecognizedSlot", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Vue", - "index": 88, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "org.intellij.plugins.markdown", - "version": "243.24609", - "rules": [ - { - "id": "MarkdownOutdatedTableOfContents", - "shortDescription": { - "text": "Outdated table of contents section" - }, - "fullDescription": { - "text": "Checks if a particular table of contents section corresponds to the actual structure of the document.", - "markdown": "Checks if a particular table of contents section corresponds to the actual structure of the document." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "MarkdownOutdatedTableOfContents", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Markdown", - "index": 90, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MarkdownUnresolvedLinkLabel", - "shortDescription": { - "text": "Unresolved link label" - }, - "fullDescription": { - "text": "Reports unresolved link labels in Markdown files.", - "markdown": "Reports unresolved link labels in Markdown files." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "MarkdownUnresolvedLinkLabel", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "Markdown", - "index": 90, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MarkdownNoTableBorders", - "shortDescription": { - "text": "Table doesn't have side borders" - }, - "fullDescription": { - "text": "Checks if table has correct side borders. For compatibility reasons all table rows should have borders (pipe symbols) at the start and at the end.", - "markdown": "Checks if table has correct side borders. For compatibility reasons all table rows should have borders (pipe symbols) at the start and at the end." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "MarkdownNoTableBorders", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "Markdown", - "index": 90, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MarkdownIncorrectlyNumberedListItem", - "shortDescription": { - "text": "Incorrectly numbered list item" - }, - "fullDescription": { - "text": "Ordered list items are expected to have straight numeration starting from 1. The motivation behind this is that most of Markdown processors are ignoring the numbering of ordered lists. A processor will generate an '<ol>' element for such list, that will number items continuously from 1.", - "markdown": "Ordered list items are expected to have straight numeration starting from 1.\n\nThe motivation behind this is that most of Markdown processors are ignoring the numbering of ordered lists. A processor will generate an `<ol>` element for such list, that will number items continuously from 1." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "MarkdownIncorrectlyNumberedListItem", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "Markdown", - "index": 90, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MarkdownUnresolvedHeaderReference", - "shortDescription": { - "text": "Unresolved header reference" - }, - "fullDescription": { - "text": "Reports unresolved header references in Markdown files.", - "markdown": "Reports unresolved header references in Markdown files." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "MarkdownUnresolvedHeaderReference", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "Markdown", - "index": 90, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MarkdownLinkDestinationWithSpaces", - "shortDescription": { - "text": "Links should not contain spaces" - }, - "fullDescription": { - "text": "To ensure consistency between different tools, file links should not contain spaces. Example: '[Some file link](some file.md)' A quick-fix replaces spaces with their url-encoded equivalent: '[Some file link](some%20file.md)'", - "markdown": "To ensure consistency between different tools, file links should not contain spaces.\n\n**Example:**\n\n\n [Some file link](some file.md)\n\nA quick-fix replaces spaces with their url-encoded equivalent:\n\n\n [Some file link](some%20file.md)\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "MarkdownLinkDestinationWithSpaces", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "Markdown", - "index": 90, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MarkdownIncorrectTableFormatting", - "shortDescription": { - "text": "Incorrect table formatting" - }, - "fullDescription": { - "text": "Checks if table is correctly formatted.", - "markdown": "Checks if table is correctly formatted." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "MarkdownIncorrectTableFormatting", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "Markdown", - "index": 90, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MarkdownUnresolvedFileReference", - "shortDescription": { - "text": "Unresolved file references" - }, - "fullDescription": { - "text": "Reports unresolved file references in Markdown files.", - "markdown": "Reports unresolved file references in Markdown files." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "MarkdownUnresolvedFileReference", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Markdown", - "index": 90, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "org.jetbrains.plugins.yaml", - "version": "243.24609", - "rules": [ - { - "id": "YAMLIncompatibleTypes", - "shortDescription": { - "text": "Suspicious type mismatch" - }, - "fullDescription": { - "text": "Reports a mismatch between a scalar value type in YAML file and types of the values in the similar positions. Example: 'myElements:\n - value1\n - value2\n - false # <- reported, because it is a boolean value, while other values are strings'", - "markdown": "Reports a mismatch between a scalar value type in YAML file and types of the values in the similar positions.\n\n**Example:**\n\n\n myElements:\n - value1\n - value2\n - false # <- reported, because it is a boolean value, while other values are strings\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "YAMLIncompatibleTypes", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "YAML", - "index": 95, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "YAMLUnresolvedAlias", - "shortDescription": { - "text": "Unresolved alias" - }, - "fullDescription": { - "text": "Reports unresolved aliases in YAML files. Example: 'some_key: *unknown_alias'", - "markdown": "Reports unresolved aliases in YAML files.\n\n**Example:**\n\n\n some_key: *unknown_alias\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "YAMLUnresolvedAlias", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "YAML", - "index": 95, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "YAMLDuplicatedKeys", - "shortDescription": { - "text": "Duplicated YAML keys" - }, - "fullDescription": { - "text": "Reports duplicated keys in YAML files. Example: 'same_key: some value\n same_key: another value'", - "markdown": "Reports duplicated keys in YAML files.\n\n**Example:**\n\n\n same_key: some value\n same_key: another value\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "YAMLDuplicatedKeys", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "YAML", - "index": 95, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "YAMLSchemaValidation", - "shortDescription": { - "text": "Validation by JSON Schema" - }, - "fullDescription": { - "text": "Reports inconsistencies between a YAML file and a JSON Schema if the schema is specified. Scheme example: '{\n \"properties\": {\n \"SomeNumberProperty\": {\n \"type\": \"number\"\n }\n }\n }' The following is an example with the corresponding warning: 'SomeNumberProperty: hello world'", - "markdown": "Reports inconsistencies between a YAML file and a JSON Schema if the schema is specified.\n\n**Scheme example:**\n\n\n {\n \"properties\": {\n \"SomeNumberProperty\": {\n \"type\": \"number\"\n }\n }\n }\n\n**The following is an example with the corresponding warning:**\n\n\n SomeNumberProperty: hello world\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "YAMLSchemaValidation", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "YAML", - "index": 95, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "YAMLSchemaDeprecation", - "shortDescription": { - "text": "Deprecated YAML key" - }, - "fullDescription": { - "text": "Reports deprecated keys in YAML files. Deprecation is checked only if there exists a JSON schema associated with the corresponding YAML file. Note that the deprecation mechanism is not defined in the JSON Schema specification yet, and this inspection uses a non-standard 'deprecationMessage' extension. Scheme deprecation example: '{\n \"properties\": {\n \"SomeDeprecatedProperty\": {\n \"deprecationMessage\": \"Baz\",\n \"description\": \"Foo bar\"\n }\n }\n }' The following is an example with the corresponding warning: 'SomeDeprecatedProperty: some value'", - "markdown": "Reports deprecated keys in YAML files.\n\nDeprecation is checked only if there exists a JSON schema associated with the corresponding YAML file.\n\nNote that the deprecation mechanism is not defined in the JSON Schema specification yet,\nand this inspection uses a non-standard `deprecationMessage` extension.\n\n**Scheme deprecation example:**\n\n\n {\n \"properties\": {\n \"SomeDeprecatedProperty\": {\n \"deprecationMessage\": \"Baz\",\n \"description\": \"Foo bar\"\n }\n }\n }\n\n**The following is an example with the corresponding warning:**\n\n\n SomeDeprecatedProperty: some value\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "YAMLSchemaDeprecation", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "YAML", - "index": 95, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "YAMLRecursiveAlias", - "shortDescription": { - "text": "Recursive alias" - }, - "fullDescription": { - "text": "Reports recursion in YAML aliases. Alias can't be recursive and be used inside the data referenced by a corresponding anchor. Example: 'some_key: &some_anchor\n sub_key1: value1\n sub_key2: *some_anchor'", - "markdown": "Reports recursion in YAML aliases.\n\nAlias can't be recursive and be used inside the data referenced by a corresponding anchor.\n\n**Example:**\n\n\n some_key: &some_anchor\n sub_key1: value1\n sub_key2: *some_anchor\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "YAMLRecursiveAlias", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "YAML", - "index": 95, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "YAMLUnusedAnchor", - "shortDescription": { - "text": "Unused anchor" - }, - "fullDescription": { - "text": "Reports unused anchors. Example: 'some_key: &some_anchor\n key1: value1'", - "markdown": "Reports unused anchors.\n\n**Example:**\n\n\n some_key: &some_anchor\n key1: value1\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "YAMLUnusedAnchor", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "YAML", - "index": 95, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "intellij.webpack", - "version": "243.24609", - "rules": [ - { - "id": "WebpackConfigHighlighting", - "shortDescription": { - "text": "Webpack config compliance with JSON Schema" - }, - "fullDescription": { - "text": "Validates options in webpack config files (which name should start with `webpack`, e.g. `webpack.config.js`) against webpack options schema. Disable this inspection to turn off validation and code completion inside the configuration object.", - "markdown": "Validates options in webpack config files (which name should start with \\`webpack\\`, e.g. \\`webpack.config.js\\`) against [webpack options schema](https://github.com/webpack/webpack/blob/master/schemas/WebpackOptions.json). \n\nDisable this inspection to turn off validation and code completion inside the configuration object." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "WebpackConfigHighlighting", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "com.intellij.plugins.dependencyAnalysis", - "version": "243.24609", - "rules": [ - { - "id": "CheckDependencyLicenses", - "shortDescription": { - "text": "Check dependency licenses" - }, - "fullDescription": { - "text": "Check dependencies licenses for possible problems: missing or prohibited licenses, or other compliance issues", - "markdown": "Check dependencies licenses for possible problems: missing or prohibited licenses, or other compliance issues" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CheckDependencyLicenses", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Dependency analysis", - "index": 105, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CheckThirdPartySoftwareList", - "shortDescription": { - "text": "Check third party software list" - }, - "fullDescription": { - "text": "Check project for possible problems: user's third party software list does not match the collected project metadata", - "markdown": "Check project for possible problems: user's third party software list does not match the collected project metadata" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CheckThirdPartySoftwareList", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Dependency analysis", - "index": 105, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CheckModuleLicenses", - "shortDescription": { - "text": "Check module licenses" - }, - "fullDescription": { - "text": "Check module licenses for possible problems: missing licenses or other compliance issues", - "markdown": "Check module licenses for possible problems: missing licenses or other compliance issues" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CheckModuleLicenses", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Dependency analysis", - "index": 105, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "com.intellij.grpc", - "version": "243.24609", - "rules": [ - { - "id": "GrpcSchemes", - "shortDescription": { - "text": "GRPC request schema can be substituted or omitted" - }, - "fullDescription": { - "text": "Reports unnecessary `grpc` or standard `http[s]` schemes usage in gRPC requests Example requests: '# `grpc` scheme may be omitted since insecure connection is assumed by default\nGRPC grpc://localhost/TestService/testRpc' '# `http` scheme may be omitted: prefer empty scheme for insecure connection and a dedicated `grpcs` scheme for a secure one\nGRPC http://localhost/TestService/testRpc' '# `https` scheme should be replaced by `grpcs`: prefer a dedicated `grpcs` scheme to indicate that transport layer security should be enabled to execute the request\nGRPC https://localhost/TestService/testRpc' To avoid confusion, it is recommended to use dedicated `grpcs` scheme in a gRPC request, when the request should use secure channel underneath. Otherwise, the scheme might be completely omitted", - "markdown": "Reports unnecessary \\`grpc\\` or standard \\`http\\[s\\]\\` schemes usage in gRPC requests\n\n\nExample requests:\n\n\n # `grpc` scheme may be omitted since insecure connection is assumed by default\n GRPC grpc://localhost/TestService/testRpc\n\n\n # `http` scheme may be omitted: prefer empty scheme for insecure connection and a dedicated `grpcs` scheme for a secure one\n GRPC http://localhost/TestService/testRpc\n\n\n # `https` scheme should be replaced by `grpcs`: prefer a dedicated `grpcs` scheme to indicate that transport layer security should be enabled to execute the request\n GRPC https://localhost/TestService/testRpc\n\n\nTo avoid confusion, it is recommended to use dedicated \\`grpcs\\` scheme in a gRPC request, when the request should use secure channel\nunderneath. Otherwise, the scheme might be completely omitted" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "GrpcSchemes", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Security" - } - }, - "relationships": [ - { - "target": { - "id": "Inappropriate gRPC request scheme", - "index": 106, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "com.jetbrains.sh", - "version": "243.24609", - "rules": [ - { - "id": "ShellCheck", - "shortDescription": { - "text": "ShellCheck" - }, - "fullDescription": { - "text": "Reports shell script bugs detected by the integrated ShellCheck static analysis tool.", - "markdown": "Reports shell script bugs detected by the integrated [ShellCheck](https://github.com/koalaman/shellcheck) static analysis tool." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "ShellCheck", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Security" - } - }, - "relationships": [ - { - "target": { - "id": "Shell script", - "index": 111, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "org.jetbrains.plugins.less", - "version": "243.24609", - "rules": [ - { - "id": "LessResolvedByNameOnly", - "shortDescription": { - "text": "Missing import" - }, - "fullDescription": { - "text": "Reports a reference to a variable or mixin that is declared in another file, which is not explicitly imported in the current file. Example: '* {\n margin: @var-in-other-file;\n}'", - "markdown": "Reports a reference to a variable or mixin that is declared in another file, which is not explicitly [imported](http://lesscss.org/features/#import-atrules-feature) in the current file.\n\n**Example:**\n\n\n * {\n margin: @var-in-other-file;\n }\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "LessResolvedByNameOnly", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Less", - "index": 121, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "LessUnresolvedVariable", - "shortDescription": { - "text": "Unresolved variable" - }, - "fullDescription": { - "text": "Reports a reference to a Less variable that is not resolved. Example: '* {\n margin: @unknown-var;\n}'", - "markdown": "Reports a reference to a [Less variable](http://lesscss.org/features/#variables-feature) that is not resolved.\n\n**Example:**\n\n\n * {\n margin: @unknown-var;\n }\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "LessUnresolvedVariable", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "Less", - "index": 121, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "LessUnresolvedMixin", - "shortDescription": { - "text": "Unresolved mixin" - }, - "fullDescription": { - "text": "Reports a reference to a Less mixin that is not resolved. Example: '* {\n .unknown-mixin();\n}'", - "markdown": "Reports a reference to a [Less mixin](http://lesscss.org/features/#mixins-feature) that is not resolved.\n\n**Example:**\n\n\n * {\n .unknown-mixin();\n }\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "LessUnresolvedMixin", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "Less", - "index": 121, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "tanvd.grazi", - "version": "243.24609", - "rules": [ - { - "id": "LanguageDetectionInspection", - "shortDescription": { - "text": "Natural language detection" - }, - "fullDescription": { - "text": "Detects natural languages and suggests enabling corresponding grammar and spelling checks.", - "markdown": "Detects natural languages and suggests enabling corresponding grammar and spelling checks." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "LanguageDetectionInspection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "Proofreading", - "index": 122, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "GrazieInspection", - "shortDescription": { - "text": "Grammar" - }, - "fullDescription": { - "text": "Reports grammar mistakes in your text. You can configure the inspection in Settings | Editor | Natural Languages | Grammar and Style.", - "markdown": "Reports grammar mistakes in your text. You can configure the inspection in [Settings \\| Editor \\| Natural Languages \\| Grammar and Style](settings://reference.settingsdialog.project.grazie)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "GrazieInspection", - "ideaSeverity": "GRAMMAR_ERROR", - "qodanaSeverity": "Info", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "Proofreading", - "index": 122, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "com.jetbrains.rider-cpp", - "version": "243.24609", - "rules": [ - { - "id": "UnrealJsonLocalInspectionTool", - "shortDescription": { - "text": "Unreal Engine json inspection" - }, - "fullDescription": { - "text": "RIDER-83134", - "markdown": "[RIDER-83134](https://youtrack.jetbrains.com/issue/RIDER-83134/)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "UnrealJsonLocalInspectionTool", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Unreal Engine", - "index": 126, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "com.intellij.stylelint", - "version": "243.24609", - "rules": [ - { - "id": "Stylelint", - "shortDescription": { - "text": "Stylelint" - }, - "fullDescription": { - "text": "Reports a discrepancy detected by the Stylelint linter. The highlighting is based on the rule severity specified in the Stylelint configuration file for each individual rule.", - "markdown": "Reports a discrepancy detected by the [Stylelint](http://stylelint.io) linter. \n\nThe highlighting is based on the rule severity specified in the [Stylelint configuration file](https://stylelint.io/user-guide/configure) for each individual rule." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "Stylelint", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "CSS/Code quality tools", - "index": 129, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "com.intellij.hardcodedPasswords", - "version": "243.24609", - "rules": [ - { - "id": "HardcodedPasswords", - "shortDescription": { - "text": "Hardcoded passwords" - }, - "fullDescription": { - "text": "Detects potential security tokens or passwords in comments using entropy analysis and regular expressions. This inspection utilizes entropy analysis and regular expressions to scan the codebase for strings that resemble security tokens or passwords. It highlights these findings, helping developers identify and secure potential vulnerabilities. The inspection's effectiveness relies on the patterns defined in its configuration, making it adaptable to different coding environments and requirements. '// Example of a regular expression pattern used for detection:\n/[0-9]+:AA[0-9A-Za-z\\-_]{33}/' Text after this comment will only be shown in the settings of the inspection.", - "markdown": "Detects potential security tokens or passwords in comments using entropy analysis and regular expressions.\n\n\nThis inspection utilizes entropy analysis and regular expressions to scan the codebase for strings that resemble security tokens or\npasswords. It highlights these findings, helping developers identify and secure potential vulnerabilities. The inspection's effectiveness\nrelies on the patterns defined in its configuration, making it adaptable to different coding environments and requirements.\n\n\n // Example of a regular expression pattern used for detection:\n /[0-9]+:AA[0-9A-Za-z\\-_]{33}/\n\nText after this comment will only be shown in the settings of the inspection." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "HardcodedPasswords", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Security", - "index": 131, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "Karma", - "version": "243.24609", - "rules": [ - { - "id": "KarmaConfigFile", - "shortDescription": { - "text": "Invalid Karma configuration file" - }, - "fullDescription": { - "text": "Reports a potential error in a file path ('basePath', 'files') for a Karma configuration file, for example, 'karma.conf.js'.", - "markdown": "Reports a potential error in a file path ('basePath', 'files') for a Karma configuration file, for example, `karma.conf.js`." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "KarmaConfigFile", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Unit testing", - "index": 140, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "com.jetbrains.plugins.ini4idea", - "version": "243.24609", - "rules": [ - { - "id": "DuplicateSectionInFile", - "shortDescription": { - "text": "Duplicate section in file" - }, - "fullDescription": { - "text": "Reports duplicate sections in the 'ini' file.", - "markdown": "Reports duplicate sections in the `ini` file." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "DuplicateSectionInFile", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Ini files", - "index": 147, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "DuplicateKeyInSection", - "shortDescription": { - "text": "Duplicate directive in section" - }, - "fullDescription": { - "text": "Reports duplicate properties in the 'ini' file section.", - "markdown": "Reports duplicate properties in the `ini` file section." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "DuplicateKeyInSection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Ini files", - "index": 147, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "tslint", - "version": "243.24609", - "rules": [ - { - "id": "TsLint", - "shortDescription": { - "text": "TSLint" - }, - "fullDescription": { - "text": "Reports a discrepancy detected by the TSLint linter. The highlighting is based on the rule severity specified in the TSLint configuration file for each individual rule. Clear the 'Use rule severity from the configuration file' checkbox to use the severity configured in this inspection for all TSLint rules.", - "markdown": "Reports a discrepancy detected by the [TSLint](https://github.com/palantir/tslint) linter. \n\nThe highlighting is based on the rule severity specified in the [TSLint configuration file](https://palantir.github.io/tslint/usage/configuration/) for each individual rule. \n\nClear the 'Use rule severity from the configuration file' checkbox to use the severity configured in this inspection for all TSLint rules." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "TsLint", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Code quality tools", - "index": 69, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "org.intellij.intelliLang", - "version": "243.24609", - "rules": [ - { - "id": "InjectedReferences", - "shortDescription": { - "text": "Injected references" - }, - "fullDescription": { - "text": "Reports unresolved references injected by Language Injections. Example: '@Language(\"file-reference\")\n String fileName = \"/home/user/nonexistent.file\"; // highlighted if file doesn't exist'", - "markdown": "Reports unresolved references injected by [Language Injections](https://www.jetbrains.com/help/idea/using-language-injections.html).\n\nExample:\n\n\n @Language(\"file-reference\")\n String fileName = \"/home/user/nonexistent.file\"; // highlighted if file doesn't exist\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "InjectedReferences", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "General", - "index": 46, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "W3Validators", - "version": "243.24609", - "rules": [ - { - "id": "W3CssValidation", - "shortDescription": { - "text": "W3C CSS validator" - }, - "fullDescription": { - "text": "Reports a discrepancy detected by the W3C CSS Validator.", - "markdown": "Reports a discrepancy detected by the [W3C CSS Validator](https://jigsaw.w3.org/css-validator/)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "W3CssValidation", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "CSS/Code quality tools", - "index": 129, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "org.jetbrains.plugins.docker.gateway", - "version": "243.24609", - "rules": [ - { - "id": "DevContainerIdeSettings", - "shortDescription": { - "text": "Validate IDE settings" - }, - "fullDescription": { - "text": "No description available", - "markdown": "No description available" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "DevContainerIdeSettings", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Dev Container", - "index": 153, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "com.intellij.plugins.watcher", - "version": "243.24609", - "rules": [ - { - "id": "TaskProblemsInspection", - "shortDescription": { - "text": "File watcher problems" - }, - "fullDescription": { - "text": "Reports an error detected by the output filters from a File Watcher. A File Watcher tracks changes in files and executes the configured command when a change is detected.", - "markdown": "Reports an error detected by the output filters from a File Watcher.\n\n\nA File Watcher tracks changes in files and executes the configured command when a change is detected." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "TaskProblemsInspection", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "File Watchers", - "index": 154, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "idea.plugin.protoeditor", - "version": "243.24609", - "rules": [ - { - "id": "PbDuplicatedImports", - "shortDescription": { - "text": "Duplicated import statements" - }, - "fullDescription": { - "text": "Reports effectively equivalent import statements.", - "markdown": "Reports effectively equivalent import statements." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "PbDuplicatedImports", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "Protocol Buffers", - "index": 164, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "com.dmarcotte.handlebars", - "version": "243.24609", - "rules": [ - { - "id": "HbEmptyBlock", - "shortDescription": { - "text": "Missing block helper argument" - }, - "fullDescription": { - "text": "Reports an 'if', 'each', or 'with' block helper without an argument.", - "markdown": "Reports an `if`, `each`, or `with` block helper without an argument." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "HbEmptyBlock", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "Handlebars_Mustache", - "index": 170, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - } - ] - }, - "invocations": [ - { - "startTimeUtc": "2025-04-24T18:33:18.94655429Z", - "exitCode": 0, - "executionSuccessful": true - } - ], - "language": "en-US", - "versionControlProvenance": [ - { - "repositoryUri": "https://github.com/GitTools/GitVersion.git", - "revisionId": "552cd5839f9b4ff25dac4f1f549e77668fc417ef", - "branch": "feature/qodana-fixes", - "properties": { - "repoUrl": "https://github.com/GitTools/GitVersion.git", - "lastAuthorName": "Artur Stolear", - "vcsType": "Git", - "lastAuthorEmail": "artur.stolear@gmail.com" - } - } - ], - "results": [ - { - "ruleId": "ChangeFieldTypeToSystemThreadingLock", - "kind": "fail", - "level": "note", - "message": { - "text": "Consider changing the type of 'LockObject' field to 'System.Threading.Lock' to express field intent", - "markdown": "Consider changing the type of 'LockObject' field to 'System.Threading.Lock' to express field intent" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Testing/Helpers/ProcessHelper.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 9, - "startColumn": 29, - "charOffset": 210, - "charLength": 6, - "snippet": { - "text": "object" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 7, - "startColumn": 1, - "charOffset": 138, - "charLength": 202, - "snippet": { - "text": "public static partial class ProcessHelper\n{\n private static readonly object LockObject = new();\n\n // http://social.msdn.microsoft.com/Forums/en/netfxbcl/thread/f6069441-4ab1-4299-ad6a-b8bb9ed36be3" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Testing", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "243d981fb6eb8384", - "equalIndicator/v1": "9ce8c7e55a736d0868c40b5038a5e84f48bbfca14180ebd2b27ecc4545156d01" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "ChangeFieldTypeToSystemThreadingLock", - "kind": "fail", - "level": "note", - "message": { - "text": "Consider changing the type of 'locker' field to 'System.Threading.Lock' to express field intent", - "markdown": "Consider changing the type of 'locker' field to 'System.Threading.Lock' to express field intent" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core/Logging/ConsoleAppender.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 5, - "startColumn": 22, - "charOffset": 100, - "charLength": 6, - "snippet": { - "text": "object" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 3, - "startColumn": 1, - "charOffset": 31, - "charLength": 192, - "snippet": { - "text": "internal class ConsoleAppender : ILogAppender\n{\n private readonly object locker = new();\n private readonly Dictionary<LogLevel, (ConsoleColor, ConsoleColor)> palettes = CreatePalette();\n" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Core", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "8ce2b8bdd4789fd5", - "equalIndicator/v1": "fc85c07d08f54a93d98b43b199f1cfa9eaf5c4a71280a3912014a923b81d4232" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 9.0" - ] - } - }, - { - "ruleId": "EditorConfigKeyCorrectness", - "kind": "fail", - "level": "warning", - "message": { - "text": "The property is not supported", - "markdown": "The property is not supported" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "../.editorconfig", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 173, - "startColumn": 1, - "charOffset": 6763, - "charLength": 56, - "snippet": { - "text": "resharper_unused_method_return_value_global_highlighting" - }, - "sourceLanguage": "EditorConfig" - }, - "contextRegion": { - "startLine": 171, - "startColumn": 1, - "charOffset": 6695, - "charLength": 131, - "snippet": { - "text": "resharper_unused_auto_property_accessor_global_highlighting = none\n\nresharper_unused_method_return_value_global_highlighting = none" - }, - "sourceLanguage": "EditorConfig" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f6fe51c359b54477", - "equalIndicator/v1": "8551ac8f1f5694db3b26e53bd40fcd09a79b4bbd2f22850569575210dd66333d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "EditorConfig" - ] - } - }, - { - "ruleId": "EditorConfigKeyCorrectness", - "kind": "fail", - "level": "warning", - "message": { - "text": "The property is not supported", - "markdown": "The property is not supported" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "../.editorconfig", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 162, - "startColumn": 1, - "charOffset": 6452, - "charLength": 34, - "snippet": { - "text": "dotnet_diagnostic.RCS1037.severity" - }, - "sourceLanguage": "EditorConfig" - }, - "contextRegion": { - "startLine": 160, - "startColumn": 1, - "charOffset": 6411, - "charLength": 124, - "snippet": { - "text": "\n# RCS1037: Remove trailing white-space.\ndotnet_diagnostic.RCS1037.severity = error\n\n# RCS1036: Remove redundant empty line." - }, - "sourceLanguage": "EditorConfig" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "002dbf3d5be336ee", - "equalIndicator/v1": "88845b091d5e4987ce1aec8a2d940e7d27f9a2464a89ccaca2d0af10b55bfb0c" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "EditorConfig" - ] - } - }, - { - "ruleId": "EditorConfigKeyCorrectness", - "kind": "fail", - "level": "warning", - "message": { - "text": "The property is not supported", - "markdown": "The property is not supported" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "../.editorconfig", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 167, - "startColumn": 1, - "charOffset": 6580, - "charLength": 29, - "snippet": { - "text": "xml_space_before_self_closing" - }, - "sourceLanguage": "EditorConfig" - }, - "contextRegion": { - "startLine": 165, - "startColumn": 1, - "charOffset": 6536, - "charLength": 157, - "snippet": { - "text": "dotnet_diagnostic.RCS1036.severity = error\n\nxml_space_before_self_closing = true\n\nresharper_arrange_object_creation_when_type_not_evident_highlighting = none" - }, - "sourceLanguage": "EditorConfig" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "1d2dff93b57079ac", - "equalIndicator/v1": "98c80a441f9ef5edf0b3cce3fe31ba0fca1fee2378ffe4035a40c1a7b30c70c5" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "EditorConfig" - ] - } - }, - { - "ruleId": "EditorConfigKeyCorrectness", - "kind": "fail", - "level": "warning", - "message": { - "text": "The property is not supported", - "markdown": "The property is not supported" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "../.editorconfig", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 159, - "startColumn": 1, - "charOffset": 6366, - "charLength": 34, - "snippet": { - "text": "dotnet_diagnostic.IDE0005.severity" - }, - "sourceLanguage": "EditorConfig" - }, - "contextRegion": { - "startLine": 157, - "startColumn": 1, - "charOffset": 6322, - "charLength": 129, - "snippet": { - "text": "\n# IDE0005: Using directive is unnecessary.\ndotnet_diagnostic.IDE0005.severity = warning\n\n# RCS1037: Remove trailing white-space." - }, - "sourceLanguage": "EditorConfig" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e19c8ddf75f7decc", - "equalIndicator/v1": "b44a286683a4904208a57ff03b1e0ab0f822c6daab929bdf2994a42050a7f98d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "EditorConfig" - ] - } - }, - { - "ruleId": "EditorConfigKeyCorrectness", - "kind": "fail", - "level": "warning", - "message": { - "text": "The property is not supported", - "markdown": "The property is not supported" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "../.editorconfig", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 169, - "startColumn": 1, - "charOffset": 6618, - "charLength": 68, - "snippet": { - "text": "resharper_arrange_object_creation_when_type_not_evident_highlighting" - }, - "sourceLanguage": "EditorConfig" - }, - "contextRegion": { - "startLine": 167, - "startColumn": 1, - "charOffset": 6580, - "charLength": 181, - "snippet": { - "text": "xml_space_before_self_closing = true\n\nresharper_arrange_object_creation_when_type_not_evident_highlighting = none\n\nresharper_unused_auto_property_accessor_global_highlighting = none" - }, - "sourceLanguage": "EditorConfig" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "777afc2fdb959232", - "equalIndicator/v1": "baef58ab287e0df1579468dec06220869bb62969dad314e065aeb1d8b865605e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "EditorConfig" - ] - } - }, - { - "ruleId": "EditorConfigKeyCorrectness", - "kind": "fail", - "level": "warning", - "message": { - "text": "The property is not supported", - "markdown": "The property is not supported" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "../.editorconfig", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 165, - "startColumn": 1, - "charOffset": 6536, - "charLength": 34, - "snippet": { - "text": "dotnet_diagnostic.RCS1036.severity" - }, - "sourceLanguage": "EditorConfig" - }, - "contextRegion": { - "startLine": 163, - "startColumn": 1, - "charOffset": 6495, - "charLength": 121, - "snippet": { - "text": "\n# RCS1036: Remove redundant empty line.\ndotnet_diagnostic.RCS1036.severity = error\n\nxml_space_before_self_closing = true" - }, - "sourceLanguage": "EditorConfig" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "36e32bd3acbfb8d3", - "equalIndicator/v1": "df48f45afbdbddbe9a7a8de2fa6dc2a40f9932e4ed4d629f5dfb15e4c353c702" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "EditorConfig" - ] - } - }, - { - "ruleId": "EditorConfigKeyCorrectness", - "kind": "fail", - "level": "warning", - "message": { - "text": "The property is not supported", - "markdown": "The property is not supported" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "../.editorconfig", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 171, - "startColumn": 1, - "charOffset": 6695, - "charLength": 59, - "snippet": { - "text": "resharper_unused_auto_property_accessor_global_highlighting" - }, - "sourceLanguage": "EditorConfig" - }, - "contextRegion": { - "startLine": 169, - "startColumn": 1, - "charOffset": 6618, - "charLength": 208, - "snippet": { - "text": "resharper_arrange_object_creation_when_type_not_evident_highlighting = none\n\nresharper_unused_auto_property_accessor_global_highlighting = none\n\nresharper_unused_method_return_value_global_highlighting = none" - }, - "sourceLanguage": "EditorConfig" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "1b9f756ea618b3a1", - "equalIndicator/v1": "f4dedbf8e985341cdfaa2ad6304d0d02419a65ce14c2ad3426df8c33dee1d38d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "EditorConfig" - ] - } - }, - { - "ruleId": "UnusedType.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Class 'IgnoreConfigurationBuilder' is never used (except inside its declaration)", - "markdown": "Class 'IgnoreConfigurationBuilder' is never used (except inside its declaration)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/IgnoreConfigurationBuilder.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 3, - "startColumn": 23, - "charOffset": 59, - "charLength": 26, - "snippet": { - "text": "IgnoreConfigurationBuilder" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 1, - "startColumn": 1, - "charOffset": 0, - "charLength": 146, - "snippet": { - "text": "namespace GitVersion.Configuration;\n\ninternal sealed class IgnoreConfigurationBuilder\n{\n public static IgnoreConfigurationBuilder New => new();" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "25a2ace762dfb00f", - "equalIndicator/v1": "15d42fca64552bc8aff310e634bee6a2b9146fc9dfb8eb5f3b15593287d2233b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "UnusedType.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Class 'TaggedCommitVersionStrategy' is never used", - "markdown": "Class 'TaggedCommitVersionStrategy' is never used" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core/VersionCalculation/VersionSearchStrategies/TaggedCommitVersionStrategy.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 13, - "startColumn": 23, - "charOffset": 409, - "charLength": 27, - "snippet": { - "text": "TaggedCommitVersionStrategy" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 11, - "startColumn": 1, - "charOffset": 319, - "charLength": 173, - "snippet": { - "text": "/// Increments if the tag is not the current commit.\n/// </summary>\ninternal sealed class TaggedCommitVersionStrategy(\n ILog log,\n Lazy<GitVersionContext> contextLazy," - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Core", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d967b3fae2f6c018", - "equalIndicator/v1": "2df185ac94ad6c05efc2fb1b76cd20af362ffd450a47b703bb7dc4d31038aecf" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "UnusedType.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Class 'TrackReleaseBranchesVersionStrategy' is never used", - "markdown": "Class 'TrackReleaseBranchesVersionStrategy' is never used" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core/VersionCalculation/VersionSearchStrategies/TrackReleaseBranchesVersionStrategy.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 10, - "startColumn": 23, - "charOffset": 235, - "charLength": 35, - "snippet": { - "text": "TrackReleaseBranchesVersionStrategy" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 8, - "startColumn": 1, - "charOffset": 171, - "charLength": 179, - "snippet": { - "text": "namespace GitVersion.VersionCalculation;\n\ninternal sealed class TrackReleaseBranchesVersionStrategy(\n Lazy<GitVersionContext> contextLazy,\n IRepositoryStore repositoryStore," - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Core", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "b4f244eb64615685", - "equalIndicator/v1": "b63af6c15c019a9c52843e65463894bda0c76e2ebfb309105acccc5db97bedb4" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "SwitchExpressionHandlesSomeKnownEnumValuesWithExceptionInDefault", - "kind": "fail", - "level": "note", - "message": { - "text": "Some values of the enum are not processed inside switch: Inherit", - "markdown": "Some values of the enum are not processed inside switch: Inherit" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core/Extensions/IncrementStrategyExtensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 5, - "startColumn": 92, - "charOffset": 175, - "charLength": 6, - "snippet": { - "text": "switch" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 3, - "startColumn": 1, - "charOffset": 34, - "charLength": 206, - "snippet": { - "text": "public static class IncrementStrategyExtensions\n{\n public static VersionField ToVersionField(this IncrementStrategy strategy) => strategy switch\n {\n IncrementStrategy.None => VersionField.None," - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Core", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "1ac30133f4a78181", - "equalIndicator/v1": "9be1d124e5d238645ce52708262f518ad3f9f4177c6a2da2044e3143590df0db" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - } - ], - "automationDetails": { - "id": "GitVersion/qodana/2025-04-24", - "guid": "cc99868b-5843-4366-856f-fdd3074dad26", - "properties": { - "jobUrl": "https://github.com/GitTools/GitVersion/actions/runs/14649015427", - "analysisKind": "regular" - } - }, - "newlineSequences": [ - "\r\n", - "\n" - ], - "properties": { - "qodana.promo.results": [ - { - "ruleId": "AutoPropertyCanBeMadeGetOnly.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Auto-property can be made get-only", - "markdown": "Auto-property can be made get-only" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core/SemVer/SemanticVersionPreReleaseTag.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 17, - "startColumn": 31, - "charOffset": 633, - "charLength": 5, - "snippet": { - "text": "init;" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 15, - "startColumn": 1, - "charOffset": 561, - "charLength": 119, - "snippet": { - "text": " new(x => x.Name, x => x.Number);\n\n public string Name { get; init; }\n\n public long? Number { get; init; }" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Core", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "39b1096331f5a6c8", - "equalIndicator/v1": "07a7b31b43b99bfe0c26afff61e4b0f77109d932a5cdc8f28e9061154276c7b6" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "AutoPropertyCanBeMadeGetOnly.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Auto-property can be made get-only", - "markdown": "Auto-property can be made get-only" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.MsBuild/Tasks/UpdateAssemblyInfo.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 14, - "startColumn": 44, - "charOffset": 335, - "charLength": 14, - "snippet": { - "text": "internal init;" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 12, - "startColumn": 1, - "charOffset": 276, - "charLength": 97, - "snippet": { - "text": "\n [Required]\n public ITaskItem[] CompileFiles { get; internal init; } = [];\n\n [Required]" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.MsBuild", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "b9242d297fc3a345", - "equalIndicator/v1": "5ac45d68c9deae77a0676e6f36c18fe17b6d8a1261a8d8301018251345a9c3d7" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "AutoPropertyCanBeMadeGetOnly.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Auto-property can be made get-only", - "markdown": "Auto-property can be made get-only" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core/SemVer/SemanticVersionBuildMetaData.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 31, - "startColumn": 43, - "charOffset": 894, - "charLength": 5, - "snippet": { - "text": "init;" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 29, - "startColumn": 1, - "charOffset": 794, - "charLength": 150, - "snippet": { - "text": " public long CommitsSinceVersionSource { get; init; }\n\n public long UncommittedChanges { get; init; }\n\n public SemanticVersionBuildMetaData()" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Core", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "945534524a3ecb00", - "equalIndicator/v1": "963653db6db79949c03af1d532a9e55bc25bff64c3ebae3928847676f6cbee01" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "AutoPropertyCanBeMadeGetOnly.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Auto-property can be made get-only", - "markdown": "Auto-property can be made get-only" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core/SemVer/SemanticVersionPreReleaseTag.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 21, - "startColumn": 52, - "charOffset": 733, - "charLength": 5, - "snippet": { - "text": "init;" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 19, - "startColumn": 1, - "charOffset": 642, - "charLength": 165, - "snippet": { - "text": " public long? Number { get; init; }\n\n public bool PromoteTagEvenIfNameIsEmpty { get; init; }\n\n public SemanticVersionPreReleaseTag() => Name = string.Empty;" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Core", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "b1e31eb5a46c5488", - "equalIndicator/v1": "f2380853e2e0a368b92041f47e42e69ff59b1ab8276af3e4c6d7876e721e903e" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "CA1822", - "kind": "fail", - "level": "note", - "message": { - "text": "Member 'FromJson' does not access instance data and can be marked as static", - "markdown": "Member 'FromJson' does not access instance data and can be marked as static" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Output/Serializer/VersionVariableSerializer.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 10, - "startColumn": 32, - "charOffset": 285, - "charLength": 8, - "snippet": { - "text": "FromJson" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 8, - "startColumn": 1, - "charOffset": 158, - "charLength": 210, - "snippet": { - "text": "internal class VersionVariableSerializer(IFileSystem fileSystem) : IVersionVariableSerializer\n{\n public GitVersionVariables FromJson(string json)\n {\n var serializeOptions = JsonSerializerOptions();" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Output", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f5b3f2f4c3239efc", - "equalIndicator/v1": "1200334ba035fbe3aa0c822c791d74b4c1ba606802c21aca6551b04f37a0d2a9" - }, - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBeMadeStatic.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'FromJson' can be made static", - "markdown": "Method 'FromJson' can be made static" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Output/Serializer/VersionVariableSerializer.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 10, - "startColumn": 32, - "charOffset": 285, - "charLength": 8, - "snippet": { - "text": "FromJson" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 8, - "startColumn": 1, - "charOffset": 158, - "charLength": 210, - "snippet": { - "text": "internal class VersionVariableSerializer(IFileSystem fileSystem) : IVersionVariableSerializer\n{\n public GitVersionVariables FromJson(string json)\n {\n var serializeOptions = JsonSerializerOptions();" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Output", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d0162cfd80034eca", - "equalIndicator/v1": "73e075508fa3cbc3c31932c3d8f6071e21c10a5115a1398bb75174d763537d46" - }, - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'GetBranchSpecificLabel' can be made private", - "markdown": "Method 'GetBranchSpecificLabel' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core/Extensions/ConfigurationExtensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 80, - "startColumn": 5, - "charOffset": 3601, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 78, - "startColumn": 1, - "charOffset": 3500, - "charLength": 251, - "snippet": { - "text": " => GetBranchSpecificLabel(configuration, branchName.WithoutOrigin, branchNameOverride);\n\n public static string? GetBranchSpecificLabel(\n this EffectiveConfiguration configuration, string? branchName, string? branchNameOverride)\n {" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Core", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "3fa24d0f0642f9f7", - "equalIndicator/v1": "07f27f91c4ae9f1e135bc1acf3fdc7a6e27e5cc17691d895c26651ee7919b5ac" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'WithUpdateBuildNumber' can be made private", - "markdown": "Method 'WithUpdateBuildNumber' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 193, - "startColumn": 5, - "charOffset": 6597, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 191, - "startColumn": 1, - "charOffset": 6586, - "charLength": 119, - "snippet": { - "text": " }\n\n public TConfigurationBuilder WithUpdateBuildNumber(bool value)\n {\n this.updateBuildNumber = value;" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f4cdb250e446d78c", - "equalIndicator/v1": "162dc3f8ebaf56ace070dc004cdb6c7aef4f713e104e8acf36ec6d4840918519" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'WithPreventIncrementOfMergedBranch' can be made private", - "markdown": "Method 'WithPreventIncrementOfMergedBranch' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 260, - "startColumn": 5, - "charOffset": 8891, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 258, - "startColumn": 1, - "charOffset": 8880, - "charLength": 146, - "snippet": { - "text": " }\n\n public TConfigurationBuilder WithPreventIncrementOfMergedBranch(bool? value)\n {\n this.preventIncrementOfMergedBranch = value;" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a438203fe493332f", - "equalIndicator/v1": "17501f1b3cb4687f5bf4871cd3cee6f28a0fb9277cee5c439001d9f564e3a130" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'IsLabeledWith' can be made private", - "markdown": "Method 'IsLabeledWith' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core/SemVer/SemanticVersion.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 24, - "startColumn": 5, - "charOffset": 623, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 22, - "startColumn": 1, - "charOffset": 549, - "charLength": 246, - "snippet": { - "text": " public SemanticVersionBuildMetaData BuildMetaData { get; init; }\n\n public bool IsLabeledWith(string value) => PreReleaseTag.HasTag() && PreReleaseTag.Name.IsEquivalentTo(value);\n\n public bool IsMatchForBranchSpecificLabel(string? value)" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Core", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a204ee13475fb9ad", - "equalIndicator/v1": "1a1388cf56fd9986badb2156d80a3858fa545384a3e7b13b71eeb4519ebcdb4a" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'WithNoBumpMessage' can be made private", - "markdown": "Method 'WithNoBumpMessage' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 169, - "startColumn": 5, - "charOffset": 5913, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 167, - "startColumn": 1, - "charOffset": 5902, - "charLength": 114, - "snippet": { - "text": " }\n\n public TConfigurationBuilder WithNoBumpMessage(string? value)\n {\n this.noBumpMessage = value;" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "53f8f91c63188b63", - "equalIndicator/v1": "1d04599576977cee54240cb129d4b3b7e3d60d038e1e913fa0b7fe1e6e3d9409" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'ToString' can be made private", - "markdown": "Method 'ToString' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core/SemVer/SemanticVersionPreReleaseTag.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 105, - "startColumn": 5, - "charOffset": 4019, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 103, - "startColumn": 1, - "charOffset": 3958, - "charLength": 166, - "snippet": { - "text": " public override string ToString() => ToString(\"t\");\n\n public string ToString(string format) => ToString(format, CultureInfo.CurrentCulture);\n\n /// <summary>" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Core", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "306f43e59749c8c7", - "equalIndicator/v1": "1e655491f52cd8d75af8440cfe48b2d777ca6fa88da809b6ea67c61e8bad258c" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Property 'Context' can be made private", - "markdown": "Property 'Context' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core/VersionCalculation/VersionCalculators/VersionCalculatorBase.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 15, - "startColumn": 5, - "charOffset": 509, - "charLength": 9, - "snippet": { - "text": "protected" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 13, - "startColumn": 1, - "charOffset": 416, - "charLength": 257, - "snippet": { - "text": " private readonly Lazy<GitVersionContext> versionContext = versionContext.NotNull();\n\n protected GitVersionContext Context => this.versionContext.Value;\n\n protected SemanticVersionBuildMetaData CreateVersionBuildMetaData(ICommit? baseVersionSource)" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Core", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "edfbdbeba3db16ef", - "equalIndicator/v1": "25413b6464d5050748f884f073d7dd63c750b68d47aba1fb4936a3946f013179" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'DumpGraph' can be made private", - "markdown": "Method 'DumpGraph' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core.Tests/Extensions/GitRepositoryTestingExtensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 65, - "startColumn": 5, - "charOffset": 2479, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 63, - "startColumn": 1, - "charOffset": 2415, - "charLength": 254, - "snippet": { - "text": " => DumpGraph(repository.Path, writer, maxCommits);\n\n public static void DumpGraph(this IRepository repository, Action<string>? writer = null, int? maxCommits = null)\n => DumpGraph(repository.ToGitRepository().Path, writer, maxCommits);\n" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.MsBuild.Tests", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f66041ca3f62af8b", - "equalIndicator/v1": "3cec01000c68144291c9e0f834ba4490e64a85767ef5b82b2fdc29cdf41f8406" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'CompareTo' can be made private", - "markdown": "Method 'CompareTo' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core/SemVer/SemanticVersion.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 221, - "startColumn": 5, - "charOffset": 7523, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 219, - "startColumn": 1, - "charOffset": 7423, - "charLength": 201, - "snippet": { - "text": " public int CompareTo(SemanticVersion? value) => CompareTo(value, includePreRelease: true);\n\n public int CompareTo(SemanticVersion? value, bool includePreRelease)\n {\n if (value == null)" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Core", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "dc198b8584f3d313", - "equalIndicator/v1": "59ffba36bf2f386e1e0d7b4bc0aaab48fabaa6d4afb5965b1cb95fef23992adc" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'GetCurrentDirectory' can be made private", - "markdown": "Method 'GetCurrentDirectory' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core/Helpers/FileSystemHelper.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 74, - "startColumn": 9, - "charOffset": 3205, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 72, - "startColumn": 1, - "charOffset": 3142, - "charLength": 291, - "snippet": { - "text": " : StringComparison.OrdinalIgnoreCase;\n\n public static string GetCurrentDirectory() => AppContext.BaseDirectory ?? throw new InvalidOperationException();\n\n public static string GetTempPathLegacy() => fileSystem.Path.GetTempPath().TrimEnd(DirectorySeparatorChar);" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Testing", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "54963d95d4a2b1c2", - "equalIndicator/v1": "6732e23188eba6b8c688b733a53c5a6787409739d46b248f42458ac8e747df96" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'GetFullPath' can be made private", - "markdown": "Method 'GetFullPath' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core/Helpers/FileSystemHelper.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 108, - "startColumn": 9, - "charOffset": 4537, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 106, - "startColumn": 1, - "charOffset": 4432, - "charLength": 258, - "snippet": { - "text": " public static string? GetExtension(string? path) => fileSystem.Path.GetExtension(path);\n\n public static string GetFullPath(string? path) => fileSystem.Path.GetFullPath(path!);\n\n public static string Combine(string? path1, string? path2)" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Testing", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "9a5d1a2ad5c4e5b8", - "equalIndicator/v1": "7bd476cf03181321fa398a10395699e96bf050ce5a5ec1162fe7964d43feacb1" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'WithIsReleaseBranch' can be made private", - "markdown": "Method 'WithIsReleaseBranch' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 308, - "startColumn": 5, - "charOffset": 10357, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 306, - "startColumn": 1, - "charOffset": 10346, - "charLength": 116, - "snippet": { - "text": " }\n\n public TConfigurationBuilder WithIsReleaseBranch(bool? value)\n {\n this.isReleaseBranch = value;" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d841d600090e0246", - "equalIndicator/v1": "7c856ca43421ba359bbd8a46382b230df0b206e8b49a4c467035ef80c298b36a" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'GetTempPath' can be made private", - "markdown": "Method 'GetTempPath' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core/Helpers/FileSystemHelper.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 77, - "startColumn": 9, - "charOffset": 3442, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 75, - "startColumn": 1, - "charOffset": 3318, - "charLength": 218, - "snippet": { - "text": "\n public static string GetTempPathLegacy() => fileSystem.Path.GetTempPath().TrimEnd(DirectorySeparatorChar);\n public static string GetTempPath()\n {\n var tempPath = GetCurrentDirectory();" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Testing", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e9bbe0a232d1f2bb", - "equalIndicator/v1": "81aff2ce6987502feac67c101fd449948663144ad455a51e46285cd218675829" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'WithRegularExpression' can be made private", - "markdown": "Method 'WithRegularExpression' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 296, - "startColumn": 5, - "charOffset": 10017, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 294, - "startColumn": 1, - "charOffset": 10006, - "charLength": 122, - "snippet": { - "text": " }\n\n public TConfigurationBuilder WithRegularExpression(string? value)\n {\n this.regularExpression = value;" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "70211adbe88a21f9", - "equalIndicator/v1": "8697076173547d2573eff685a6e8048b90a53a6f77cb7f4fe749f7533fa3dc72" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'WithPreventIncrementWhenCurrentCommitTagged' can be made private", - "markdown": "Method 'WithPreventIncrementWhenCurrentCommitTagged' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 272, - "startColumn": 5, - "charOffset": 9277, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 270, - "startColumn": 1, - "charOffset": 9266, - "charLength": 164, - "snippet": { - "text": " }\n\n public TConfigurationBuilder WithPreventIncrementWhenCurrentCommitTagged(bool? value)\n {\n this.preventIncrementWhenCurrentCommitTagged = value;" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "9fcdeb835eacbafa", - "equalIndicator/v1": "8bed8fd8ed8cd10ae282611bde7cf3db2b2429b2c2094767b8869c59be508a56" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'WithPreReleaseWeight' can be made private", - "markdown": "Method 'WithPreReleaseWeight' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 320, - "startColumn": 5, - "charOffset": 10673, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 318, - "startColumn": 1, - "charOffset": 10662, - "charLength": 117, - "snippet": { - "text": " }\n\n public TConfigurationBuilder WithPreReleaseWeight(int? value)\n {\n this.preReleaseWeight = value;" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "fa34c0dd386ebf63", - "equalIndicator/v1": "8dd744fa23bef7b300485157af43879871db8b2ee29201d3fc0e7ea51081448f" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'WithTracksReleaseBranches' can be made private", - "markdown": "Method 'WithTracksReleaseBranches' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 302, - "startColumn": 5, - "charOffset": 10184, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 300, - "startColumn": 1, - "charOffset": 10173, - "charLength": 128, - "snippet": { - "text": " }\n\n public TConfigurationBuilder WithTracksReleaseBranches(bool? value)\n {\n this.tracksReleaseBranches = value;" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "72e585b50d1d68cd", - "equalIndicator/v1": "8edc4dd166cb4befd91c6b9c0352e5ba4e08dee7b4c14811073693f08fd5c1b3" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'WithShas' can be made private", - "markdown": "Method 'WithShas' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/IgnoreConfigurationBuilder.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 29, - "startColumn": 5, - "charOffset": 672, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 27, - "startColumn": 1, - "charOffset": 661, - "charLength": 109, - "snippet": { - "text": " }\n\n public IgnoreConfigurationBuilder WithShas(HashSet<string> value)\n {\n this.shas = value;" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "79d7694be7303156", - "equalIndicator/v1": "9191b831b7a6c97d7f2befa29faf57850e20a6e19d4825d9a7f969ed27bfc28a" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'WithTrackMergeTarget' can be made private", - "markdown": "Method 'WithTrackMergeTarget' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 278, - "startColumn": 5, - "charOffset": 9486, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 276, - "startColumn": 1, - "charOffset": 9475, - "charLength": 118, - "snippet": { - "text": " }\n\n public TConfigurationBuilder WithTrackMergeTarget(bool? value)\n {\n this.trackMergeTarget = value;" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "07c819bfc6ae3ff8", - "equalIndicator/v1": "932a115609e38ccdc5b15021ffd491e1dc5465c72c341bd300126021849a5403" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'WithPreventIncrementWhenBranchMerged' can be made private", - "markdown": "Method 'WithPreventIncrementWhenBranchMerged' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 266, - "startColumn": 5, - "charOffset": 9082, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 264, - "startColumn": 1, - "charOffset": 9071, - "charLength": 150, - "snippet": { - "text": " }\n\n public TConfigurationBuilder WithPreventIncrementWhenBranchMerged(bool? value)\n {\n this.preventIncrementWhenBranchMerged = value;" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f8c7df635da2b8ad", - "equalIndicator/v1": "9d1091b9ff2d424c0812ed314a87cfd29c7f6eeecf559efc306e108cc1c4a2ab" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'DiscoverRepository' can be made private", - "markdown": "Method 'DiscoverRepository' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core.Tests/Extensions/GitRepositoryTestingExtensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 51, - "startColumn": 5, - "charOffset": 1734, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 49, - "startColumn": 1, - "charOffset": 1723, - "charLength": 149, - "snippet": { - "text": " }\n\n public static void DiscoverRepository(this IServiceProvider sp)\n {\n var gitRepository = sp.GetRequiredService<IGitRepository>();" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.MsBuild.Tests", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "3b81dbc907dc82f9", - "equalIndicator/v1": "a4265a9c06bacc2838ccd8059ca6d68eacce0b3e23d5fd78b54e6a812bca24b2" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'GetVersion' can be made private", - "markdown": "Method 'GetVersion' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core.Tests/Extensions/GitRepositoryTestingExtensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 68, - "startColumn": 5, - "charOffset": 2674, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 66, - "startColumn": 1, - "charOffset": 2592, - "charLength": 343, - "snippet": { - "text": " => DumpGraph(repository.ToGitRepository().Path, writer, maxCommits);\n\n public static GitVersionVariables GetVersion(this RepositoryFixtureBase fixture, IGitVersionConfiguration? configuration = null,\n IRepository? repository = null, string? commitId = null, bool onlyTrackedBranches = true, string? targetBranch = null)\n {" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.MsBuild.Tests", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "318ac156b1657713", - "equalIndicator/v1": "a4afd1b08385395f0807fd8f3fc04f39d8fc8314a24009a2342a71b99c37769a" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Property 'DirectorySeparatorChar' can be made private", - "markdown": "Property 'DirectorySeparatorChar' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core/Helpers/FileSystemHelper.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 67, - "startColumn": 9, - "charOffset": 2878, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 65, - "startColumn": 1, - "charOffset": 2808, - "charLength": 228, - "snippet": { - "text": " {\n public static string NewLine => SysEnv.NewLine;\n public static char DirectorySeparatorChar => fileSystem.Path.DirectorySeparatorChar;\n\n private static readonly StringComparison OsDependentComparison =" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Testing", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "47e20dd81572c251", - "equalIndicator/v1": "a4f011d97b4f80ac560ed9ef839d4f3c53a31f9e284590ecb9000c1363ff5b8e" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'WithAssemblyVersioningFormat' can be made private", - "markdown": "Method 'WithAssemblyVersioningFormat' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 121, - "startColumn": 5, - "charOffset": 4516, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 119, - "startColumn": 1, - "charOffset": 4505, - "charLength": 136, - "snippet": { - "text": " }\n\n public TConfigurationBuilder WithAssemblyVersioningFormat(string? value)\n {\n this.assemblyVersioningFormat = value;" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "65ec659931f70250", - "equalIndicator/v1": "a9ff1f6afad5baa1879308d0688fc50f93231148751f22ab0382a727857f2c0c" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Constructor 'SemanticVersionPreReleaseTag' can be made private", - "markdown": "Constructor 'SemanticVersionPreReleaseTag' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core/SemVer/SemanticVersionPreReleaseTag.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 23, - "startColumn": 5, - "charOffset": 746, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 21, - "startColumn": 1, - "charOffset": 682, - "charLength": 227, - "snippet": { - "text": " public bool PromoteTagEvenIfNameIsEmpty { get; init; }\n\n public SemanticVersionPreReleaseTag() => Name = string.Empty;\n\n public SemanticVersionPreReleaseTag(string name, long? number, bool promoteTagEvenIfNameIsEmpty)" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Core", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4a42a72507675ee0", - "equalIndicator/v1": "cda0e8d0b89f3b9e17c4a83e1e9316a95447c3eb3c58bef1794d599c5bb8d116" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Property 'PromoteTagEvenIfNameIsEmpty' can be made private", - "markdown": "Property 'PromoteTagEvenIfNameIsEmpty' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core/SemVer/SemanticVersionPreReleaseTag.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 21, - "startColumn": 5, - "charOffset": 686, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 19, - "startColumn": 1, - "charOffset": 642, - "charLength": 165, - "snippet": { - "text": " public long? Number { get; init; }\n\n public bool PromoteTagEvenIfNameIsEmpty { get; init; }\n\n public SemanticVersionPreReleaseTag() => Name = string.Empty;" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Core", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "304d08da85634319", - "equalIndicator/v1": "ce384c072aedd7cfb73948dda11dcd04749e99d41826a45d7df82e6ad841b651" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Property 'RefSpecs' can be made private", - "markdown": "Property 'RefSpecs' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.LibGit2Sharp/Git/Remote.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 20, - "startColumn": 5, - "charOffset": 720, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 18, - "startColumn": 1, - "charOffset": 668, - "charLength": 107, - "snippet": { - "text": " public string Url => this.innerRemote.Url;\n\n public IEnumerable<IRefSpec> RefSpecs\n {\n get" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.LibGit2Sharp", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0b42b6fe81d50fee", - "equalIndicator/v1": "d9b036319212323201c50ca1c4b114e7cfd397a81f5cadd17e9763b36e145fec" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'WithVersionInBranchPattern' can be made private", - "markdown": "Method 'WithVersionInBranchPattern' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 139, - "startColumn": 5, - "charOffset": 5044, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 137, - "startColumn": 1, - "charOffset": 5033, - "charLength": 132, - "snippet": { - "text": " }\n\n public TConfigurationBuilder WithVersionInBranchPattern(string? value)\n {\n this.versionInBranchPattern = value;" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "8348fe093daaf082", - "equalIndicator/v1": "da3a2b7bb813af9c8beb4477fcf5c07fc1e5fc4e6d6eeccd8de2e690e3fdeaa7" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'ToGitRepository' can be made private", - "markdown": "Method 'ToGitRepository' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core.Tests/Extensions/GitRepositoryTestingExtensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 161, - "startColumn": 5, - "charOffset": 6451, - "charLength": 8, - "snippet": { - "text": "internal" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 159, - "startColumn": 1, - "charOffset": 6440, - "charLength": 154, - "snippet": { - "text": " }\n\n internal static IGitRepository ToGitRepository(this IRepository repository)\n {\n var gitRepository = new GitRepository(new NullLog());" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.MsBuild.Tests", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "aa5d8e1a3910919c", - "equalIndicator/v1": "de8f75ffee4f641447c9483347e33e7705e4b9ef7d5131112ae2cdd416322ab0" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'WithIsMainBranch' can be made private", - "markdown": "Method 'WithIsMainBranch' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 314, - "startColumn": 5, - "charOffset": 10518, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 312, - "startColumn": 1, - "charOffset": 10507, - "charLength": 110, - "snippet": { - "text": " }\n\n public TConfigurationBuilder WithIsMainBranch(bool? value)\n {\n this.isMainBranch = value;" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0625bb954b3755eb", - "equalIndicator/v1": "e1537a990b34403b4d0d5046b725d803e2a199c4fba0bf04dd25e4ce99f3002b" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'Combine' can be made private", - "markdown": "Method 'Combine' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core/Helpers/FileSystemHelper.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 125, - "startColumn": 9, - "charOffset": 5097, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 123, - "startColumn": 1, - "charOffset": 5078, - "charLength": 164, - "snippet": { - "text": " }\n\n public static string Combine(string? path1, string? path2, string? path3)\n {\n ArgumentException.ThrowIfNullOrWhiteSpace(path1);" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Testing", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "9efd3542863b65cb", - "equalIndicator/v1": "e8a2e96804c2dd49761635866a90126621007fc0bc2e3d505ebc6fef0f03383c" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'WithTrackMergeMessage' can be made private", - "markdown": "Method 'WithTrackMergeMessage' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 284, - "startColumn": 5, - "charOffset": 9649, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 282, - "startColumn": 1, - "charOffset": 9638, - "charLength": 120, - "snippet": { - "text": " }\n\n public TConfigurationBuilder WithTrackMergeMessage(bool? value)\n {\n this.trackMergeMessage = value;" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "c12445c5a92fea37", - "equalIndicator/v1": "fb7a2ab2c07c95d3f2a1c47d6f74f1cc0e45c77007c49f7ea9e387cc7b4ffb8d" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Field 'repositoryStore' can be made private", - "markdown": "Field 'repositoryStore' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core/VersionCalculation/VersionCalculators/VersionCalculatorBase.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 12, - "startColumn": 5, - "charOffset": 335, - "charLength": 9, - "snippet": { - "text": "protected" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 10, - "startColumn": 1, - "charOffset": 280, - "charLength": 224, - "snippet": { - "text": "{\n protected readonly ILog log = log.NotNull();\n protected readonly IRepositoryStore repositoryStore = repositoryStore.NotNull();\n private readonly Lazy<GitVersionContext> versionContext = versionContext.NotNull();\n" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Core", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d774cc88ea0885cc", - "equalIndicator/v1": "fc453f975365798d2caf47bd8a217f79da184734fe3652e261743ccf2cb2fb7c" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBeProtected.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'WithIsSourceBranchFor' can be made protected", - "markdown": "Method 'WithIsSourceBranchFor' can be made protected" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/BranchConfigurationBuilder.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 102, - "startColumn": 5, - "charOffset": 2934, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 100, - "startColumn": 1, - "charOffset": 2923, - "charLength": 152, - "snippet": { - "text": " }\n\n public virtual BranchConfigurationBuilder WithIsSourceBranchFor(IEnumerable<string> values)\n {\n WithIsSourceBranchFor([.. values]);" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "907339a47a48aba5", - "equalIndicator/v1": "26daf9e7e80d3d2b5b915dd59c36b06265526229dc1ce38f2c3d1c54476f930d" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBeProtected.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Constant 'MainBranch' can be made protected", - "markdown": "Constant 'MainBranch' can be made protected" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core.Tests/Helpers/TestBase.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 10, - "startColumn": 5, - "charOffset": 206, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 8, - "startColumn": 1, - "charOffset": 178, - "charLength": 178, - "snippet": { - "text": "public class TestBase\n{\n public const string MainBranch = \"main\";\n\n protected static IServiceProvider ConfigureServices(Action<IServiceCollection>? overrideServices = null)" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.MsBuild.Tests", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d8605a834ce1f2ec", - "equalIndicator/v1": "36bec50ba3e6870ccade82084537061038c70a64dee81529a4d3f0e1a0f37a8a" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBeProtected.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'WithConfiguration' can be made protected", - "markdown": "Method 'WithConfiguration' can be made protected" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 326, - "startColumn": 5, - "charOffset": 10835, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 324, - "startColumn": 1, - "charOffset": 10824, - "charLength": 165, - "snippet": { - "text": " }\n\n public TConfigurationBuilder WithConfiguration(IGitVersionConfiguration value)\n {\n WithAssemblyVersioningScheme(value.AssemblyVersioningScheme);" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "50524bf965a4b8da", - "equalIndicator/v1": "60b9a3ae23943157b539c2d72261df7557fb4ac690984f6a78a697bc179c1db9" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBeProtected.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'WithSourceBranches' can be made protected", - "markdown": "Method 'WithSourceBranches' can be made protected" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/BranchConfigurationBuilder.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 90, - "startColumn": 5, - "charOffset": 2600, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 88, - "startColumn": 1, - "charOffset": 2589, - "charLength": 146, - "snippet": { - "text": " }\n\n public virtual BranchConfigurationBuilder WithSourceBranches(IEnumerable<string> values)\n {\n WithSourceBranches([.. values]);" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "99829247586fa2d8", - "equalIndicator/v1": "9b5933600024cb61754ddb6cf50acd68e820744494fc03e9df4381f5fb2c5dcc" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBeProtected.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'WithPreventIncrementWhenBranchMerged' can be made protected", - "markdown": "Method 'WithPreventIncrementWhenBranchMerged' can be made protected" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/BranchConfigurationBuilder.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 54, - "startColumn": 5, - "charOffset": 1558, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 52, - "startColumn": 1, - "charOffset": 1547, - "charLength": 163, - "snippet": { - "text": " }\n\n public virtual BranchConfigurationBuilder WithPreventIncrementWhenBranchMerged(bool? value)\n {\n this.preventIncrementWhenBranchMerged = value;" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "71e7d9b29242c60a", - "equalIndicator/v1": "b858e2f3b626a01e808428a2774ff97c1b17fcb757f23f4f64398e392b81dd3e" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBeProtected.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'WithBranch' can be made protected", - "markdown": "Method 'WithBranch' can be made protected" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 229, - "startColumn": 5, - "charOffset": 7788, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 227, - "startColumn": 1, - "charOffset": 7777, - "charLength": 169, - "snippet": { - "text": " }\n\n public BranchConfigurationBuilder WithBranch(string value)\n => this.branchConfigurationBuilders.GetOrAdd(value, () => BranchConfigurationBuilder.New);\n" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "fbde394b0bdaac89", - "equalIndicator/v1": "e8d7c2d9d95e73a87b377c0050c29d16bfae58ce8c8bb67b334a49da873d4650" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - } - ], - "configProfile": "starter", - "deviceId": "200820300000000-3e47-7fab-260c-3266c4769609", - "qodanaNewResultSummary": { - "low": 1, - "total": 1 - } - } - } - ] -} \ No newline at end of file diff --git a/qodana.yaml b/qodana.yaml deleted file mode 100644 index 3385aa8609..0000000000 --- a/qodana.yaml +++ /dev/null @@ -1,120 +0,0 @@ -#-------------------------------------------------------------------------------# -# Qodana analysis is configured by qodana.yaml file # -# https://www.jetbrains.com/help/qodana/qodana-yaml.html # -#-------------------------------------------------------------------------------# -version: "1.0" -#Specify inspection profile for code analysis -profile: - name: qodana.starter -linter: jetbrains/qodana-cdnet:latest -include: - - name: ConvertIfStatementToReturnStatement - - name: ConvertIfStatementToConditionalTernaryExpression - - name: AutoPropertyCanBeMadeGetOnly - - name: CanReplaceCastWithLambdaReturnType - - name: ChangeFieldTypeToSystemThreadingLock - - name: ConvertIfStatementToSwitchStatement - - name: ConvertToConstant.Local - - name: DuplicatedSequentialIfBodies - - name: InlineTemporaryVariable - - name: InvertIf - - name: UseVerbatimString - - name: MemberCanBePrivate - - name: MemberCanBeProtected - - name: MergeIntoPattern - - name: UnusedMethodReturnValue.Global - - name: EditorConfigNoMatchingFiles - - name: PreferConcreteValueOverDefault - - name: PropertyCanBeMadeInitOnly.Global - - name: MoveLocalFunctionAfterJumpStatement - - name: RedundantExplicitParamsArrayCreation - - name: RedundantOverload.Global - - name: RedundantStringInterpolation - - name: RedundantVerbatimStringPrefix - - name: ReplaceSubstringWithRangeIndexer - - name: RCS1001 - - name: RCS1003 - - name: RCS1123 - - name: SYSLIB1045 - - name: CA1826 - - name: RCS1256 - - name: RCS1118 - - name: RCS1077 - - name: RCS1205 - - name: RCS1214 - - name: RCS1249 - - name: RCS1192 - - name: SYSLIB1054 - - name: CA1512 - - name: CA1866 - - name: CA1859 - - name: RCS1246 - - name: CA1829 - - name: RCS1266 - - name: RCS1267 - - name: RCS1227 - - name: SwitchExpressionHandlesSomeKnownEnumValuesWithExceptionInDefault - - name: SwitchStatementHandlesSomeKnownEnumValuesWithDefault - - name: RedundantAlwaysMatchSubpattern - - name: UnusedType.Global - - name: UnusedMemberInSuper.Global - - name: UnusedMember.Local - - name: EditorConfigKeyCorrectness - - name: UseCollectionCountProperty - - name: UseDiscardAssignment - - name: ArrangeNamespaceBody - - name: SuggestDiscardDeclarationVarStyle - - name: ArrangeTrailingCommaInMultilineLists - - name: ArrangeObjectCreationWhenTypeNotEvident - - name: UseRawString - - name: VirtualMemberNeverOverridden.Global - - name: ArrangeVarKeywordsInDeconstructingDeclaration - - name: SuggestVarOrType_BuiltInTypes - -#Enable inspections -#include: -# - name: <SomeEnabledInspectionId> - -#Disable inspections -exclude: - - name: LoopCanBeConvertedToQuery - - name: ForeachCanBePartlyConvertedToQueryUsingAnotherGetEnumerator - - name: ConvertIfStatementToConditionalTernaryExpression - paths: - - GitVersion.Core.Tests/IntegrationTests/AlignGitFlowWithMainlineVersionStrategy.cs - - GitVersion.Core.Tests/IntegrationTests/AlignGitHubFlowWithMainlineVersionStrategy.cs - - name: MemberCanBeProtected - paths: - - GitVersion.Configuration/Builders/BranchConfigurationBuilder.cs - - GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs - - GitVersion.Core.Tests/Helpers/TestBase.cs - - name: MemberCanBePrivate - paths: - - GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs - - GitVersion.Configuration/Builders/IgnoreConfigurationBuilder.cs - - GitVersion.Core/Helpers/FileSystemHelper.cs - - GitVersion.Core/SemVer/SemanticVersionPreReleaseTag.cs - - GitVersion.Core/SemVer/SemanticVersion.cs - - GitVersion.Core/VersionCalculation/VersionCalculators/VersionCalculatorBase.cs - - GitVersion.Core/Extensions/ConfigurationExtensions.cs - - GitVersion.Core.Tests/Extensions/GitRepositoryTestingExtensions.cs - - GitVersion.LibGit2Sharp/Git/Remote.cs - - name: AutoPropertyCanBeMadeGetOnly - paths: - - GitVersion.Core/SemVer/SemanticVersionPreReleaseTag.cs - - GitVersion.Core/SemVer/SemanticVersionBuildMetaData.cs - - GitVersion.MsBuild/Tasks/UpdateAssemblyInfo.cs - - name: UnusedType - paths: - - GitVersion.Core/VersionCalculation/VersionSearchStrategies/TaggedCommitVersionStrategy.cs - - GitVersion.Core/VersionCalculation/VersionSearchStrategies/TrackReleaseBranchesVersionStrategy.cs - - GitVersion.Configuration/Builders/IgnoreConfigurationBuilder.cs -#Execute shell command before Qodana execution (Applied in CI/CD pipeline) -bootstrap: curl -fsSL https://dot.net/v1/dotnet-install.sh | bash -s -- --jsonfile /data/project/global.json -i /usr/share/dotnet && dotnet build src/GitVersion.slnx -dotnet: - frameworks: net8.0;net9.0 - solution: src/GitVersion.slnx - -#Install IDE plugins before Qodana execution (Applied in CI/CD pipeline) -#plugins: -# - id: <plugin.id> #(plugin id can be found at https://plugins.jetbrains.com) diff --git a/src/.run/cli (help).run.xml b/src/.run/cli (help).run.xml index 38d1df084c..a8457356e3 100644 --- a/src/.run/cli (help).run.xml +++ b/src/.run/cli (help).run.xml @@ -1,18 +1,21 @@ <component name="ProjectRunConfigurationManager"> <configuration default="false" name="cli (help)" type="DotNetProject" factoryName=".NET Project"> - <option name="EXE_PATH" value="$PROJECT_DIR$/GitVersion.App/bin/Debug/net9.0/gitversion" /> + <option name="EXE_PATH" value="$PROJECT_DIR$/GitVersion.App/bin/Debug/net10.0/gitversion" /> <option name="PROGRAM_PARAMETERS" value="-help" /> - <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/../.." /> + <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/GitVersion.App/bin/Debug/net10.0" /> <option name="PASS_PARENT_ENVS" value="1" /> - <option name="USE_EXTERNAL_CONSOLE" value="0" /> + <option name="ENV_FILE_PATHS" value="" /> + <option name="REDIRECT_INPUT_PATH" value="" /> + <option name="MIXED_MODE_DEBUG" value="0" /> <option name="USE_MONO" value="0" /> <option name="RUNTIME_ARGUMENTS" value="" /> + <option name="AUTO_ATTACH_CHILDREN" value="0" /> <option name="PROJECT_PATH" value="$PROJECT_DIR$/GitVersion.App/GitVersion.App.csproj" /> <option name="PROJECT_EXE_PATH_TRACKING" value="1" /> <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> - <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="0" /> + <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="1" /> <option name="PROJECT_KIND" value="DotNetCore" /> - <option name="PROJECT_TFM" value="net9.0" /> + <option name="PROJECT_TFM" value="net10.0" /> <method v="2"> <option name="Build" /> </method> diff --git a/src/.run/cli (showconfig).run.xml b/src/.run/cli (showconfig).run.xml index ef335cde5a..3201347d14 100644 --- a/src/.run/cli (showconfig).run.xml +++ b/src/.run/cli (showconfig).run.xml @@ -1,18 +1,21 @@ <component name="ProjectRunConfigurationManager"> <configuration default="false" name="cli (showconfig)" type="DotNetProject" factoryName=".NET Project"> - <option name="EXE_PATH" value="$PROJECT_DIR$/GitVersion.App/bin/Debug/net9.0/gitversion" /> + <option name="EXE_PATH" value="$PROJECT_DIR$/GitVersion.App/bin/Debug/net10.0/gitversion" /> <option name="PROGRAM_PARAMETERS" value="-showconfig" /> - <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/.." /> + <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/GitVersion.App/bin/Debug/net10.0" /> <option name="PASS_PARENT_ENVS" value="1" /> - <option name="USE_EXTERNAL_CONSOLE" value="0" /> + <option name="ENV_FILE_PATHS" value="" /> + <option name="REDIRECT_INPUT_PATH" value="" /> + <option name="MIXED_MODE_DEBUG" value="0" /> <option name="USE_MONO" value="0" /> <option name="RUNTIME_ARGUMENTS" value="" /> + <option name="AUTO_ATTACH_CHILDREN" value="0" /> <option name="PROJECT_PATH" value="$PROJECT_DIR$/GitVersion.App/GitVersion.App.csproj" /> <option name="PROJECT_EXE_PATH_TRACKING" value="1" /> <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> - <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="0" /> + <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="1" /> <option name="PROJECT_KIND" value="DotNetCore" /> - <option name="PROJECT_TFM" value="net9.0" /> + <option name="PROJECT_TFM" value="net10.0" /> <method v="2"> <option name="Build" /> </method> diff --git a/src/.run/cli (version).run.xml b/src/.run/cli (version).run.xml index 023092b8a6..9afb33fcc3 100644 --- a/src/.run/cli (version).run.xml +++ b/src/.run/cli (version).run.xml @@ -1,18 +1,21 @@ <component name="ProjectRunConfigurationManager"> <configuration default="false" name="cli (version)" type="DotNetProject" factoryName=".NET Project"> - <option name="EXE_PATH" value="$PROJECT_DIR$/GitVersion.App/bin/Debug/net9.0/gitversion" /> + <option name="EXE_PATH" value="$PROJECT_DIR$/GitVersion.App/bin/Debug/net10.0/gitversion" /> <option name="PROGRAM_PARAMETERS" value="-version" /> <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/../.." /> <option name="PASS_PARENT_ENVS" value="1" /> - <option name="USE_EXTERNAL_CONSOLE" value="0" /> + <option name="ENV_FILE_PATHS" value="" /> + <option name="REDIRECT_INPUT_PATH" value="" /> + <option name="MIXED_MODE_DEBUG" value="0" /> <option name="USE_MONO" value="0" /> <option name="RUNTIME_ARGUMENTS" value="" /> + <option name="AUTO_ATTACH_CHILDREN" value="0" /> <option name="PROJECT_PATH" value="$PROJECT_DIR$/GitVersion.App/GitVersion.App.csproj" /> <option name="PROJECT_EXE_PATH_TRACKING" value="1" /> <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> - <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="0" /> + <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="1" /> <option name="PROJECT_KIND" value="DotNetCore" /> - <option name="PROJECT_TFM" value="net9.0" /> + <option name="PROJECT_TFM" value="net10.0" /> <method v="2"> <option name="Build" /> </method> diff --git a/src/.run/cli.run.xml b/src/.run/cli.run.xml index 5721110b54..150a725934 100644 --- a/src/.run/cli.run.xml +++ b/src/.run/cli.run.xml @@ -1,18 +1,21 @@ <component name="ProjectRunConfigurationManager"> <configuration default="false" name="cli" type="DotNetProject" factoryName=".NET Project"> - <option name="EXE_PATH" value="$PROJECT_DIR$/GitVersion.App/bin/Debug/net9.0/gitversion" /> + <option name="EXE_PATH" value="$PROJECT_DIR$/GitVersion.App/bin/Debug/net10.0/gitversion" /> <option name="PROGRAM_PARAMETERS" value="-nocache -l console" /> - <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/GitVersion.App/bin/Debug/net9.0" /> + <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/GitVersion.App/bin/Debug/net10.0" /> <option name="PASS_PARENT_ENVS" value="1" /> - <option name="USE_EXTERNAL_CONSOLE" value="0" /> + <option name="ENV_FILE_PATHS" value="" /> + <option name="REDIRECT_INPUT_PATH" value="" /> + <option name="MIXED_MODE_DEBUG" value="0" /> <option name="USE_MONO" value="0" /> <option name="RUNTIME_ARGUMENTS" value="" /> + <option name="AUTO_ATTACH_CHILDREN" value="0" /> <option name="PROJECT_PATH" value="$PROJECT_DIR$/GitVersion.App/GitVersion.App.csproj" /> <option name="PROJECT_EXE_PATH_TRACKING" value="1" /> <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="1" /> <option name="PROJECT_KIND" value="DotNetCore" /> - <option name="PROJECT_TFM" value="net9.0" /> + <option name="PROJECT_TFM" value="net10.0" /> <method v="2"> <option name="Build" /> </method> diff --git a/src/.run/schema.run.xml b/src/.run/schema.run.xml index 263e4061bb..ef06b18565 100644 --- a/src/.run/schema.run.xml +++ b/src/.run/schema.run.xml @@ -1,18 +1,21 @@ <component name="ProjectRunConfigurationManager"> <configuration default="false" name="schema" type="DotNetProject" factoryName=".NET Project"> - <option name="EXE_PATH" value="$PROJECT_DIR$/GitVersion.Schema/bin/Debug/net9.0/schema" /> + <option name="EXE_PATH" value="$PROJECT_DIR$/GitVersion.Schema/bin/Debug/net10.0/schema" /> <option name="PROGRAM_PARAMETERS" value="--OutputDirectory schemas --Version 6.1" /> - <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/.." /> + <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/GitVersion.Schema/bin/Debug/net10.0" /> <option name="PASS_PARENT_ENVS" value="1" /> - <option name="USE_EXTERNAL_CONSOLE" value="0" /> + <option name="ENV_FILE_PATHS" value="" /> + <option name="REDIRECT_INPUT_PATH" value="" /> + <option name="MIXED_MODE_DEBUG" value="0" /> <option name="USE_MONO" value="0" /> <option name="RUNTIME_ARGUMENTS" value="" /> + <option name="AUTO_ATTACH_CHILDREN" value="0" /> <option name="PROJECT_PATH" value="$PROJECT_DIR$/GitVersion.Schema/GitVersion.Schema.csproj" /> <option name="PROJECT_EXE_PATH_TRACKING" value="1" /> <option name="PROJECT_ARGUMENTS_TRACKING" value="1" /> - <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="0" /> + <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="1" /> <option name="PROJECT_KIND" value="DotNetCore" /> - <option name="PROJECT_TFM" value="net9.0" /> + <option name="PROJECT_TFM" value="net10.0" /> <method v="2"> <option name="Build" /> </method> diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 1249fad91a..c5b3e77354 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -1,6 +1,6 @@ <Project> <PropertyGroup> - <TargetFrameworks>net8.0;net9.0</TargetFrameworks> + <TargetFrameworks>net8.0;net9.0;net10.0</TargetFrameworks> <EndYear>$([System.DateTime]::Today.Year)</EndYear> <Authors>GitTools and Contributors</Authors> @@ -18,8 +18,7 @@ <RepositoryUrl>https://github.com/GitTools/GitVersion</RepositoryUrl> <RepositoryType>git</RepositoryType> - <NoWarn>$(NoWarn);NU1701;1591,8618,SYSLIB10;EnableGenerateDocumentationFile</NoWarn> - <WarningsAsErrors>$(WarningsAsErrors);RS0016;RS0017;RS0022;RS0024;RS0025;RS0026;RS0027</WarningsAsErrors> + <NoWarn>$(NoWarn);NU1701;IDE0005</NoWarn> <DebugType>embedded</DebugType> <LangVersion>latest</LangVersion> @@ -32,15 +31,32 @@ <EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild> <IsUnitTestProject>false</IsUnitTestProject> + <IsUnitTestProject Condition="$(MSBuildProjectName.EndsWith('.Tests'))">true</IsUnitTestProject> + + <DisableAnalyzers>false</DisableAnalyzers> <DisableApiAnalyzers>false</DisableApiAnalyzers> - <IsUnitTestProject Condition="$(MSBuildProjectName.EndsWith('.Tests')) or $(MSBuildProjectName.EndsWith('.Testing'))">true</IsUnitTestProject> + <DisableApiAnalyzers Condition=" '$(IsUnitTestProject)' == 'true' ">true</DisableApiAnalyzers> + <DisableApiAnalyzers Condition="$(MSBuildProjectName.EndsWith('.Schema')) == 'true'">true</DisableApiAnalyzers> + <DisableApiAnalyzers Condition="$(MSBuildProjectName.EndsWith('.Testing')) == 'true'">true</DisableApiAnalyzers> + </PropertyGroup> + + <PropertyGroup Condition=" '$(IsUnitTestProject)' == 'true' "> + <OutputType>Exe</OutputType> + <IsPackable>false</IsPackable> + + <EnableNUnitRunner>true</EnableNUnitRunner> + <EnableMicrosoftTestingPlatformRunner>true</EnableMicrosoftTestingPlatformRunner> + + <DebugType>full</DebugType> + <Optimize>false</Optimize> + <DebugSymbols>true</DebugSymbols> </PropertyGroup> <PropertyGroup Condition="'$(GITHUB_ACTIONS)' == 'true'"> <ContinuousIntegrationBuild>true</ContinuousIntegrationBuild> </PropertyGroup> - <ItemGroup> + <ItemGroup Condition=" '$(DisableAnalyzers)' == 'false' "> <PackageReference Include="Roslynator.Analyzers"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> @@ -50,42 +66,39 @@ <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> </PackageReference> </ItemGroup> - <ItemGroup Condition=" '$(IsUnitTestProject)' == 'false' and $(MSBuildProjectName.EndsWith('.Schema')) == 'false' and '$(DisableApiAnalyzers)' == 'false'"> + <ItemGroup Condition=" '$(DisableApiAnalyzers)' == 'false' "> <PackageReference Include="Microsoft.CodeAnalysis.PublicApiAnalyzers"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> </PackageReference> </ItemGroup> <ItemGroup Condition=" '$(IsUnitTestProject)' == 'true' "> + <PackageReference Include="coverlet.MTP" /> + <PackageReference Include="JunitXml.TestLogger" /> <PackageReference Include="Microsoft.NET.Test.Sdk" /> - <PackageReference Include="NSubstitute" /> - <PackageReference Include="NUnit" /> - <PackageReference Include="NUnit3TestAdapter" /> - <PackageReference Include="JunitXml.TestLogger" /> - <PackageReference Include="Shouldly" /> - - <PackageReference Include="coverlet.msbuild"> - <PrivateAssets>all</PrivateAssets> - <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> - </PackageReference> <PackageReference Include="NUnit.Analyzers"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> </PackageReference> - + <PackageReference Include="NUnit3TestAdapter" /> + <PackageReference Include="Shouldly" /> </ItemGroup> - <ItemGroup Condition=" '$(IsUnitTestProject)' == 'true' and $(MSBuildProjectName.EndsWith('.Tests'))"> + <ItemGroup Condition=" '$(IsUnitTestProject)' == 'true' "> <ProjectReference Include="..\GitVersion.Testing\GitVersion.Testing.csproj" /> - <Using Include="GitVersion.Testing" /> <Using Include="NSubstitute" /> <Using Include="NUnit.Framework" /> <Using Include="Shouldly" /> + <Using Include="GitVersion.Testing" /> </ItemGroup> - <ItemGroup> + <ItemGroup Label="SystemUsings"> + <Using Include="System" /> + <Using Include="System.IO" /> + <Using Include="System.Linq" /> + <Using Include="System.Collections.Generic" /> <Using Include="System.Collections" /> <Using Include="System.Collections.Specialized" /> <Using Include="System.Diagnostics" /> @@ -97,6 +110,12 @@ <Using Include="System.Environment" Alias="SysEnv" /> </ItemGroup> + <ItemGroup Label="MicrosoftExtensionsUsings"> + <Using Include="Microsoft.Extensions.DependencyInjection" /> + <Using Include="Microsoft.Extensions.DependencyInjection.Extensions" /> + <Using Include="Microsoft.Extensions.Options" /> + </ItemGroup> + <ItemGroup> <None Include="../../docs/input/docs/img/package_icon.png" Pack="true" PackagePath="/" /> <None Include="../../build/nuspec/README.md" Pack="true" PackagePath="/" /> diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index bb53b8488e..acd2408cb9 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -2,48 +2,53 @@ <PropertyGroup> <ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally> </PropertyGroup> + <PropertyGroup> + <MicrosoftBuildVersion Condition=" '$(TargetFramework)' == 'net8.0' ">17.11.48</MicrosoftBuildVersion> + <MicrosoftBuildVersion Condition=" '$(TargetFramework)' == 'net9.0' ">17.14.28</MicrosoftBuildVersion> + <MicrosoftBuildVersion Condition=" '$(TargetFramework)' == 'net10.0' ">18.6.3</MicrosoftBuildVersion> + </PropertyGroup> <ItemGroup> <!-- common packages --> + <PackageVersion Include="coverlet.MTP" Version="10.0.1" /> <PackageVersion Include="JsonSchema.Net" Version="7.3.4" /> <PackageVersion Include="LibGit2Sharp" Version="0.31.0" /> - <PackageVersion Include="Microsoft.CodeAnalysis.Analyzers" Version="3.11.0" /> - <PackageVersion Include="Microsoft.CodeAnalysis.Common" Version="4.14.0" /> - <PackageVersion Include="Microsoft.CodeAnalysis.CSharp" Version="4.14.0" /> - <PackageVersion Include="Microsoft.CodeAnalysis.VisualBasic" Version="4.14.0" /> - <PackageVersion Include="Microsoft.CodeAnalysis.PublicApiAnalyzers" Version="4.14.0" /> + <PackageVersion Include="Microsoft.CodeAnalysis.Analyzers" Version="5.3.0" /> + <PackageVersion Include="Microsoft.CodeAnalysis.Common" Version="5.3.0" /> + <PackageVersion Include="Microsoft.CodeAnalysis.CSharp" Version="5.3.0" /> + <PackageVersion Include="Microsoft.CodeAnalysis.VisualBasic" Version="5.3.0" /> + <PackageVersion Include="Microsoft.CodeAnalysis.PublicApiAnalyzers" Version="5.0.0-1.25277.114" /> <PackageVersion Include="Microsoft.CSharp" Version="4.7.0" /> - <PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="9.0.10" /> - <PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="9.0.10" /> + <PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="10.0.9" /> + <PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="10.0.9" /> <PackageVersion Include="Microsoft.IO.Redist" Version="6.1.3" /> - <PackageVersion Include="Polly" Version="8.6.4" /> - <PackageVersion Include="Roslynator.Analyzers" Version="4.14.1" /> - <PackageVersion Include="Roslynator.Formatting.Analyzers" Version="4.14.1" /> + <PackageVersion Include="Polly" Version="8.7.0" /> + <PackageVersion Include="Roslynator.Analyzers" Version="4.15.0" /> + <PackageVersion Include="Roslynator.Formatting.Analyzers" Version="4.15.0" /> <!-- specific packages --> - <PackageVersion Include="Buildalyzer" Version="7.1.0" /> - <PackageVersion Include="JsonSchema.Net.Generation" Version="5.1.1" /> - <PackageVersion Include="JunitXml.TestLogger" Version="7.0.2" /> - <PackageVersion Include="MSBuild.ProjectCreation" Version="16.1.0" /> - <PackageVersion Include="Microsoft.Bcl.AsyncInterfaces" Version="9.0.10" /> - <PackageVersion Include="Microsoft.Build" Version="17.14.28" /> - <PackageVersion Include="Microsoft.Build.Utilities.Core" Version="17.14.28" /> - <PackageVersion Include="Microsoft.Extensions.Configuration.CommandLine" Version="9.0.10" /> - <PackageVersion Include="Microsoft.Extensions.FileSystemGlobbing" Version="9.0.10" /> - <PackageVersion Include="Microsoft.Extensions.Hosting" Version="9.0.10" /> - <PackageVersion Include="Microsoft.Extensions.Options" Version="9.0.10" /> - <PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.0.0" /> + <PackageVersion Include="Buildalyzer" Version="8.0.0" /> + <PackageVersion Include="JsonSchema.Net.Generation" Version="7.3.10" /> + <PackageVersion Include="JunitXml.TestLogger" Version="8.0.0" /> + <PackageVersion Include="MSBuild.ProjectCreation" Version="17.0.1" /> + <PackageVersion Include="Microsoft.Extensions.Configuration.CommandLine" Version="10.0.9" /> + <PackageVersion Include="Microsoft.Extensions.FileSystemGlobbing" Version="10.0.9" /> + <PackageVersion Include="Microsoft.Extensions.Hosting" Version="10.0.9" /> + <PackageVersion Include="Microsoft.Extensions.Options" Version="10.0.9" /> + <PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.7.0" /> <PackageVersion Include="Microsoft.Win32.Registry" Version="6.0.0-preview.5.21301.5" /> <PackageVersion Include="NSubstitute" Version="5.3.0" /> - <PackageVersion Include="NUnit" Version="4.4.0" /> - <PackageVersion Include="NUnit.Analyzers" Version="4.10.0" /> - <PackageVersion Include="NUnit3TestAdapter" Version="5.2.0" /> + <PackageVersion Include="NUnit" Version="4.6.1" /> + <PackageVersion Include="NUnit.Analyzers" Version="4.14.0" /> + <PackageVersion Include="NUnit3TestAdapter" Version="6.2.0" /> + <PackageVersion Include="SharpYaml" Version="3.11.0" /> <PackageVersion Include="Shouldly" Version="4.3.0" /> - <PackageVersion Include="System.Collections.Immutable" Version="9.0.10" /> - <PackageVersion Include="System.Drawing.Common" Version="9.0.10" /> - <PackageVersion Include="System.IO.Abstractions" Version="22.0.16" /> - <PackageVersion Include="System.Reflection.Metadata" Version="9.0.10" /> - <PackageVersion Include="System.Security.Cryptography.Xml" Version="9.0.10" /> - <PackageVersion Include="System.Text.Json" Version="9.0.10" /> - <PackageVersion Include="YamlDotNet" Version="16.3.0" /> - <PackageVersion Include="coverlet.msbuild" Version="6.0.4" /> + <PackageVersion Include="System.Collections.Immutable" Version="10.0.9" /> + <PackageVersion Include="System.IO.Abstractions" Version="22.1.1" /> + <PackageVersion Include="System.Reflection.Metadata" Version="10.0.9" /> + <PackageVersion Include="System.Text.Json" Version="10.0.9" /> + </ItemGroup> + <ItemGroup Condition=" '$(MicrosoftBuildVersion)' != '' "> + <PackageVersion Include="Microsoft.Build" Version="$(MicrosoftBuildVersion)" /> + <PackageVersion Include="Microsoft.Build.Tasks.Core" Version="$(MicrosoftBuildVersion)" /> + <PackageVersion Include="Microsoft.Build.Utilities.Core" Version="$(MicrosoftBuildVersion)" /> </ItemGroup> </Project> \ No newline at end of file diff --git a/src/GitVersion.App.Tests/ArgumentParserOnBuildServerTests.cs b/src/GitVersion.App.Tests/ArgumentParserOnBuildServerTests.cs index 6d8537e276..916d1aadc2 100644 --- a/src/GitVersion.App.Tests/ArgumentParserOnBuildServerTests.cs +++ b/src/GitVersion.App.Tests/ArgumentParserOnBuildServerTests.cs @@ -1,15 +1,14 @@ using GitVersion.Agents; -using GitVersion.Core.Tests.Helpers; using GitVersion.Extensions; using GitVersion.OutputVariables; -using Microsoft.Extensions.DependencyInjection; +using GitVersion.Tests; namespace GitVersion.App.Tests; [TestFixture] public class ArgumentParserOnBuildServerTests : TestBase { - private IArgumentParser argumentParser; + private IArgumentParser argumentParser = null!; [SetUp] public void SetUp() diff --git a/src/GitVersion.App.Tests/ArgumentParserTests.cs b/src/GitVersion.App.Tests/ArgumentParserTests.cs index 42e7c36304..38d1ee81d2 100644 --- a/src/GitVersion.App.Tests/ArgumentParserTests.cs +++ b/src/GitVersion.App.Tests/ArgumentParserTests.cs @@ -1,20 +1,19 @@ using System.IO.Abstractions; using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using GitVersion.Extensions; using GitVersion.Helpers; using GitVersion.Logging; +using GitVersion.Tests; using GitVersion.VersionCalculation; -using Microsoft.Extensions.DependencyInjection; namespace GitVersion.App.Tests; [TestFixture] public class ArgumentParserTests : TestBase { - private IEnvironment environment; - private IArgumentParser argumentParser; - private IFileSystem fileSystem; + private IEnvironment environment = null!; + private IArgumentParser argumentParser = null!; + private IFileSystem fileSystem = null!; [SetUp] public void SetUp() @@ -371,7 +370,7 @@ public void UpdateAssemblyInfoWithRelativeFilename() public void OverrideconfigWithNoOptions() { var arguments = this.argumentParser.ParseArguments("/overrideconfig"); - arguments.OverrideConfiguration.ShouldBeNull(); + arguments.OverrideConfiguration.ShouldBeEmpty(); } [TestCaseSource(nameof(OverrideconfigWithInvalidOptionTestData))] @@ -390,7 +389,7 @@ private static IEnumerable<TestCaseData> OverrideconfigWithInvalidOptionTestData }; yield return new TestCaseData("unknown-option=25") { - ExpectedResult = "Could not parse /overrideconfig option: unknown-option=25. Unsupported 'key'." + ExpectedResult = "Could not parse /overrideconfig option: unknown-option=25. Unsupported key 'unknown-option'." }; } @@ -636,6 +635,21 @@ public void AllowshallowTrueWhenDefined() arguments.AllowShallow.ShouldBe(true); } + [Test] + public void DiagTrueWhenDefined() + { + var arguments = this.argumentParser.ParseArguments("-diag"); + arguments.Diag.ShouldBe(true); + } + + [Test] + public void DiagAndLogToConsoleIsNotIgnored() + { + var arguments = this.argumentParser.ParseArguments("-diag -l console"); + arguments.Diag.ShouldBe(true); + arguments.LogFilePath.ShouldBe("console"); + } + [Test] public void OtherArgumentsCanBeParsedBeforeNofetch() { diff --git a/src/GitVersion.App.Tests/GitVersion.App.Tests.csproj b/src/GitVersion.App.Tests/GitVersion.App.Tests.csproj index da4bb57cc0..a6e5694b9a 100644 --- a/src/GitVersion.App.Tests/GitVersion.App.Tests.csproj +++ b/src/GitVersion.App.Tests/GitVersion.App.Tests.csproj @@ -16,7 +16,6 @@ <Content Include="Approved\**\*.approved.txt" /> </ItemGroup> <ItemGroup> - <PackageReference Include="Polly" VersionOverride="8.6.4" /> <Compile Include="..\GitVersion.Core.Tests\Helpers\TestConsoleAdapter.cs" Link="Helpers\TestConsoleAdapter.cs" /> <Compile Include="..\GitVersion.Core.Tests\Helpers\TestEnvironment.cs" Link="Helpers\TestEnvironment.cs" /> <Compile Include="..\GitVersion.Core.Tests\Helpers\TestLogAppender.cs" Link="Helpers\TestLogAppender.cs" /> diff --git a/src/GitVersion.App.Tests/HelpWriterTests.cs b/src/GitVersion.App.Tests/HelpWriterTests.cs index 38ef352b1f..a304c67152 100644 --- a/src/GitVersion.App.Tests/HelpWriterTests.cs +++ b/src/GitVersion.App.Tests/HelpWriterTests.cs @@ -1,6 +1,5 @@ -using GitVersion.Core.Tests.Helpers; using GitVersion.Extensions; -using Microsoft.Extensions.DependencyInjection; +using GitVersion.Tests; namespace GitVersion.App.Tests; @@ -27,6 +26,7 @@ public void AllArgsAreInHelp() { nameof(Arguments.ClonePath), "/dynamicRepoLocation" }, { nameof(Arguments.CommitId), "/c" }, + { nameof(Arguments.Diag) , "/diag" }, { nameof(Arguments.LogFilePath) , "/l" }, { nameof(Arguments.Verbosity), "/verbosity" }, { nameof(Arguments.Output) , "/output" }, diff --git a/src/GitVersion.App.Tests/Helpers/ArgumentBuilder.cs b/src/GitVersion.App.Tests/Helpers/ArgumentBuilder.cs index 38678c4987..b16bba1e7e 100644 --- a/src/GitVersion.App.Tests/Helpers/ArgumentBuilder.cs +++ b/src/GitVersion.App.Tests/Helpers/ArgumentBuilder.cs @@ -12,14 +12,14 @@ public override string ToString() { var arguments = new StringBuilder(); - if (!this.WorkingDirectory.IsNullOrWhiteSpace()) + if (!WorkingDirectory.IsNullOrWhiteSpace()) { - arguments.Append(" /targetpath \"").Append(this.WorkingDirectory).Append('\"'); + arguments.Append(" /targetpath \"").Append(WorkingDirectory).Append('\"'); } - if (!this.LogFile.IsNullOrWhiteSpace()) + if (!LogFile.IsNullOrWhiteSpace()) { - arguments.Append(" /l \"").Append(this.LogFile).Append('\"'); + arguments.Append(" /l \"").Append(LogFile).Append('\"'); } arguments.Append(additionalArguments); diff --git a/src/GitVersion.App.Tests/Helpers/ExecutionResults.cs b/src/GitVersion.App.Tests/Helpers/ExecutionResults.cs index 6e436ffc9e..11035333c4 100644 --- a/src/GitVersion.App.Tests/Helpers/ExecutionResults.cs +++ b/src/GitVersion.App.Tests/Helpers/ExecutionResults.cs @@ -1,6 +1,6 @@ -using GitVersion.Core.Tests; using GitVersion.Extensions; using GitVersion.OutputVariables; +using GitVersion.Tests; namespace GitVersion.App.Tests; diff --git a/src/GitVersion.App.Tests/Helpers/ProgramFixture.cs b/src/GitVersion.App.Tests/Helpers/ProgramFixture.cs index a1ed7f10cb..4ac9c290de 100644 --- a/src/GitVersion.App.Tests/Helpers/ProgramFixture.cs +++ b/src/GitVersion.App.Tests/Helpers/ProgramFixture.cs @@ -1,7 +1,6 @@ -using GitVersion.Core.Tests.Helpers; using GitVersion.Extensions; using GitVersion.Logging; -using Microsoft.Extensions.DependencyInjection; +using GitVersion.Tests; namespace GitVersion.App.Tests; diff --git a/src/GitVersion.App.Tests/JsonOutputOnBuildServerTest.cs b/src/GitVersion.App.Tests/JsonOutputOnBuildServerTest.cs index 30d6d48108..11c77880f5 100644 --- a/src/GitVersion.App.Tests/JsonOutputOnBuildServerTest.cs +++ b/src/GitVersion.App.Tests/JsonOutputOnBuildServerTest.cs @@ -1,6 +1,7 @@ using GitVersion.Agents; -using GitVersion.Core.Tests; using GitVersion.Helpers; +using GitVersion.Testing.Extensions; +using GitVersion.Tests; namespace GitVersion.App.Tests; diff --git a/src/GitVersion.App.Tests/PullRequestInBuildAgentTest.cs b/src/GitVersion.App.Tests/PullRequestInBuildAgentTest.cs index c517d19aba..6530705ac5 100644 --- a/src/GitVersion.App.Tests/PullRequestInBuildAgentTest.cs +++ b/src/GitVersion.App.Tests/PullRequestInBuildAgentTest.cs @@ -1,9 +1,10 @@ using GitVersion.Agents; -using GitVersion.Core.Tests.Helpers; using GitVersion.Extensions; using GitVersion.Git; using GitVersion.Helpers; using GitVersion.Output; +using GitVersion.Testing.Extensions; +using GitVersion.Tests; using LibGit2Sharp; namespace GitVersion.App.Tests; diff --git a/src/GitVersion.App.Tests/QuotedStringHelpersTests.cs b/src/GitVersion.App.Tests/QuotedStringHelpersTests.cs index e615754a2b..27fb4ebbb6 100644 --- a/src/GitVersion.App.Tests/QuotedStringHelpersTests.cs +++ b/src/GitVersion.App.Tests/QuotedStringHelpersTests.cs @@ -1,6 +1,4 @@ -using GitVersion; - -namespace GitVersionExe.Tests; +namespace GitVersion.App.Tests; [TestFixture] public class QuotedStringHelpersTests diff --git a/src/GitVersion.App.Tests/TagCheckoutInBuildAgentTests.cs b/src/GitVersion.App.Tests/TagCheckoutInBuildAgentTests.cs index fc31fa4a7d..1264ca48b0 100644 --- a/src/GitVersion.App.Tests/TagCheckoutInBuildAgentTests.cs +++ b/src/GitVersion.App.Tests/TagCheckoutInBuildAgentTests.cs @@ -1,6 +1,7 @@ using GitVersion.Agents; -using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; +using GitVersion.Testing.Extensions; +using GitVersion.Tests; using LibGit2Sharp; namespace GitVersion.App.Tests; diff --git a/src/GitVersion.App.Tests/UpdateWixVersionFileTests.cs b/src/GitVersion.App.Tests/UpdateWixVersionFileTests.cs index f3ba06a794..1bf37ea25a 100644 --- a/src/GitVersion.App.Tests/UpdateWixVersionFileTests.cs +++ b/src/GitVersion.App.Tests/UpdateWixVersionFileTests.cs @@ -8,7 +8,7 @@ namespace GitVersion.App.Tests; [Parallelizable(ParallelScope.None)] internal class UpdateWixVersionFileTests { - private string wixVersionFileName; + private string wixVersionFileName = null!; [SetUp] public void Setup() => this.wixVersionFileName = WixVersionFileUpdater.WixVersionFileName; diff --git a/src/GitVersion.App.Tests/VersionWriterTests.cs b/src/GitVersion.App.Tests/VersionWriterTests.cs index bea307439b..b267f3f62f 100644 --- a/src/GitVersion.App.Tests/VersionWriterTests.cs +++ b/src/GitVersion.App.Tests/VersionWriterTests.cs @@ -1,8 +1,7 @@ -using GitVersion.Core.Tests.Helpers; using GitVersion.Extensions; +using GitVersion.Tests; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp; -using Microsoft.Extensions.DependencyInjection; namespace GitVersion.App.Tests; diff --git a/src/GitVersion.App/ArgumentParser.cs b/src/GitVersion.App/ArgumentParser.cs index 1f85a1b3d2..8f8e172fe9 100644 --- a/src/GitVersion.App/ArgumentParser.cs +++ b/src/GitVersion.App/ArgumentParser.cs @@ -12,6 +12,8 @@ internal class ArgumentParser(IEnvironment environment, IFileSystem fileSystem, ICurrentBuildAgent buildAgent, IConsole console, + IHelpWriter helpWriter, + IVersionWriter versionWriter, IGlobbingResolver globbingResolver) : IArgumentParser { @@ -19,6 +21,8 @@ internal class ArgumentParser(IEnvironment environment, private readonly IFileSystem fileSystem = fileSystem.NotNull(); private readonly ICurrentBuildAgent buildAgent = buildAgent.NotNull(); private readonly IConsole console = console.NotNull(); + private readonly IHelpWriter helpWriter = helpWriter.NotNull(); + private readonly IVersionWriter versionWriter = versionWriter.NotNull(); private readonly IGlobbingResolver globbingResolver = globbingResolver.NotNull(); private const string defaultOutputFileName = "GitVersion.json"; @@ -53,6 +57,7 @@ public Arguments ParseArguments(string[] commandLineArguments) if (firstArgument.IsHelp()) { + this.helpWriter.Write(); return new Arguments { IsHelp = true @@ -61,6 +66,8 @@ public Arguments ParseArguments(string[] commandLineArguments) if (firstArgument.IsSwitch("version")) { + var assembly = Assembly.GetExecutingAssembly(); + this.versionWriter.Write(assembly); return new Arguments { IsVersion = true @@ -212,11 +219,7 @@ private static bool ParseSwitches(Arguments arguments, string? name, IReadOnlyLi if (name.IsSwitch("diag")) { - if (value?.IsTrue() != false) - { - arguments.Diag = true; - } - + arguments.Diag = true; return true; } @@ -289,7 +292,7 @@ private static bool ParseSwitches(Arguments arguments, string? name, IReadOnlyLi if (name.IsSwitch("verbosity")) { - ParseVerbosity(arguments, value); + arguments.Verbosity = ParseVerbosity(value); return true; } @@ -434,13 +437,8 @@ private static void ParseOutput(Arguments arguments, IEnumerable<string>? values } } - private static void ParseVerbosity(Arguments arguments, string? value) - { - if (!Enum.TryParse(value, true, out arguments.Verbosity)) - { - throw new WarningException($"Could not parse Verbosity value '{value}'"); - } - } + private static Verbosity ParseVerbosity(string? value) => + Enum.TryParse(value, true, out Verbosity verbosity) ? verbosity : throw new WarningException($"Could not parse Verbosity value '{value}'"); private static void ParseOverrideConfig(Arguments arguments, IReadOnlyCollection<string>? values) { @@ -461,7 +459,7 @@ private static void ParseOverrideConfig(Arguments arguments, IReadOnlyCollection var optionKey = keyAndValue[0].ToLowerInvariant(); if (!OverrideConfigurationOptionParser.SupportedProperties.Contains(optionKey)) { - throw new WarningException($"Could not parse /overrideconfig option: {keyValueOption}. Unsupported 'key'."); + throw new WarningException($"Could not parse /overrideconfig option: {keyValueOption}. Unsupported key '{optionKey}'."); } parser.SetValue(optionKey, keyAndValue[1]); } diff --git a/src/GitVersion.App/ArgumentParserExtensions.cs b/src/GitVersion.App/ArgumentParserExtensions.cs index 852773f941..6716e633d8 100644 --- a/src/GitVersion.App/ArgumentParserExtensions.cs +++ b/src/GitVersion.App/ArgumentParserExtensions.cs @@ -1,4 +1,3 @@ -using GitVersion.Core; using GitVersion.Helpers; namespace GitVersion; @@ -8,75 +7,80 @@ internal static class ArgumentParserExtensions private static readonly string[] TrueValues = ["1", "true"]; private static readonly string[] FalseValues = ["0", "false"]; - public static bool IsTrue(this string? value) => TrueValues.Contains(value, StringComparer.OrdinalIgnoreCase); - - public static bool IsFalse(this string? value) => FalseValues.Contains(value, StringComparer.OrdinalIgnoreCase); - - public static bool IsValidPath(this string? path) + extension(string? value) { - if (path == null) - return false; + public bool IsTrue() => TrueValues.Contains(value, StringComparer.OrdinalIgnoreCase); + public bool IsFalse() => FalseValues.Contains(value, StringComparer.OrdinalIgnoreCase); - try - { - _ = FileSystemHelper.Path.GetFullPath(path); - } - catch + public bool IsValidPath() { - path = FileSystemHelper.Path.Combine(SysEnv.CurrentDirectory, path); + if (value == null) + return false; try { - _ = FileSystemHelper.Path.GetFullPath(path); + _ = FileSystemHelper.Path.GetFullPath(value); } catch { - return false; + value = FileSystemHelper.Path.Combine(SysEnv.CurrentDirectory, value); + + try + { + _ = FileSystemHelper.Path.GetFullPath(value); + } + catch (Exception) + { + return false; + } } - } - return FileSystemHelper.Directory.Exists(path); - } - - public static bool IsSwitchArgument(this string? value) - { - var patternRegex = RegexPatterns.Common.SwitchArgumentRegex(); - return value != null - && (value.StartsWith('-') || value.StartsWith('/')) - && !patternRegex.Match(value).Success; - //Exclude msbuild & project parameters in form /blah:, which should be parsed as values, not switch names. - } - - public static bool IsSwitch(this string? value, string switchName) - { - if (value == null) - return false; + return FileSystemHelper.Directory.Exists(value); + } - if (value.StartsWith('-')) + public bool IsSwitchArgument() { - value = value[1..]; + var patternRegex = RegexPatterns.SwitchArgumentRegex; + return value != null + && (value.StartsWith('-') || value.StartsWith('/')) + && !patternRegex.Match(value).Success; + //Exclude msbuild & project parameters in form /blah:, which should be parsed as values, not switch names. } - if (value.StartsWith('/')) + public bool IsSwitch(string switchName) { - value = value[1..]; - } + if (value == null) + return false; - return string.Equals(switchName, value, StringComparison.OrdinalIgnoreCase); - } + if (value.StartsWith('-')) + { + value = value[1..]; + } + + if (value.StartsWith('/')) + { + value = value[1..]; + } - public static bool IsHelp(this string singleArgument) => (singleArgument == "?") || singleArgument.IsSwitch("h") || singleArgument.IsSwitch("help") || singleArgument.IsSwitch("?"); + return string.Equals(switchName, value, StringComparison.OrdinalIgnoreCase); + } + } - public static bool ArgumentRequiresValue(this string argument, int argumentIndex) + extension(string singleArgument) { - var booleanArguments = new[] { "updateassemblyinfo", "ensureassemblyinfo", "nofetch", "nonormalize", "nocache", "allowshallow" }; + public bool IsHelp() => (singleArgument == "?") || singleArgument.IsSwitch("h") || singleArgument.IsSwitch("help") || singleArgument.IsSwitch("?"); - var argumentMightRequireValue = !booleanArguments.Contains(argument[1..], StringComparer.OrdinalIgnoreCase); + public bool ArgumentRequiresValue(int argumentIndex) + { + var booleanArguments = new[] { "updateassemblyinfo", "ensureassemblyinfo", "nofetch", "nonormalize", "nocache", "allowshallow", "diag" }; - // If this is the first argument that might be a target path, the argument starts with slash, and we're on an OS that supports paths with slashes, the argument does not require a value. - if (argumentMightRequireValue && argumentIndex == 0 && argument.StartsWith('/') && FileSystemHelper.Path.DirectorySeparatorChar == '/' && argument.IsValidPath()) - return false; + var argumentMightRequireValue = !booleanArguments.Contains(singleArgument[1..], StringComparer.OrdinalIgnoreCase); - return argumentMightRequireValue; + // If this is the first argument that might be a target path, the argument starts with slash, and we're on an OS that supports paths with slashes, the argument does not require a value. + if (argumentMightRequireValue && argumentIndex == 0 && singleArgument.StartsWith('/') && FileSystemHelper.Path.DirectorySeparatorChar == '/' && singleArgument.IsValidPath()) + return false; + + return argumentMightRequireValue; + } } } diff --git a/src/GitVersion.App/Arguments.cs b/src/GitVersion.App/Arguments.cs index 8c5ea2f74c..1c00a680c1 100644 --- a/src/GitVersion.App/Arguments.cs +++ b/src/GitVersion.App/Arguments.cs @@ -5,40 +5,33 @@ namespace GitVersion; internal class Arguments { - public AuthenticationInfo Authentication = new(); - - public string? ConfigurationFile; - public IReadOnlyDictionary<object, object?> OverrideConfiguration; - public bool ShowConfiguration; - - public string? TargetPath; - - public string? TargetUrl; - public string? TargetBranch; - public string? CommitId; - public string? ClonePath; - - public bool Diag; - public bool IsVersion; - public bool IsHelp; - - public bool NoFetch; - public bool NoCache; - public bool NoNormalize; - public bool AllowShallow; - - public string? LogFilePath; - public string? ShowVariable; - public string? Format; - public string? OutputFile; - public ISet<OutputType> Output = new HashSet<OutputType>(); - public Verbosity Verbosity = Verbosity.Normal; - - public bool UpdateWixVersionFile; - public bool UpdateProjectFiles; - public bool UpdateAssemblyInfo; - public bool EnsureAssemblyInfo; - public ISet<string> UpdateAssemblyInfoFileName = new HashSet<string>(); + public AuthenticationInfo Authentication { get; set; } = new(); + public string? ConfigurationFile { get; set; } + public IReadOnlyDictionary<object, object?> OverrideConfiguration { get; set; } = new Dictionary<object, object?>(); + public bool ShowConfiguration { get; set; } + public string? TargetPath { get; set; } + public string? TargetUrl { get; set; } + public string? TargetBranch { get; set; } + public string? CommitId { get; set; } + public string? ClonePath { get; set; } + public bool Diag { get; set; } + public bool IsVersion { get; set; } + public bool IsHelp { get; set; } + public bool NoFetch { get; set; } + public bool NoCache { get; set; } + public bool NoNormalize { get; set; } + public bool AllowShallow { get; set; } + public string? LogFilePath { get; set; } + public string? ShowVariable { get; set; } + public string? Format { get; set; } + public string? OutputFile { get; set; } + public ISet<OutputType> Output { get; set; } = new HashSet<OutputType>(); + public Verbosity Verbosity { get; set; } = Verbosity.Normal; + public bool UpdateWixVersionFile { get; set; } + public bool UpdateProjectFiles { get; set; } + public bool UpdateAssemblyInfo { get; set; } + public bool EnsureAssemblyInfo { get; set; } + public ISet<string> UpdateAssemblyInfoFileName { get; set; } = new HashSet<string>(); public GitVersionOptions ToOptions() { @@ -54,9 +47,9 @@ public GitVersionOptions ToOptions() AuthenticationInfo = { - Username = this.Authentication.Username, - Password = this.Authentication.Password, - Token = this.Authentication.Token + Username = Authentication.Username, + Password = Authentication.Password, + Token = Authentication.Token }, ConfigurationInfo = @@ -99,7 +92,7 @@ public GitVersionOptions ToOptions() OutputFile = OutputFile }; - var workingDirectory = this.TargetPath?.TrimEnd('/', '\\'); + var workingDirectory = TargetPath?.TrimEnd('/', '\\'); if (workingDirectory != null) { gitVersionOptions.WorkingDirectory = workingDirectory; diff --git a/src/GitVersion.App/CliHost.cs b/src/GitVersion.App/CliHost.cs index 357e7df742..b3cb521ef3 100644 --- a/src/GitVersion.App/CliHost.cs +++ b/src/GitVersion.App/CliHost.cs @@ -2,9 +2,6 @@ using GitVersion.Configuration; using GitVersion.Extensions; using GitVersion.Output; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Hosting; -using Microsoft.Extensions.Options; namespace GitVersion; @@ -14,22 +11,19 @@ internal static HostApplicationBuilder CreateCliHostBuilder(string[] args) { var builder = Host.CreateApplicationBuilder(args); - builder.Services.AddModule(new GitVersionCoreModule()); - builder.Services.AddModule(new GitVersionLibGit2SharpModule()); - builder.Services.AddModule(new GitVersionBuildAgentsModule()); - builder.Services.AddModule(new GitVersionConfigurationModule()); - builder.Services.AddModule(new GitVersionOutputModule()); - builder.Services.AddModule(new GitVersionAppModule()); + RegisterGitVersionModules(builder.Services, args); - builder.Services.AddSingleton(sp => - { - var arguments = sp.GetRequiredService<IArgumentParser>().ParseArguments(args); - var gitVersionOptions = arguments.ToOptions(); - return Options.Create(gitVersionOptions); - }); + return builder; + } - builder.Services.AddSingleton<GitVersionApp>(); + private static void RegisterGitVersionModules(IServiceCollection services, string[] args) + { + services.AddModule(new GitVersionCoreModule()); + services.AddModule(new GitVersionBuildAgentsModule()); + services.AddModule(new GitVersionConfigurationModule()); + services.AddModule(new GitVersionOutputModule()); - return builder; + services.AddModule(new GitVersionLibGit2SharpModule()); + services.AddModule(new GitVersionAppModule(args)); } } diff --git a/src/GitVersion.App/FileSystemGlobbing/GlobbingResolver.cs b/src/GitVersion.App/FileSystemGlobbing/GlobbingResolver.cs index fa4da4eb06..7aeec0cb50 100644 --- a/src/GitVersion.App/FileSystemGlobbing/GlobbingResolver.cs +++ b/src/GitVersion.App/FileSystemGlobbing/GlobbingResolver.cs @@ -1,6 +1,5 @@ using System.IO.Abstractions; using GitVersion.Extensions; -using Microsoft.Extensions.FileSystemGlobbing; namespace GitVersion.FileSystemGlobbing; diff --git a/src/GitVersion.App/FileSystemGlobbing/MatcherExtensions.cs b/src/GitVersion.App/FileSystemGlobbing/MatcherExtensions.cs index fa568b712b..21f97bb5a4 100644 --- a/src/GitVersion.App/FileSystemGlobbing/MatcherExtensions.cs +++ b/src/GitVersion.App/FileSystemGlobbing/MatcherExtensions.cs @@ -1,75 +1,69 @@ using System.IO.Abstractions; -using Microsoft.Extensions.FileSystemGlobbing; namespace GitVersion.FileSystemGlobbing; internal static class MatcherExtensions { - public static PatternMatchingResult Execute( - this Matcher matcher, - IFileSystem fileSystem, - string directoryPath - ) + extension(Matcher matcher) { - ArgumentNullException.ThrowIfNull(matcher); - ArgumentNullException.ThrowIfNull(fileSystem); + public PatternMatchingResult Execute(IFileSystem fileSystem, + string directoryPath + ) + { + ArgumentNullException.ThrowIfNull(matcher); + ArgumentNullException.ThrowIfNull(fileSystem); - return Execute(matcher, fileSystem, fileSystem.DirectoryInfo.New(directoryPath)); - } + return Execute(matcher, fileSystem, fileSystem.DirectoryInfo.New(directoryPath)); + } - private static PatternMatchingResult Execute( - this Matcher matcher, - IFileSystem fileSystem, - IDirectoryInfo directoryInfo - ) - { - ArgumentNullException.ThrowIfNull(matcher); - ArgumentNullException.ThrowIfNull(fileSystem); - ArgumentNullException.ThrowIfNull(directoryInfo); + private PatternMatchingResult Execute(IFileSystem fileSystem, + IDirectoryInfo directoryInfo + ) + { + ArgumentNullException.ThrowIfNull(matcher); + ArgumentNullException.ThrowIfNull(fileSystem); + ArgumentNullException.ThrowIfNull(directoryInfo); - return matcher.Execute(new DirectoryInfoGlobbingWrapper(fileSystem, directoryInfo)); - } + return matcher.Execute(new DirectoryInfoGlobbingWrapper(fileSystem, directoryInfo)); + } - public static IEnumerable<string> GetResultsInFullPath( - this Matcher matcher, - IFileSystem fileSystem, - string directoryPath - ) - { - ArgumentNullException.ThrowIfNull(matcher); - ArgumentNullException.ThrowIfNull(fileSystem); + public IEnumerable<string> GetResultsInFullPath(IFileSystem fileSystem, + string directoryPath + ) + { + ArgumentNullException.ThrowIfNull(matcher); + ArgumentNullException.ThrowIfNull(fileSystem); - return GetResultsInFullPath( - matcher, - fileSystem, - fileSystem.DirectoryInfo.New(directoryPath) - ); - } + return GetResultsInFullPath( + matcher, + fileSystem, + fileSystem.DirectoryInfo.New(directoryPath) + ); + } - private static IEnumerable<string> GetResultsInFullPath( - this Matcher matcher, - IFileSystem fileSystem, - IDirectoryInfo directoryInfo - ) - { - ArgumentNullException.ThrowIfNull(matcher); - ArgumentNullException.ThrowIfNull(fileSystem); - ArgumentNullException.ThrowIfNull(directoryInfo); + private IEnumerable<string> GetResultsInFullPath(IFileSystem fileSystem, + IDirectoryInfo directoryInfo + ) + { + ArgumentNullException.ThrowIfNull(matcher); + ArgumentNullException.ThrowIfNull(fileSystem); + ArgumentNullException.ThrowIfNull(directoryInfo); - var matches = Execute(matcher, fileSystem, directoryInfo); + var matches = Execute(matcher, fileSystem, directoryInfo); - if (!matches.HasMatches) - { - return EmptyStringsEnumerable; - } + if (!matches.HasMatches) + { + return EmptyStringsEnumerable; + } - var fsPath = fileSystem.Path; - var directoryFullName = directoryInfo.FullName; + var fsPath = fileSystem.Path; + var directoryFullName = directoryInfo.FullName; - return matches.Files.Select(GetFullPath); + return matches.Files.Select(GetFullPath); - string GetFullPath(FilePatternMatch match) => - fsPath.GetFullPath(fsPath.Combine(directoryFullName, match.Path)); + string GetFullPath(FilePatternMatch match) => + fsPath.GetFullPath(fsPath.Combine(directoryFullName, match.Path)); + } } private static readonly IEnumerable<string> EmptyStringsEnumerable = []; diff --git a/src/GitVersion.App/GitVersion.App.csproj b/src/GitVersion.App/GitVersion.App.csproj index 00c1587488..be6ae43bb8 100644 --- a/src/GitVersion.App/GitVersion.App.csproj +++ b/src/GitVersion.App/GitVersion.App.csproj @@ -30,6 +30,11 @@ <ProjectReference Include="..\GitVersion.Output\GitVersion.Output.csproj" /> </ItemGroup> + <ItemGroup Label="MicrosoftExtensionsUsings"> + <Using Include="Microsoft.Extensions.FileSystemGlobbing" /> + <Using Include="Microsoft.Extensions.Hosting" /> + </ItemGroup> + <ItemGroup> <EmbeddedResource Include="../../docs/input/docs/usage/cli/arguments.md" /> </ItemGroup> diff --git a/src/GitVersion.App/GitVersionApp.cs b/src/GitVersion.App/GitVersionApp.cs index ae9bc0f9c4..910b7d9715 100644 --- a/src/GitVersion.App/GitVersionApp.cs +++ b/src/GitVersion.App/GitVersionApp.cs @@ -1,7 +1,5 @@ using GitVersion.Extensions; using GitVersion.Logging; -using Microsoft.Extensions.Hosting; -using Microsoft.Extensions.Options; namespace GitVersion; @@ -21,16 +19,27 @@ public Task RunAsync(CancellationToken _) try { var gitVersionOptions = this.options.Value; - this.log.Verbosity = gitVersionOptions.Verbosity; - SysEnv.ExitCode = this.gitVersionExecutor.Execute(gitVersionOptions); + + if (gitVersionOptions.IsHelp || gitVersionOptions.IsVersion) + { + SysEnv.ExitCode = 0; + } + else + { + this.log.Verbosity = gitVersionOptions.Verbosity; + SysEnv.ExitCode = this.gitVersionExecutor.Execute(gitVersionOptions); + } } catch (Exception exception) { Console.Error.WriteLine(exception.Message); SysEnv.ExitCode = 1; } + finally + { + this.applicationLifetime.StopApplication(); + } - this.applicationLifetime.StopApplication(); return Task.CompletedTask; } } diff --git a/src/GitVersion.App/GitVersionAppModule.cs b/src/GitVersion.App/GitVersionAppModule.cs index c8cb45b42e..6aff30e990 100644 --- a/src/GitVersion.App/GitVersionAppModule.cs +++ b/src/GitVersion.App/GitVersionAppModule.cs @@ -1,9 +1,8 @@ using GitVersion.FileSystemGlobbing; -using Microsoft.Extensions.DependencyInjection; namespace GitVersion; -internal class GitVersionAppModule : IGitVersionModule +internal class GitVersionAppModule(params string[] args) : IGitVersionModule { public void RegisterTypes(IServiceCollection services) { @@ -13,5 +12,13 @@ public void RegisterTypes(IServiceCollection services) services.AddSingleton<IHelpWriter, HelpWriter>(); services.AddSingleton<IVersionWriter, VersionWriter>(); services.AddSingleton<IGitVersionExecutor, GitVersionExecutor>(); + services.AddSingleton<GitVersionApp>(); + + services.AddSingleton(sp => + { + var arguments = sp.GetRequiredService<IArgumentParser>().ParseArguments(args); + var gitVersionOptions = arguments.ToOptions(); + return Options.Create(gitVersionOptions); + }); } } diff --git a/src/GitVersion.App/GitVersionExecutor.cs b/src/GitVersion.App/GitVersionExecutor.cs index 36199ac398..ced585b029 100644 --- a/src/GitVersion.App/GitVersionExecutor.cs +++ b/src/GitVersion.App/GitVersionExecutor.cs @@ -11,8 +11,6 @@ internal class GitVersionExecutor( ILog log, IFileSystem fileSystem, IConsole console, - IVersionWriter versionWriter, - IHelpWriter helpWriter, IConfigurationFileLocator configurationFileLocator, IConfigurationProvider configurationProvider, IConfigurationSerializer configurationSerializer, @@ -25,8 +23,6 @@ internal class GitVersionExecutor( private readonly ILog log = log.NotNull(); private readonly IFileSystem fileSystem = fileSystem.NotNull(); private readonly IConsole console = console.NotNull(); - private readonly IVersionWriter versionWriter = versionWriter.NotNull(); - private readonly IHelpWriter helpWriter = helpWriter.NotNull(); private readonly IConfigurationFileLocator configurationFileLocator = configurationFileLocator.NotNull(); private readonly IConfigurationProvider configurationProvider = configurationProvider.NotNull(); @@ -39,10 +35,11 @@ internal class GitVersionExecutor( public int Execute(GitVersionOptions gitVersionOptions) { - if (!HandleNonMainCommand(gitVersionOptions, out var exitCode)) - { - exitCode = RunGitVersionTool(gitVersionOptions); - } + Initialize(gitVersionOptions); + + var exitCode = !VerifyAndDisplayConfiguration(gitVersionOptions) + ? RunGitVersionTool(gitVersionOptions) + : 0; if (exitCode != 0) { @@ -103,30 +100,23 @@ private int RunGitVersionTool(GitVersionOptions gitVersionOptions) return 0; } - private bool HandleNonMainCommand(GitVersionOptions gitVersionOptions, out int exitCode) + private void Initialize(GitVersionOptions gitVersionOptions) { - if (gitVersionOptions.IsVersion) + if (gitVersionOptions.Diag) { - var assembly = Assembly.GetExecutingAssembly(); - this.versionWriter.Write(assembly); - exitCode = 0; - return true; + gitVersionOptions.Settings.NoCache = true; } - if (gitVersionOptions.IsHelp) + if (gitVersionOptions.Output.Contains(OutputType.BuildServer) || gitVersionOptions.LogFilePath == "console") { - this.helpWriter.Write(); - exitCode = 0; - return true; + this.log.AddLogAppender(new ConsoleAppender()); } - if (gitVersionOptions.Diag) + if (gitVersionOptions.LogFilePath != null && gitVersionOptions.LogFilePath != "console") { - gitVersionOptions.Settings.NoCache = true; + this.log.AddLogAppender(new FileAppender(this.fileSystem, gitVersionOptions.LogFilePath)); } - ConfigureLogging(gitVersionOptions, this.log, this.fileSystem); - var workingDirectory = gitVersionOptions.WorkingDirectory; if (gitVersionOptions.Diag) { @@ -141,34 +131,19 @@ private bool HandleNonMainCommand(GitVersionOptions gitVersionOptions, out int e { this.log.Info("Working directory: " + workingDirectory); } - - if (gitVersionOptions.ConfigurationInfo.ShowConfiguration) - { - if (gitVersionOptions.RepositoryInfo.TargetUrl.IsNullOrWhiteSpace()) - { - this.configurationFileLocator.Verify(workingDirectory, this.repositoryInfo.ProjectRootDirectory); - } - var configuration = this.configurationProvider.Provide(); - var configurationString = configurationSerializer.Serialize(configuration); - this.console.WriteLine(configurationString); - exitCode = 0; - return true; - } - - exitCode = 0; - return false; } - private static void ConfigureLogging(GitVersionOptions gitVersionOptions, ILog log, IFileSystem fileSystem) + private bool VerifyAndDisplayConfiguration(GitVersionOptions gitVersionOptions) { - if (gitVersionOptions.Output.Contains(OutputType.BuildServer) || gitVersionOptions.LogFilePath == "console") + if (!gitVersionOptions.ConfigurationInfo.ShowConfiguration) return false; + if (gitVersionOptions.RepositoryInfo.TargetUrl.IsNullOrWhiteSpace()) { - log.AddLogAppender(new ConsoleAppender()); + this.configurationFileLocator.Verify(gitVersionOptions.WorkingDirectory, this.repositoryInfo.ProjectRootDirectory); } - if (gitVersionOptions.LogFilePath != null && gitVersionOptions.LogFilePath != "console") - { - log.AddLogAppender(new FileAppender(fileSystem, gitVersionOptions.LogFilePath)); - } + var configuration = this.configurationProvider.Provide(); + var configurationString = this.configurationSerializer.Serialize(configuration); + this.console.WriteLine(configurationString); + return true; } } diff --git a/src/GitVersion.App/OverrideConfigurationOptionParser.cs b/src/GitVersion.App/OverrideConfigurationOptionParser.cs index 2b19243e63..9b7a3ee403 100644 --- a/src/GitVersion.App/OverrideConfigurationOptionParser.cs +++ b/src/GitVersion.App/OverrideConfigurationOptionParser.cs @@ -50,7 +50,7 @@ private static bool IsSupportedPropertyType(Type propertyType) || unwrappedType == typeof(VersionStrategies[]); } - internal void SetValue(string key, string value) => overrideConfiguration[key] = QuotedStringHelpers.UnquoteText(value); + internal void SetValue(string key, string value) => this.overrideConfiguration[key] = QuotedStringHelpers.UnquoteText(value); internal IReadOnlyDictionary<object, object?> GetOverrideConfiguration() => this.overrideConfiguration; } diff --git a/src/GitVersion.App/Program.cs b/src/GitVersion.App/Program.cs index f82d650445..e7934aab59 100644 --- a/src/GitVersion.App/Program.cs +++ b/src/GitVersion.App/Program.cs @@ -1,5 +1,4 @@ using GitVersion; -using Microsoft.Extensions.DependencyInjection; var builder = CliHost.CreateCliHostBuilder(args); diff --git a/src/GitVersion.BuildAgents.Tests/Agents/AzurePipelinesTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/AzurePipelinesTests.cs index 79c27fb26c..e63945b96e 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/AzurePipelinesTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/AzurePipelinesTests.cs @@ -1,7 +1,7 @@ -using GitVersion.Core.Tests.Helpers; -using Microsoft.Extensions.DependencyInjection; +using GitVersion.Agents; +using GitVersion.Tests; -namespace GitVersion.Agents.Tests; +namespace GitVersion.BuildAgents.Tests; [TestFixture] public class AzurePipelinesTests : TestBase @@ -9,8 +9,8 @@ public class AzurePipelinesTests : TestBase private const string key = "BUILD_BUILDNUMBER"; private const string logPrefix = "##vso[build.updatebuildnumber]"; - private IEnvironment environment; - private AzurePipelines buildServer; + private IEnvironment environment = null!; + private AzurePipelines buildServer = null!; [SetUp] public void SetEnvironmentVariableForTest() diff --git a/src/GitVersion.BuildAgents.Tests/Agents/BitBucketPipelinesTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/BitBucketPipelinesTests.cs index a443730955..050c961410 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/BitBucketPipelinesTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/BitBucketPipelinesTests.cs @@ -1,19 +1,19 @@ using System.IO.Abstractions; +using GitVersion.Agents; using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; +using GitVersion.Tests; using GitVersion.VersionCalculation; -using Microsoft.Extensions.DependencyInjection; -namespace GitVersion.Agents.Tests; +namespace GitVersion.BuildAgents.Tests; [TestFixture] public class BitBucketPipelinesTests : TestBase { - private IEnvironment environment; - private IFileSystem fileSystem; - private BitBucketPipelines buildServer; - private IServiceProvider sp; + private IEnvironment environment = null!; + private IFileSystem fileSystem = null!; + private BitBucketPipelines buildServer = null!; + private IServiceProvider sp = null!; [SetUp] public void SetEnvironmentVariableForTest() diff --git a/src/GitVersion.BuildAgents.Tests/Agents/BuildKiteTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/BuildKiteTests.cs index 516bf2da94..91eff468c9 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/BuildKiteTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/BuildKiteTests.cs @@ -1,13 +1,13 @@ -using GitVersion.Core.Tests.Helpers; -using Microsoft.Extensions.DependencyInjection; +using GitVersion.Agents; +using GitVersion.Tests; -namespace GitVersion.Agents.Tests; +namespace GitVersion.BuildAgents.Tests; [TestFixture] public class BuildKiteTests : TestBase { - private IEnvironment environment; - private BuildKite buildServer; + private IEnvironment environment = null!; + private BuildKite buildServer = null!; [SetUp] public void SetUp() diff --git a/src/GitVersion.BuildAgents.Tests/Agents/BuildServerBaseTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/BuildServerBaseTests.cs index 44200014a9..bb67c41e22 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/BuildServerBaseTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/BuildServerBaseTests.cs @@ -1,18 +1,18 @@ using System.IO.Abstractions; +using GitVersion.Agents; using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using GitVersion.Logging; using GitVersion.OutputVariables; +using GitVersion.Tests; using GitVersion.VersionCalculation; -using Microsoft.Extensions.DependencyInjection; -namespace GitVersion.Agents.Tests; +namespace GitVersion.BuildAgents.Tests; [TestFixture] public class BuildServerBaseTests : TestBase { - private IVariableProvider buildServer; - private IServiceProvider sp; + private IVariableProvider buildServer = null!; + private IServiceProvider sp = null!; [SetUp] public void SetUp() diff --git a/src/GitVersion.BuildAgents.Tests/Agents/CodeBuildTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/CodeBuildTests.cs index 9924a3da9e..207e591beb 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/CodeBuildTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/CodeBuildTests.cs @@ -1,19 +1,19 @@ using System.IO.Abstractions; +using GitVersion.Agents; using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; +using GitVersion.Tests; using GitVersion.VersionCalculation; -using Microsoft.Extensions.DependencyInjection; -namespace GitVersion.Agents.Tests; +namespace GitVersion.BuildAgents.Tests; [TestFixture] public sealed class CodeBuildTests : TestBase { - private IEnvironment environment; - private IFileSystem fileSystem; - private IServiceProvider sp; - private CodeBuild buildServer; + private IEnvironment environment = null!; + private IFileSystem fileSystem = null!; + private IServiceProvider sp = null!; + private CodeBuild buildServer = null!; [SetUp] public void SetUp() diff --git a/src/GitVersion.BuildAgents.Tests/Agents/ContinuaCiTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/ContinuaCiTests.cs index 6ed2ff100e..f01ad827be 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/ContinuaCiTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/ContinuaCiTests.cs @@ -1,12 +1,12 @@ -using GitVersion.Core.Tests.Helpers; -using Microsoft.Extensions.DependencyInjection; +using GitVersion.Agents; +using GitVersion.Tests; -namespace GitVersion.Agents.Tests; +namespace GitVersion.BuildAgents.Tests; [TestFixture] public class ContinuaCiTests : TestBase { - private IServiceProvider sp; + private IServiceProvider sp = null!; [SetUp] public void SetUp() => this.sp = ConfigureServices(services => services.AddSingleton<ContinuaCi>()); diff --git a/src/GitVersion.BuildAgents.Tests/Agents/DroneTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/DroneTests.cs index 4e65698cca..202d8a898a 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/DroneTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/DroneTests.cs @@ -1,14 +1,14 @@ -using GitVersion.Core.Tests.Helpers; -using Microsoft.Extensions.DependencyInjection; +using GitVersion.Agents; +using GitVersion.Tests; -namespace GitVersion.Agents.Tests; +namespace GitVersion.BuildAgents.Tests; [TestFixture] public class DroneTests : TestBase { - private IEnvironment environment; - private IServiceProvider sp; - private Drone buildServer; + private IEnvironment environment = null!; + private IServiceProvider sp = null!; + private Drone buildServer = null!; [SetUp] public void SetUp() diff --git a/src/GitVersion.BuildAgents.Tests/Agents/EnvRunTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/EnvRunTests.cs index 86604b2737..2d918ebe27 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/EnvRunTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/EnvRunTests.cs @@ -1,18 +1,18 @@ using System.IO.Abstractions; -using GitVersion.Core.Tests.Helpers; +using GitVersion.Agents; using GitVersion.Helpers; -using Microsoft.Extensions.DependencyInjection; +using GitVersion.Tests; -namespace GitVersion.Agents.Tests; +namespace GitVersion.BuildAgents.Tests; [TestFixture] public class EnvRunTests : TestBase { private const string EnvVarName = "ENVRUN_DATABASE"; - private string mFilePath; - private IEnvironment environment; - private IFileSystem fileSystem; - private EnvRun buildServer; + private string mFilePath = null!; + private IEnvironment environment = null!; + private IFileSystem fileSystem = null!; + private EnvRun buildServer = null!; [SetUp] public void SetEnvironmentVariableForTest() diff --git a/src/GitVersion.BuildAgents.Tests/Agents/GitHubActionsTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/GitHubActionsTests.cs index 2e0e258a13..8e16b89053 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/GitHubActionsTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/GitHubActionsTests.cs @@ -1,16 +1,16 @@ using System.IO.Abstractions; -using GitVersion.Core.Tests.Helpers; +using GitVersion.Agents; using GitVersion.Helpers; -using Microsoft.Extensions.DependencyInjection; +using GitVersion.Tests; -namespace GitVersion.Agents.Tests; +namespace GitVersion.BuildAgents.Tests; [TestFixture] public class GitHubActionsTests : TestBase { - private IEnvironment environment; - private IFileSystem fileSystem; - private GitHubActions buildServer; + private IEnvironment environment = null!; + private IFileSystem fileSystem = null!; + private GitHubActions buildServer = null!; private string? githubSetEnvironmentTempFilePath; [SetUp] diff --git a/src/GitVersion.BuildAgents.Tests/Agents/GitLabCiTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/GitLabCiTests.cs index 457955b088..53ce45d385 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/GitLabCiTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/GitLabCiTests.cs @@ -1,19 +1,19 @@ using System.IO.Abstractions; +using GitVersion.Agents; using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; +using GitVersion.Tests; using GitVersion.VersionCalculation; -using Microsoft.Extensions.DependencyInjection; -namespace GitVersion.Agents.Tests; +namespace GitVersion.BuildAgents.Tests; [TestFixture] public class GitLabCiTests : TestBase { - private IEnvironment environment; - private IFileSystem fileSystem; - private IServiceProvider sp; - private GitLabCi buildServer; + private IEnvironment environment = null!; + private IFileSystem fileSystem = null!; + private IServiceProvider sp = null!; + private GitLabCi buildServer = null!; [SetUp] public void SetUp() diff --git a/src/GitVersion.BuildAgents.Tests/Agents/JenkinsTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/JenkinsTests.cs index 6c23d10ec2..8b8f0c0d64 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/JenkinsTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/JenkinsTests.cs @@ -1,11 +1,11 @@ using System.IO.Abstractions; +using GitVersion.Agents; using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; +using GitVersion.Tests; using GitVersion.VersionCalculation; -using Microsoft.Extensions.DependencyInjection; -namespace GitVersion.Agents.Tests; +namespace GitVersion.BuildAgents.Tests; [TestFixture] public class JenkinsTests : TestBase @@ -14,10 +14,10 @@ public class JenkinsTests : TestBase private const string branch = "GIT_BRANCH"; private const string localBranch = "GIT_LOCAL_BRANCH"; private const string pipelineBranch = "BRANCH_NAME"; - private IEnvironment environment; - private IFileSystem fileSystem; - private IServiceProvider sp; - private Jenkins buildServer; + private IEnvironment environment = null!; + private IFileSystem fileSystem = null!; + private IServiceProvider sp = null!; + private Jenkins buildServer = null!; [SetUp] public void SetUp() diff --git a/src/GitVersion.BuildAgents.Tests/Agents/MyGetTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/MyGetTests.cs index 9894f777ef..ccbf85c75a 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/MyGetTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/MyGetTests.cs @@ -1,12 +1,12 @@ -using GitVersion.Core.Tests.Helpers; -using Microsoft.Extensions.DependencyInjection; +using GitVersion.Agents; +using GitVersion.Tests; -namespace GitVersion.Agents.Tests; +namespace GitVersion.BuildAgents.Tests; [TestFixture] public class MyGetTests : TestBase { - private MyGet buildServer; + private MyGet buildServer = null!; [SetUp] public void SetUp() diff --git a/src/GitVersion.BuildAgents.Tests/Agents/SpaceAutomationTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/SpaceAutomationTests.cs index c330ab2ea7..06eba79bbb 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/SpaceAutomationTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/SpaceAutomationTests.cs @@ -1,13 +1,13 @@ -using GitVersion.Core.Tests.Helpers; -using Microsoft.Extensions.DependencyInjection; +using GitVersion.Agents; +using GitVersion.Tests; -namespace GitVersion.Agents.Tests; +namespace GitVersion.BuildAgents.Tests; [TestFixture] public class SpaceAutomationTests : TestBase { - private IEnvironment environment; - private SpaceAutomation buildServer; + private IEnvironment environment = null!; + private SpaceAutomation buildServer = null!; [SetUp] public void SetUp() diff --git a/src/GitVersion.BuildAgents.Tests/Agents/TeamCityTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/TeamCityTests.cs index d3cbca95cf..c5ba3550e4 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/TeamCityTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/TeamCityTests.cs @@ -1,12 +1,12 @@ -using GitVersion.Core.Tests.Helpers; -using Microsoft.Extensions.DependencyInjection; +using GitVersion.Agents; +using GitVersion.Tests; -namespace GitVersion.Agents.Tests; +namespace GitVersion.BuildAgents.Tests; [TestFixture] public class TeamCityTests : TestBase { - private TeamCity buildServer; + private TeamCity buildServer = null!; [SetUp] public void SetUp() diff --git a/src/GitVersion.BuildAgents/Agents/AppVeyor.cs b/src/GitVersion.BuildAgents/Agents/AppVeyor.cs index b9c46c8da6..27e6ab858f 100644 --- a/src/GitVersion.BuildAgents/Agents/AppVeyor.cs +++ b/src/GitVersion.BuildAgents/Agents/AppVeyor.cs @@ -13,8 +13,8 @@ internal class AppVeyor(IEnvironment environment, ILog log, IFileSystem fileSyst public override string SetBuildNumber(GitVersionVariables variables) { - var buildNumber = Environment.GetEnvironmentVariable("APPVEYOR_BUILD_NUMBER"); - var apiUrl = Environment.GetEnvironmentVariable("APPVEYOR_API_URL") ?? throw new Exception("APPVEYOR_API_URL environment variable not set"); + var buildNumber = this.environment.GetEnvironmentVariable("APPVEYOR_BUILD_NUMBER"); + var apiUrl = this.environment.GetEnvironmentVariable("APPVEYOR_API_URL") ?? throw new Exception("APPVEYOR_API_URL environment variable not set"); using var httpClient = GetHttpClient(apiUrl); @@ -40,7 +40,7 @@ public override string SetBuildNumber(GitVersionVariables variables) public override string[] SetOutputVariables(string name, string? value) { - var apiUrl = Environment.GetEnvironmentVariable("APPVEYOR_API_URL") ?? throw new Exception("APPVEYOR_API_URL environment variable not set"); + var apiUrl = this.environment.GetEnvironmentVariable("APPVEYOR_API_URL") ?? throw new Exception("APPVEYOR_API_URL environment variable not set"); var httpClient = GetHttpClient(apiUrl); var body = new @@ -66,10 +66,10 @@ public override string[] SetOutputVariables(string name, string? value) public override string? GetCurrentBranch(bool usingDynamicRepos) { - var pullRequestBranchName = Environment.GetEnvironmentVariable("APPVEYOR_PULL_REQUEST_HEAD_REPO_BRANCH"); + var pullRequestBranchName = this.environment.GetEnvironmentVariable("APPVEYOR_PULL_REQUEST_HEAD_REPO_BRANCH"); return !pullRequestBranchName.IsNullOrWhiteSpace() ? pullRequestBranchName - : this.Environment.GetEnvironmentVariable("APPVEYOR_REPO_BRANCH"); + : this.environment.GetEnvironmentVariable("APPVEYOR_REPO_BRANCH"); } public override bool PreventFetch() => false; diff --git a/src/GitVersion.BuildAgents/Agents/AzurePipelines.cs b/src/GitVersion.BuildAgents/Agents/AzurePipelines.cs index d372f067b4..86dc7d4fdf 100644 --- a/src/GitVersion.BuildAgents/Agents/AzurePipelines.cs +++ b/src/GitVersion.BuildAgents/Agents/AzurePipelines.cs @@ -19,11 +19,11 @@ public override string[] SetOutputVariables(string name, string? value) => public override string? GetCurrentBranch(bool usingDynamicRepos) { - var gitBranch = Environment.GetEnvironmentVariable("GIT_BRANCH"); + var gitBranch = this.environment.GetEnvironmentVariable("GIT_BRANCH"); if (gitBranch is not null) return gitBranch; - var sourceBranch = Environment.GetEnvironmentVariable("BUILD_SOURCEBRANCH"); + var sourceBranch = this.environment.GetEnvironmentVariable("BUILD_SOURCEBRANCH"); // https://learn.microsoft.com/en-us/azure/devops/pipelines/build/variables?view=azure-devops&tabs=yaml // BUILD_SOURCEBRANCH must be used only for "real" branches, not for tags. @@ -37,7 +37,7 @@ public override string SetBuildNumber(GitVersionVariables variables) { // For AzurePipelines, we'll get the Build Number and insert GitVersion variables where // specified - var buildNumberEnv = Environment.GetEnvironmentVariable("BUILD_BUILDNUMBER"); + var buildNumberEnv = this.environment.GetEnvironmentVariable("BUILD_BUILDNUMBER"); if (buildNumberEnv.IsNullOrWhiteSpace()) return variables.FullSemVer; diff --git a/src/GitVersion.BuildAgents/Agents/BitBucketPipelines.cs b/src/GitVersion.BuildAgents/Agents/BitBucketPipelines.cs index ec79090b94..87640f9350 100644 --- a/src/GitVersion.BuildAgents/Agents/BitBucketPipelines.cs +++ b/src/GitVersion.BuildAgents/Agents/BitBucketPipelines.cs @@ -55,13 +55,13 @@ public override void WriteIntegration(Action<string?> writer, GitVersionVariable .Select(variable => $"export GITVERSION_{variable.Key.ToUpperInvariant()}={variable.Value}") .ToList(); - this.FileSystem.File.WriteAllLines(this.propertyFile, exports); + this.fileSystem.File.WriteAllLines(this.propertyFile, exports); var psExports = variables .Select(variable => $"$GITVERSION_{variable.Key.ToUpperInvariant()} = \"{variable.Value}\"") .ToList(); - this.FileSystem.File.WriteAllLines(this.ps1File, psExports); + this.fileSystem.File.WriteAllLines(this.ps1File, psExports); } public override string? GetCurrentBranch(bool usingDynamicRepos) @@ -72,7 +72,7 @@ public override void WriteIntegration(Action<string?> writer, GitVersionVariable private string? EvaluateEnvironmentVariable(string variableName) { - var branchName = Environment.GetEnvironmentVariable(variableName); + var branchName = this.environment.GetEnvironmentVariable(variableName); this.Log.Info("Evaluating environment variable {0} : {1}", variableName, branchName ?? "(null)"); return branchName; } diff --git a/src/GitVersion.BuildAgents/Agents/BuildKite.cs b/src/GitVersion.BuildAgents/Agents/BuildKite.cs index bdf325460a..3b3bc5d844 100644 --- a/src/GitVersion.BuildAgents/Agents/BuildKite.cs +++ b/src/GitVersion.BuildAgents/Agents/BuildKite.cs @@ -10,7 +10,7 @@ internal class BuildKite(IEnvironment environment, ILog log, IFileSystem fileSys protected override string EnvironmentVariable => EnvironmentVariableName; - public override bool CanApplyToCurrentContext() => "true".Equals(Environment.GetEnvironmentVariable(EnvironmentVariable), StringComparison.OrdinalIgnoreCase); + public override bool CanApplyToCurrentContext() => "true".Equals(this.environment.GetEnvironmentVariable(EnvironmentVariable), StringComparison.OrdinalIgnoreCase); public override string SetBuildNumber(GitVersionVariables variables) => string.Empty; // There is no equivalent function in BuildKite. @@ -20,10 +20,10 @@ public override string[] SetOutputVariables(string name, string? value) => public override string? GetCurrentBranch(bool usingDynamicRepos) { - var pullRequest = Environment.GetEnvironmentVariable("BUILDKITE_PULL_REQUEST"); + var pullRequest = this.environment.GetEnvironmentVariable("BUILDKITE_PULL_REQUEST"); if (string.IsNullOrEmpty(pullRequest) || pullRequest == "false") { - return Environment.GetEnvironmentVariable("BUILDKITE_BRANCH"); + return this.environment.GetEnvironmentVariable("BUILDKITE_BRANCH"); } // For pull requests BUILDKITE_BRANCH refers to the head, so adjust the diff --git a/src/GitVersion.BuildAgents/Agents/CodeBuild.cs b/src/GitVersion.BuildAgents/Agents/CodeBuild.cs index 30b710d8c4..5cae73b79a 100644 --- a/src/GitVersion.BuildAgents/Agents/CodeBuild.cs +++ b/src/GitVersion.BuildAgents/Agents/CodeBuild.cs @@ -26,9 +26,9 @@ public override string[] SetOutputVariables(string name, string? value) => public override string? GetCurrentBranch(bool usingDynamicRepos) { - var currentBranch = Environment.GetEnvironmentVariable(WebHookEnvironmentVariableName); + var currentBranch = this.environment.GetEnvironmentVariable(WebHookEnvironmentVariableName); - return currentBranch.IsNullOrEmpty() ? Environment.GetEnvironmentVariable(SourceVersionEnvironmentVariableName) : currentBranch; + return currentBranch.IsNullOrEmpty() ? this.environment.GetEnvironmentVariable(SourceVersionEnvironmentVariableName) : currentBranch; } public override void WriteIntegration(Action<string?> writer, GitVersionVariables variables, bool updateBuildNumber = true) @@ -38,11 +38,11 @@ public override void WriteIntegration(Action<string?> writer, GitVersionVariable base.WriteIntegration(writer, variables, updateBuildNumber); writer($"Outputting variables to '{this.file}' ... "); - this.FileSystem.File.WriteAllLines(this.file, SetOutputVariables(variables)); + this.fileSystem.File.WriteAllLines(this.file, SetOutputVariables(variables)); } public override bool PreventFetch() => true; - public override bool CanApplyToCurrentContext() => !Environment.GetEnvironmentVariable(WebHookEnvironmentVariableName).IsNullOrEmpty() - || !Environment.GetEnvironmentVariable(SourceVersionEnvironmentVariableName).IsNullOrEmpty(); + public override bool CanApplyToCurrentContext() => !this.environment.GetEnvironmentVariable(WebHookEnvironmentVariableName).IsNullOrEmpty() + || !this.environment.GetEnvironmentVariable(SourceVersionEnvironmentVariableName).IsNullOrEmpty(); } diff --git a/src/GitVersion.BuildAgents/Agents/Drone.cs b/src/GitVersion.BuildAgents/Agents/Drone.cs index 5895fe791b..e03bef5aa7 100644 --- a/src/GitVersion.BuildAgents/Agents/Drone.cs +++ b/src/GitVersion.BuildAgents/Agents/Drone.cs @@ -9,7 +9,7 @@ internal class Drone(IEnvironment environment, ILog log, IFileSystem fileSystem) { public const string EnvironmentVariableName = "DRONE"; protected override string EnvironmentVariable => EnvironmentVariableName; - public override bool CanApplyToCurrentContext() => "true".Equals(Environment.GetEnvironmentVariable(EnvironmentVariable), StringComparison.OrdinalIgnoreCase); + public override bool CanApplyToCurrentContext() => "true".Equals(this.environment.GetEnvironmentVariable(EnvironmentVariable), StringComparison.OrdinalIgnoreCase); public override string SetBuildNumber(GitVersionVariables variables) => variables.FullSemVer; @@ -23,20 +23,20 @@ public override string[] SetOutputVariables(string name, string? value) => // In Drone DRONE_BRANCH variable is equal to destination branch in case of pull request // https://discourse.drone.io/t/getting-the-branch-a-pull-request-is-created-from/670 // Unfortunately, DRONE_REFSPEC isn't populated, however CI_COMMIT_REFSPEC can be used instead of. - var pullRequestNumber = Environment.GetEnvironmentVariable("DRONE_PULL_REQUEST"); - if (pullRequestNumber.IsNullOrWhiteSpace()) return this.Environment.GetEnvironmentVariable("DRONE_BRANCH"); + var pullRequestNumber = this.environment.GetEnvironmentVariable("DRONE_PULL_REQUEST"); + if (pullRequestNumber.IsNullOrWhiteSpace()) return this.environment.GetEnvironmentVariable("DRONE_BRANCH"); // DRONE_SOURCE_BRANCH is available in Drone 1.x.x version - var sourceBranch = this.Environment.GetEnvironmentVariable("DRONE_SOURCE_BRANCH"); + var sourceBranch = this.environment.GetEnvironmentVariable("DRONE_SOURCE_BRANCH"); if (!sourceBranch.IsNullOrWhiteSpace()) return sourceBranch; // In drone lower than 1.x.x source branch can be parsed from CI_COMMIT_REFSPEC // CI_COMMIT_REFSPEC - {sourceBranch}:{destinationBranch} // https://github.com/drone/drone/issues/2222 - var ciCommitRefSpec = this.Environment.GetEnvironmentVariable("CI_COMMIT_REFSPEC"); - if (ciCommitRefSpec.IsNullOrWhiteSpace()) return this.Environment.GetEnvironmentVariable("DRONE_BRANCH"); + var ciCommitRefSpec = this.environment.GetEnvironmentVariable("CI_COMMIT_REFSPEC"); + if (ciCommitRefSpec.IsNullOrWhiteSpace()) return this.environment.GetEnvironmentVariable("DRONE_BRANCH"); var colonIndex = ciCommitRefSpec.IndexOf(':'); - return colonIndex > 0 ? ciCommitRefSpec[..colonIndex] : this.Environment.GetEnvironmentVariable("DRONE_BRANCH"); + return colonIndex > 0 ? ciCommitRefSpec[..colonIndex] : this.environment.GetEnvironmentVariable("DRONE_BRANCH"); } public override bool PreventFetch() => false; diff --git a/src/GitVersion.BuildAgents/Agents/EnvRun.cs b/src/GitVersion.BuildAgents/Agents/EnvRun.cs index c74962f92b..0c90bbcece 100644 --- a/src/GitVersion.BuildAgents/Agents/EnvRun.cs +++ b/src/GitVersion.BuildAgents/Agents/EnvRun.cs @@ -11,9 +11,9 @@ internal class EnvRun(IEnvironment environment, ILog log, IFileSystem fileSystem protected override string EnvironmentVariable => EnvironmentVariableName; public override bool CanApplyToCurrentContext() { - var envRunDatabasePath = Environment.GetEnvironmentVariable(EnvironmentVariableName); + var envRunDatabasePath = this.environment.GetEnvironmentVariable(EnvironmentVariableName); if (envRunDatabasePath.IsNullOrEmpty()) return false; - if (this.FileSystem.File.Exists(envRunDatabasePath)) return true; + if (this.fileSystem.File.Exists(envRunDatabasePath)) return true; this.Log.Error($"The database file of EnvRun.exe was not found at {envRunDatabasePath}."); return false; diff --git a/src/GitVersion.BuildAgents/Agents/GitHubActions.cs b/src/GitVersion.BuildAgents/Agents/GitHubActions.cs index 7bd1515e11..3c99588773 100644 --- a/src/GitVersion.BuildAgents/Agents/GitHubActions.cs +++ b/src/GitVersion.BuildAgents/Agents/GitHubActions.cs @@ -27,12 +27,12 @@ public override void WriteIntegration(Action<string?> writer, GitVersionVariable // https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#environment-files // The outgoing environment variables must be written to a temporary file (identified by the $GITHUB_ENV environment // variable, which changes for every step in a workflow) which is then parsed. That file must also be UTF-8, or it will fail. - var gitHubSetEnvFilePath = this.Environment.GetEnvironmentVariable(GitHubSetEnvTempFileEnvironmentVariableName); + var gitHubSetEnvFilePath = this.environment.GetEnvironmentVariable(GitHubSetEnvTempFileEnvironmentVariableName); if (gitHubSetEnvFilePath != null) { writer($"Writing version variables to $GITHUB_ENV file for '{GetType().Name}'."); - using var streamWriter = this.FileSystem.File.AppendText(gitHubSetEnvFilePath); + using var streamWriter = this.fileSystem.File.AppendText(gitHubSetEnvFilePath); foreach (var (key, value) in variables) { if (!value.IsNullOrEmpty()) @@ -53,8 +53,8 @@ public override void WriteIntegration(Action<string?> writer, GitVersionVariable // GITHUB_REF must be used only for "real" branches, not for tags. // Bug fix for https://github.com/GitTools/GitVersion/issues/2838 - var refType = Environment.GetEnvironmentVariable("GITHUB_REF_TYPE") ?? ""; - return refType.Equals("tag", StringComparison.OrdinalIgnoreCase) ? null : Environment.GetEnvironmentVariable("GITHUB_REF"); + var refType = this.environment.GetEnvironmentVariable("GITHUB_REF_TYPE") ?? ""; + return refType.Equals("tag", StringComparison.OrdinalIgnoreCase) ? null : this.environment.GetEnvironmentVariable("GITHUB_REF"); } public override bool PreventFetch() => true; diff --git a/src/GitVersion.BuildAgents/Agents/GitLabCi.cs b/src/GitVersion.BuildAgents/Agents/GitLabCi.cs index 90308f1e5e..cabf2885cf 100644 --- a/src/GitVersion.BuildAgents/Agents/GitLabCi.cs +++ b/src/GitVersion.BuildAgents/Agents/GitLabCi.cs @@ -27,8 +27,8 @@ public override string[] SetOutputVariables(string name, string? value) => // CI_COMMIT_TAG is only available in tag pipelines, // so we can exit if CI_COMMIT_REF_NAME would return the tag public override string? GetCurrentBranch(bool usingDynamicRepos) => - string.IsNullOrEmpty(this.Environment.GetEnvironmentVariable("CI_COMMIT_TAG")) - ? this.Environment.GetEnvironmentVariable("CI_COMMIT_REF_NAME") + string.IsNullOrEmpty(this.environment.GetEnvironmentVariable("CI_COMMIT_TAG")) + ? this.environment.GetEnvironmentVariable("CI_COMMIT_REF_NAME") : null; public override bool PreventFetch() => true; @@ -41,6 +41,6 @@ public override void WriteIntegration(Action<string?> writer, GitVersionVariable base.WriteIntegration(writer, variables, updateBuildNumber); writer($"Outputting variables to '{this.file}' ... "); - this.FileSystem.File.WriteAllLines(this.file, SetOutputVariables(variables)); + this.fileSystem.File.WriteAllLines(this.file, SetOutputVariables(variables)); } } diff --git a/src/GitVersion.BuildAgents/Agents/Jenkins.cs b/src/GitVersion.BuildAgents/Agents/Jenkins.cs index 57c78aede1..9a50b5df46 100644 --- a/src/GitVersion.BuildAgents/Agents/Jenkins.cs +++ b/src/GitVersion.BuildAgents/Agents/Jenkins.cs @@ -23,10 +23,10 @@ public override string[] SetOutputVariables(string name, string? value) => ]; public override string? GetCurrentBranch(bool usingDynamicRepos) => IsPipelineAsCode() - ? Environment.GetEnvironmentVariable("BRANCH_NAME") - : Environment.GetEnvironmentVariable("GIT_LOCAL_BRANCH") ?? Environment.GetEnvironmentVariable("GIT_BRANCH"); + ? this.environment.GetEnvironmentVariable("BRANCH_NAME") + : this.environment.GetEnvironmentVariable("GIT_LOCAL_BRANCH") ?? this.environment.GetEnvironmentVariable("GIT_BRANCH"); - private bool IsPipelineAsCode() => !Environment.GetEnvironmentVariable("BRANCH_NAME").IsNullOrEmpty(); + private bool IsPipelineAsCode() => !this.environment.GetEnvironmentVariable("BRANCH_NAME").IsNullOrEmpty(); public override bool PreventFetch() => true; @@ -44,6 +44,6 @@ public override void WriteIntegration(Action<string?> writer, GitVersionVariable base.WriteIntegration(writer, variables, updateBuildNumber); writer($"Outputting variables to '{this.file}' ... "); - this.FileSystem.File.WriteAllLines(this.file, SetOutputVariables(variables)); + this.fileSystem.File.WriteAllLines(this.file, SetOutputVariables(variables)); } } diff --git a/src/GitVersion.BuildAgents/Agents/MyGet.cs b/src/GitVersion.BuildAgents/Agents/MyGet.cs index dad7d7feb7..587a3c625b 100644 --- a/src/GitVersion.BuildAgents/Agents/MyGet.cs +++ b/src/GitVersion.BuildAgents/Agents/MyGet.cs @@ -12,8 +12,7 @@ internal class MyGet(IEnvironment environment, ILog log, IFileSystem fileSystem) protected override string EnvironmentVariable => EnvironmentVariableName; public override bool CanApplyToCurrentContext() { - var buildRunner = Environment.GetEnvironmentVariable(EnvironmentVariable); - + var buildRunner = this.environment.GetEnvironmentVariable(EnvironmentVariable); return !buildRunner.IsNullOrEmpty() && buildRunner.Equals("MyGet", StringComparison.InvariantCultureIgnoreCase); } diff --git a/src/GitVersion.BuildAgents/Agents/SpaceAutomation.cs b/src/GitVersion.BuildAgents/Agents/SpaceAutomation.cs index 2814896e04..da79d864ce 100644 --- a/src/GitVersion.BuildAgents/Agents/SpaceAutomation.cs +++ b/src/GitVersion.BuildAgents/Agents/SpaceAutomation.cs @@ -10,7 +10,7 @@ internal class SpaceAutomation(IEnvironment environment, ILog log, IFileSystem f protected override string EnvironmentVariable => EnvironmentVariableName; - public override string? GetCurrentBranch(bool usingDynamicRepos) => Environment.GetEnvironmentVariable("JB_SPACE_GIT_BRANCH"); + public override string? GetCurrentBranch(bool usingDynamicRepos) => this.environment.GetEnvironmentVariable("JB_SPACE_GIT_BRANCH"); public override string[] SetOutputVariables(string name, string? value) => []; diff --git a/src/GitVersion.BuildAgents/Agents/TeamCity.cs b/src/GitVersion.BuildAgents/Agents/TeamCity.cs index cae3ca8ab3..3d31681f39 100644 --- a/src/GitVersion.BuildAgents/Agents/TeamCity.cs +++ b/src/GitVersion.BuildAgents/Agents/TeamCity.cs @@ -14,7 +14,7 @@ internal class TeamCity(IEnvironment environment, ILog log, IFileSystem fileSyst public override string? GetCurrentBranch(bool usingDynamicRepos) { - var branchName = Environment.GetEnvironmentVariable("Git_Branch"); + var branchName = this.environment.GetEnvironmentVariable("Git_Branch"); if (!branchName.IsNullOrEmpty()) return branchName; if (!usingDynamicRepos) @@ -32,7 +32,7 @@ TeamCity doesn't make the current branch available through environmental variabl See https://gitversion.net/docs/reference/build-servers/teamcity for more info """); - public override bool PreventFetch() => !string.IsNullOrEmpty(Environment.GetEnvironmentVariable("Git_Branch")); + public override bool PreventFetch() => !string.IsNullOrEmpty(this.environment.GetEnvironmentVariable("Git_Branch")); public override string[] SetOutputVariables(string name, string? value) => [ diff --git a/src/GitVersion.BuildAgents/Agents/TravisCI.cs b/src/GitVersion.BuildAgents/Agents/TravisCI.cs index 43eb4638c8..ecdb7c161a 100644 --- a/src/GitVersion.BuildAgents/Agents/TravisCI.cs +++ b/src/GitVersion.BuildAgents/Agents/TravisCI.cs @@ -9,7 +9,7 @@ internal class TravisCi(IEnvironment environment, ILog log, IFileSystem fileSyst public const string EnvironmentVariableName = "TRAVIS"; protected override string EnvironmentVariable => EnvironmentVariableName; - public override bool CanApplyToCurrentContext() => "true".Equals(Environment.GetEnvironmentVariable(EnvironmentVariable)) && "true".Equals(Environment.GetEnvironmentVariable("CI")); + public override bool CanApplyToCurrentContext() => "true".Equals(this.environment.GetEnvironmentVariable(EnvironmentVariable)) && "true".Equals(this.environment.GetEnvironmentVariable("CI")); public override string SetBuildNumber(GitVersionVariables variables) => variables.FullSemVer; diff --git a/src/GitVersion.BuildAgents/GitVersionBuildAgentsModule.cs b/src/GitVersion.BuildAgents/GitVersionBuildAgentsModule.cs index 17ba4b85b8..395e004c4f 100644 --- a/src/GitVersion.BuildAgents/GitVersionBuildAgentsModule.cs +++ b/src/GitVersion.BuildAgents/GitVersionBuildAgentsModule.cs @@ -1,5 +1,3 @@ -using Microsoft.Extensions.DependencyInjection; - namespace GitVersion.Agents; public class GitVersionBuildAgentsModule : IGitVersionModule diff --git a/src/GitVersion.Configuration.Tests/Configuration/ConfigurationExtensionsTests.cs b/src/GitVersion.Configuration.Tests/Configuration/ConfigurationExtensionsTests.cs index 97e225f752..8eac64ec19 100644 --- a/src/GitVersion.Configuration.Tests/Configuration/ConfigurationExtensionsTests.cs +++ b/src/GitVersion.Configuration.Tests/Configuration/ConfigurationExtensionsTests.cs @@ -1,12 +1,13 @@ -using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using GitVersion.Git; +using GitVersion.Tests; -namespace GitVersion.Core.Tests.Configuration; +namespace GitVersion.Configuration.Tests; [TestFixture] public class ConfigurationExtensionsTests : TestBase { + private const string BranchName = "pull-request"; + [TestCase("release/2.0.0", "refs/heads/release/2.0.0", "release/2.0.0", "release/2.0.0", true, false, false, false, true)] @@ -52,7 +53,94 @@ public void EnsureGetBranchSpecificLabelWorksAsExpected(string branchName, strin .Build(); var effectiveConfiguration = configuration.GetEffectiveConfiguration(ReferenceName.FromBranchName(branchName)); - var actual = effectiveConfiguration.GetBranchSpecificLabel(ReferenceName.FromBranchName(branchName), null); + var actual = effectiveConfiguration.GetBranchSpecificLabel(ReferenceName.FromBranchName(branchName), null, new TestEnvironment()); actual.ShouldBe(expectedLabel); } + + [Test] + public void EnsureGetBranchSpecificLabelProcessesEnvironmentVariables() + { + var environment = new TestEnvironment(); + environment.SetEnvironmentVariable("GITHUB_HEAD_REF", "feature-branch"); + + var configuration = GitFlowConfigurationBuilder.New + .WithoutBranches() + .WithBranch(BranchName, builder => builder + .WithLabel("pr-{env:GITHUB_HEAD_REF}") + .WithRegularExpression(@"^pull[/-]")) + .Build(); + + var effectiveConfiguration = configuration.GetEffectiveConfiguration(ReferenceName.FromBranchName(BranchName)); + var actual = effectiveConfiguration.GetBranchSpecificLabel(ReferenceName.FromBranchName(BranchName), null, environment); + actual.ShouldBe("pr-feature-branch"); + } + + [Test] + public void EnsureGetBranchSpecificLabelProcessesEnvironmentVariablesWithFallback() + { + var environment = new TestEnvironment(); + // Don't set GITHUB_HEAD_REF to test fallback + + var configuration = GitFlowConfigurationBuilder.New + .WithoutBranches() + .WithBranch(BranchName, builder => builder + .WithLabel("pr-{env:GITHUB_HEAD_REF ?? \"unknown\"}") + .WithRegularExpression(@"^pull[/-]")) + .Build(); + + var effectiveConfiguration = configuration.GetEffectiveConfiguration(ReferenceName.FromBranchName(BranchName)); + var actual = effectiveConfiguration.GetBranchSpecificLabel(ReferenceName.FromBranchName(BranchName), null, environment); + actual.ShouldBe("pr-unknown"); + } + + [Test] + public void EnsureGetBranchSpecificLabelProcessesEnvironmentVariablesAndRegexPlaceholders() + { + var environment = new TestEnvironment(); + environment.SetEnvironmentVariable("GITHUB_HEAD_REF", "feature-branch"); + + var configuration = GitFlowConfigurationBuilder.New + .WithoutBranches() + .WithBranch("feature/test-branch", builder => builder + .WithLabel("{BranchName}-{env:GITHUB_HEAD_REF}") + .WithRegularExpression(@"^features?[\/-](?<BranchName>.+)")) + .Build(); + + var effectiveConfiguration = configuration.GetEffectiveConfiguration(ReferenceName.FromBranchName("feature/test-branch")); + var actual = effectiveConfiguration.GetBranchSpecificLabel(ReferenceName.FromBranchName("feature/test-branch"), null, environment); + actual.ShouldBe("test-branch-feature-branch"); + } + + [Test] + public void EnsureGetBranchSpecificLabelWorksWithoutEnvironmentWhenNoEnvPlaceholders() + { + var configuration = GitFlowConfigurationBuilder.New + .WithoutBranches() + .WithBranch("feature/test", builder => builder + .WithLabel("{BranchName}") + .WithRegularExpression(@"^features?[\/-](?<BranchName>.+)")) + .Build(); + + var effectiveConfiguration = configuration.GetEffectiveConfiguration(ReferenceName.FromBranchName("feature/test")); + var actual = effectiveConfiguration.GetBranchSpecificLabel(ReferenceName.FromBranchName("feature/test"), null, new TestEnvironment()); + actual.ShouldBe("test"); + } + + [Test] + public void EnsureGetBranchSpecificLabelThrowsWhenThrowIfNotFoundAndEnvVarMissing() + { + var environment = new TestEnvironment(); + // Do not set MISSING_VAR + + var configuration = GitFlowConfigurationBuilder.New + .WithoutBranches() + .WithBranch(BranchName, builder => builder + .WithLabel("pr-{env:MISSING_VAR}") + .WithRegularExpression(@"^pull[/-]")) + .Build(); + + var effectiveConfiguration = configuration.GetEffectiveConfiguration(ReferenceName.FromBranchName(BranchName)); + Should.Throw<ArgumentException>(() => + effectiveConfiguration.GetBranchSpecificLabel(ReferenceName.FromBranchName(BranchName), null, environment)); + } } diff --git a/src/GitVersion.Configuration.Tests/Configuration/ConfigurationFileLocatorTests.cs b/src/GitVersion.Configuration.Tests/Configuration/ConfigurationFileLocatorTests.cs index 3035b49a8b..49949d459d 100644 --- a/src/GitVersion.Configuration.Tests/Configuration/ConfigurationFileLocatorTests.cs +++ b/src/GitVersion.Configuration.Tests/Configuration/ConfigurationFileLocatorTests.cs @@ -1,31 +1,27 @@ using System.IO.Abstractions; -using GitVersion.Configuration; -using GitVersion.Configuration.Tests.Configuration; -using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; using GitVersion.Logging; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Options; +using GitVersion.Tests; -namespace GitVersion.Core.Tests; +namespace GitVersion.Configuration.Tests; [TestFixture] public static class ConfigurationFileLocatorTests { public class DefaultConfigFileLocatorTests : TestBase { - private string repoPath; - private string workingPath; - private IFileSystem fileSystem; - private ConfigurationProvider configurationProvider; - private IConfigurationFileLocator configFileLocator; + private string repoPath = null!; + private string workingPath = null!; + private IFileSystem fileSystem = null!; + private ConfigurationProvider configurationProvider = null!; + private IConfigurationFileLocator configFileLocator = null!; [SetUp] public void Setup() { this.repoPath = FileSystemHelper.Path.Combine(FileSystemHelper.Path.GetTempPath(), "MyGitRepo"); this.workingPath = FileSystemHelper.Path.Combine(FileSystemHelper.Path.GetTempPath(), "MyGitRepo", "Working"); - var options = Options.Create(new GitVersionOptions { WorkingDirectory = repoPath }); + var options = Options.Create(new GitVersionOptions { WorkingDirectory = this.repoPath }); var sp = ConfigureServices(services => services.AddSingleton(options)); @@ -92,11 +88,11 @@ public void NoWarnOnLowercasedGitVersionYmlFile(string configurationFile) public class NamedConfigurationFileLocatorTests : TestBase { - private string repoPath; - private string workingPath; - private IFileSystem fileSystem; - private IConfigurationFileLocator configFileLocator; - private GitVersionOptions gitVersionOptions; + private string repoPath = null!; + private string workingPath = null!; + private IFileSystem fileSystem = null!; + private IConfigurationFileLocator configFileLocator = null!; + private GitVersionOptions gitVersionOptions = null!; private string ConfigFile => this.gitVersionOptions.ConfigurationInfo.ConfigurationFile!; [SetUp] diff --git a/src/GitVersion.Configuration.Tests/Configuration/ConfigurationHelperTests.cs b/src/GitVersion.Configuration.Tests/Configuration/ConfigurationHelperTests.cs new file mode 100644 index 0000000000..fee64851b1 --- /dev/null +++ b/src/GitVersion.Configuration.Tests/Configuration/ConfigurationHelperTests.cs @@ -0,0 +1,82 @@ +namespace GitVersion.Configuration.Tests; + +[TestFixture] +public class ConfigurationHelperTests +{ + [Test] + public void Override_Replaces_Nested_Dictionary_With_Scalar_Value() + { + Dictionary<object, object?> original = + new() + { + ["key"] = new Dictionary<object, object?> { ["nested"] = "value" } + }; + var helper = new ConfigurationHelper(original); + + IReadOnlyDictionary<object, object?> source = + new Dictionary<object, object?> + { + ["key"] = "override" + }; + + helper.Override(source); + + helper.Dictionary["key"].ShouldBe("override"); + } + + [Test] + public void Override_Merges_Nested_Dictionaries_Recursively() + { + Dictionary<object, object?> original = + new() + { + ["key"] = new Dictionary<object, object?> + { + ["a"] = 1, + ["b"] = 2 + } + }; + var helper = new ConfigurationHelper(original); + + IReadOnlyDictionary<object, object?> source = + new Dictionary<object, object?> + { + ["key"] = new Dictionary<object, object?> + { + ["b"] = 3, + ["c"] = 4 + } + }; + + helper.Override(source); + + var nested = (IDictionary<object, object?>)helper.Dictionary["key"]!; + nested["a"].ShouldBe(1); + nested["b"].ShouldBe(3); + nested["c"].ShouldBe(4); + } + + [Test] + public void Override_Clones_New_Nested_Dictionaries() + { + Dictionary<object, object?> original = []; + var helper = new ConfigurationHelper(original); + + Dictionary<object, object?> sourceNested = + new() + { + ["a"] = 1 + }; + IReadOnlyDictionary<object, object?> source = + new Dictionary<object, object?> + { + ["key"] = sourceNested + }; + + helper.Override(source); + sourceNested["a"] = 2; + + var nested = (IDictionary<object, object?>)helper.Dictionary["key"]!; + nested["a"].ShouldBe(1); + } +} diff --git a/src/GitVersion.Configuration.Tests/Configuration/ConfigurationProviderTests.CanWriteOutEffectiveConfiguration.approved.txt b/src/GitVersion.Configuration.Tests/Configuration/ConfigurationProviderTests.CanWriteOutEffectiveConfiguration.approved.txt index dd44250ac5..63c7855dc8 100644 --- a/src/GitVersion.Configuration.Tests/Configuration/ConfigurationProviderTests.CanWriteOutEffectiveConfiguration.approved.txt +++ b/src/GitVersion.Configuration.Tests/Configuration/ConfigurationProviderTests.CanWriteOutEffectiveConfiguration.approved.txt @@ -1,23 +1,39 @@ +mode: ContinuousDelivery +label: "{BranchName}" +increment: Inherit +prevent-increment: + of-merged-branch: false + when-branch-merged: false + when-current-commit-tagged: true +track-merge-target: false +track-merge-message: true +commit-message-incrementing: Enabled +regex: '' +source-branches: [] +is-source-branch-for: [] +tracks-release-branches: false +is-release-branch: false +is-main-branch: false assembly-versioning-scheme: MajorMinorPatch assembly-file-versioning-scheme: MajorMinorPatch -tag-prefix: '[vV]?' -version-in-branch-pattern: (?<version>[vV]?\d+(\.\d+)?(\.\d+)?).* -major-version-bump-message: \+semver:\s?(breaking|major) -minor-version-bump-message: \+semver:\s?(feature|minor) -patch-version-bump-message: \+semver:\s?(fix|patch) -no-bump-message: \+semver:\s?(none|skip) +tag-prefix: "[vV]?" +version-in-branch-pattern: "(?<version>[vV]?\\d+(\\.\\d+)?(\\.\\d+)?).*" +major-version-bump-message: "\\+semver:\\s?(breaking|major)" +minor-version-bump-message: "\\+semver:\\s?(feature|minor)" +patch-version-bump-message: "\\+semver:\\s?(fix|patch)" +no-bump-message: "\\+semver:\\s?(none|skip)" tag-pre-release-weight: 60000 commit-date-format: yyyy-MM-dd merge-message-formats: {} update-build-number: true semantic-version-format: Strict strategies: -- Fallback -- ConfiguredNextVersion -- MergeMessage -- TaggedCommit -- TrackReleaseBranches -- VersionInBranchName + - Fallback + - ConfiguredNextVersion + - MergeMessage + - TaggedCommit + - TrackReleaseBranches + - VersionInBranchName branches: develop: mode: ContinuousDelivery @@ -29,7 +45,7 @@ branches: track-merge-message: true regex: ^dev(elop)?(ment)?$ source-branches: - - main + - main is-source-branch-for: [] tracks-release-branches: true is-release-branch: false @@ -42,7 +58,7 @@ branches: of-merged-branch: true track-merge-target: false track-merge-message: true - regex: ^master$|^main$ + regex: "^master$|^main$" source-branches: [] is-source-branch-for: [] tracks-release-branches: false @@ -57,10 +73,10 @@ branches: of-merged-branch: true when-current-commit-tagged: false track-merge-target: false - regex: ^releases?[\/-](?<BranchName>.+) + regex: "^releases?[\\/-](?<BranchName>.+)" source-branches: - - main - - support + - main + - support is-source-branch-for: [] tracks-release-branches: false is-release-branch: true @@ -68,37 +84,37 @@ branches: pre-release-weight: 30000 feature: mode: ManualDeployment - label: '{BranchName}' + label: "{BranchName}" increment: Inherit prevent-increment: when-current-commit-tagged: false track-merge-message: true - regex: ^features?[\/-](?<BranchName>.+) + regex: "^features?[\\/-](?<BranchName>.+)" source-branches: - - develop - - main - - release - - support - - hotfix + - develop + - main + - release + - support + - hotfix is-source-branch-for: [] is-main-branch: false pre-release-weight: 30000 pull-request: mode: ContinuousDelivery - label: PullRequest{Number} + label: "PullRequest{Number}" increment: Inherit prevent-increment: of-merged-branch: true when-current-commit-tagged: false track-merge-message: true - regex: ^(pull-requests|pull|pr)[\/-](?<Number>\d*) + regex: "^(pull-requests|pull|pr)[\\/-](?<Number>\\d*)" source-branches: - - develop - - main - - release - - feature - - support - - hotfix + - develop + - main + - release + - feature + - support + - hotfix is-source-branch-for: [] pre-release-weight: 30000 hotfix: @@ -107,10 +123,10 @@ branches: increment: Inherit prevent-increment: when-current-commit-tagged: false - regex: ^hotfix(es)?[\/-](?<BranchName>.+) + regex: "^hotfix(es)?[\\/-](?<BranchName>.+)" source-branches: - - main - - support + - main + - support is-source-branch-for: [] is-release-branch: true is-main-branch: false @@ -121,9 +137,9 @@ branches: prevent-increment: of-merged-branch: true track-merge-target: false - regex: ^support[\/-](?<BranchName>.+) + regex: "^support[\\/-](?<BranchName>.+)" source-branches: - - main + - main is-source-branch-for: [] tracks-release-branches: false is-release-branch: false @@ -131,37 +147,21 @@ branches: pre-release-weight: 55000 unknown: mode: ManualDeployment - label: '{BranchName}' + label: "{BranchName}" increment: Inherit prevent-increment: when-current-commit-tagged: true - regex: (?<BranchName>.+) + regex: "(?<BranchName>.+)" source-branches: - - main - - develop - - release - - feature - - pull-request - - hotfix - - support + - main + - develop + - release + - feature + - pull-request + - hotfix + - support is-source-branch-for: [] is-main-branch: false ignore: sha: [] paths: [] -mode: ContinuousDelivery -label: '{BranchName}' -increment: Inherit -prevent-increment: - of-merged-branch: false - when-branch-merged: false - when-current-commit-tagged: true -track-merge-target: false -track-merge-message: true -commit-message-incrementing: Enabled -regex: '' -source-branches: [] -is-source-branch-for: [] -tracks-release-branches: false -is-release-branch: false -is-main-branch: false diff --git a/src/GitVersion.Configuration.Tests/Configuration/ConfigurationProviderTests.cs b/src/GitVersion.Configuration.Tests/Configuration/ConfigurationProviderTests.cs index 9ce9311f5b..1cecfcfda2 100644 --- a/src/GitVersion.Configuration.Tests/Configuration/ConfigurationProviderTests.cs +++ b/src/GitVersion.Configuration.Tests/Configuration/ConfigurationProviderTests.cs @@ -1,28 +1,24 @@ using System.IO.Abstractions; using System.Runtime.CompilerServices; -using GitVersion.Configuration; -using GitVersion.Configuration.Tests.Configuration; -using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; using GitVersion.Logging; +using GitVersion.Tests; using GitVersion.VersionCalculation; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Options; -namespace GitVersion.Core.Tests; +namespace GitVersion.Configuration.Tests; [TestFixture] public class ConfigurationProviderTests : TestBase { - private string repoPath; - private ConfigurationProvider configurationProvider; - private IFileSystem fileSystem; + private string repoPath = null!; + private ConfigurationProvider configurationProvider = null!; + private IFileSystem fileSystem = null!; [SetUp] public void Setup() { this.repoPath = FileSystemHelper.Path.Combine(FileSystemHelper.Path.GetTempPath(), "MyGitRepo"); - var options = Options.Create(new GitVersionOptions { WorkingDirectory = repoPath }); + var options = Options.Create(new GitVersionOptions { WorkingDirectory = this.repoPath }); var sp = ConfigureServices(services => services.AddSingleton(options)); this.configurationProvider = (ConfigurationProvider)sp.GetRequiredService<IConfigurationProvider>(); this.fileSystem = sp.GetRequiredService<IFileSystem>(); @@ -286,7 +282,7 @@ public void NoWarnOnGitVersionYmlFile() var logAppender = new TestLogAppender(Action); var log = new Log(logAppender); - var options = Options.Create(new GitVersionOptions { WorkingDirectory = repoPath }); + var options = Options.Create(new GitVersionOptions { WorkingDirectory = this.repoPath }); var sp = ConfigureServices(services => { services.AddSingleton(options); diff --git a/src/GitVersion.Configuration.Tests/Configuration/Extensions.cs b/src/GitVersion.Configuration.Tests/Configuration/Extensions.cs index dafc7c5ce0..4145197790 100644 --- a/src/GitVersion.Configuration.Tests/Configuration/Extensions.cs +++ b/src/GitVersion.Configuration.Tests/Configuration/Extensions.cs @@ -2,26 +2,33 @@ using GitVersion.Extensions; using GitVersion.Helpers; -namespace GitVersion.Configuration.Tests.Configuration; +namespace GitVersion.Configuration.Tests; public static class Extensions { - public static IDisposable<string> SetupConfigFile(this IFileSystem fileSystem, string? path = null, string fileName = ConfigurationFileLocator.DefaultFileName, string text = "") + extension(IFileSystem fileSystem) { - if (path.IsNullOrEmpty()) + public IDisposable<string> SetupConfigFile(string? path = null, string fileName = ConfigurationFileLocator.DefaultFileName, string text = "") { - path = FileSystemHelper.Path.GetRepositoryTempPath(); - } + if (path.IsNullOrEmpty()) + { + path = FileSystemHelper.Path.GetRepositoryTempPath(); + } - var fullPath = FileSystemHelper.Path.Combine(path, fileName); - var directory = FileSystemHelper.Path.GetDirectoryName(fullPath); - if (!fileSystem.Directory.Exists(directory)) - { - fileSystem.Directory.CreateDirectory(directory); - } + var fullPath = FileSystemHelper.Path.Combine(path, fileName); + var directory = FileSystemHelper.Path.GetDirectoryName(fullPath); + if (!fileSystem.Directory.Exists(directory)) + { + fileSystem.Directory.CreateDirectory(directory); + } - fileSystem.File.WriteAllText(fullPath, text); + fileSystem.File.WriteAllText(fullPath, text); - return Disposable.Create(fullPath, () => fileSystem.File.Delete(fullPath)); + return Disposable.Create(fullPath, () => + { + fileSystem.File.Delete(fullPath); + fileSystem.Directory.Delete(directory, true); + }); + } } } diff --git a/src/GitVersion.Configuration.Tests/Configuration/IgnoreConfigurationTests.cs b/src/GitVersion.Configuration.Tests/Configuration/IgnoreConfigurationTests.cs index 7d16ba2289..5de8606187 100644 --- a/src/GitVersion.Configuration.Tests/Configuration/IgnoreConfigurationTests.cs +++ b/src/GitVersion.Configuration.Tests/Configuration/IgnoreConfigurationTests.cs @@ -1,8 +1,9 @@ -using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; -using YamlDotNet.Core; +using System.Globalization; +using GitVersion.Tests; +using GitVersion.VersionCalculation; +using SharpYaml; -namespace GitVersion.Core.Tests.Configuration; +namespace GitVersion.Configuration.Tests; [TestFixture] public class IgnoreConfigurationTests : TestBase @@ -19,13 +20,13 @@ public void CanDeserialize() commits-before: 2015-10-23T12:23:15 """; - var configuration = serializer.ReadConfiguration(yaml); + var configuration = this.serializer.ReadConfiguration(yaml); configuration.ShouldNotBeNull(); configuration.Ignore.ShouldNotBeNull(); configuration.Ignore.Shas.ShouldNotBeEmpty(); configuration.Ignore.Shas.ShouldBe(["b6c0c9fda88830ebcd563e500a5a7da5a1658e98"]); - configuration.Ignore.Before.ShouldBe(DateTimeOffset.Parse("2015-10-23T12:23:15")); + configuration.Ignore.Before.ShouldBe(DateTimeOffset.Parse("2015-10-23T12:23:15", CultureInfo.InvariantCulture)); } [Test] @@ -39,7 +40,7 @@ public void ShouldSupportsOtherSequenceFormat() - 6c19c7c219ecf8dbc468042baefa73a1b213e8b1 """; - var configuration = serializer.ReadConfiguration(yaml); + var configuration = this.serializer.ReadConfiguration(yaml); configuration.ShouldNotBeNull(); configuration.Ignore.ShouldNotBeNull(); @@ -52,7 +53,7 @@ public void WhenNotInConfigShouldHaveDefaults() { const string yaml = "next-version: 1.0"; - var configuration = serializer.ReadConfiguration(yaml); + var configuration = this.serializer.ReadConfiguration(yaml); configuration.ShouldNotBeNull(); configuration.Ignore.ShouldNotBeNull(); @@ -69,7 +70,18 @@ public void WhenBadDateFormatShouldFail() commits-before: bad format date """; - Should.Throw<YamlException>(() => serializer.ReadConfiguration(yaml)); + Should.Throw<YamlException>(() => this.serializer.ReadConfiguration(yaml)); + } + + [Test] + public void ShouldSupportScalarVersionStrategiesOverrideFormat() + { + const string yaml = "strategies: ConfiguredNextVersion, TaggedCommit"; + + var configuration = this.serializer.ReadConfiguration(yaml); + + configuration.ShouldNotBeNull(); + configuration.VersionStrategy.ShouldBe(VersionStrategies.ConfiguredNextVersion | VersionStrategies.TaggedCommit); } [Test] diff --git a/src/GitVersion.Configuration.Tests/Workflows/WorkflowsTests.cs b/src/GitVersion.Configuration.Tests/Workflows/WorkflowsTests.cs index 801d5239c4..f6143ef685 100644 --- a/src/GitVersion.Configuration.Tests/Workflows/WorkflowsTests.cs +++ b/src/GitVersion.Configuration.Tests/Workflows/WorkflowsTests.cs @@ -1,4 +1,4 @@ -namespace GitVersion.Configuration.Tests.Configuration; +namespace GitVersion.Configuration.Tests; [TestFixture] public class WorkflowsTests @@ -18,7 +18,7 @@ public void CheckWorkflowsAreUpdated(string workflow, IConfigurationBuilder conf { var configuration = configurationBuilder.Build(); - var serializedConfiguration = serializer.Serialize(configuration); + var serializedConfiguration = this.serializer.Serialize(configuration); var segments = workflow.Split("/"); var folderName = segments[0]; var fileName = segments[^1]; diff --git a/src/GitVersion.Configuration.Tests/Workflows/approved/GitFlow/v1.yml b/src/GitVersion.Configuration.Tests/Workflows/approved/GitFlow/v1.yml index dd44250ac5..63c7855dc8 100644 --- a/src/GitVersion.Configuration.Tests/Workflows/approved/GitFlow/v1.yml +++ b/src/GitVersion.Configuration.Tests/Workflows/approved/GitFlow/v1.yml @@ -1,23 +1,39 @@ +mode: ContinuousDelivery +label: "{BranchName}" +increment: Inherit +prevent-increment: + of-merged-branch: false + when-branch-merged: false + when-current-commit-tagged: true +track-merge-target: false +track-merge-message: true +commit-message-incrementing: Enabled +regex: '' +source-branches: [] +is-source-branch-for: [] +tracks-release-branches: false +is-release-branch: false +is-main-branch: false assembly-versioning-scheme: MajorMinorPatch assembly-file-versioning-scheme: MajorMinorPatch -tag-prefix: '[vV]?' -version-in-branch-pattern: (?<version>[vV]?\d+(\.\d+)?(\.\d+)?).* -major-version-bump-message: \+semver:\s?(breaking|major) -minor-version-bump-message: \+semver:\s?(feature|minor) -patch-version-bump-message: \+semver:\s?(fix|patch) -no-bump-message: \+semver:\s?(none|skip) +tag-prefix: "[vV]?" +version-in-branch-pattern: "(?<version>[vV]?\\d+(\\.\\d+)?(\\.\\d+)?).*" +major-version-bump-message: "\\+semver:\\s?(breaking|major)" +minor-version-bump-message: "\\+semver:\\s?(feature|minor)" +patch-version-bump-message: "\\+semver:\\s?(fix|patch)" +no-bump-message: "\\+semver:\\s?(none|skip)" tag-pre-release-weight: 60000 commit-date-format: yyyy-MM-dd merge-message-formats: {} update-build-number: true semantic-version-format: Strict strategies: -- Fallback -- ConfiguredNextVersion -- MergeMessage -- TaggedCommit -- TrackReleaseBranches -- VersionInBranchName + - Fallback + - ConfiguredNextVersion + - MergeMessage + - TaggedCommit + - TrackReleaseBranches + - VersionInBranchName branches: develop: mode: ContinuousDelivery @@ -29,7 +45,7 @@ branches: track-merge-message: true regex: ^dev(elop)?(ment)?$ source-branches: - - main + - main is-source-branch-for: [] tracks-release-branches: true is-release-branch: false @@ -42,7 +58,7 @@ branches: of-merged-branch: true track-merge-target: false track-merge-message: true - regex: ^master$|^main$ + regex: "^master$|^main$" source-branches: [] is-source-branch-for: [] tracks-release-branches: false @@ -57,10 +73,10 @@ branches: of-merged-branch: true when-current-commit-tagged: false track-merge-target: false - regex: ^releases?[\/-](?<BranchName>.+) + regex: "^releases?[\\/-](?<BranchName>.+)" source-branches: - - main - - support + - main + - support is-source-branch-for: [] tracks-release-branches: false is-release-branch: true @@ -68,37 +84,37 @@ branches: pre-release-weight: 30000 feature: mode: ManualDeployment - label: '{BranchName}' + label: "{BranchName}" increment: Inherit prevent-increment: when-current-commit-tagged: false track-merge-message: true - regex: ^features?[\/-](?<BranchName>.+) + regex: "^features?[\\/-](?<BranchName>.+)" source-branches: - - develop - - main - - release - - support - - hotfix + - develop + - main + - release + - support + - hotfix is-source-branch-for: [] is-main-branch: false pre-release-weight: 30000 pull-request: mode: ContinuousDelivery - label: PullRequest{Number} + label: "PullRequest{Number}" increment: Inherit prevent-increment: of-merged-branch: true when-current-commit-tagged: false track-merge-message: true - regex: ^(pull-requests|pull|pr)[\/-](?<Number>\d*) + regex: "^(pull-requests|pull|pr)[\\/-](?<Number>\\d*)" source-branches: - - develop - - main - - release - - feature - - support - - hotfix + - develop + - main + - release + - feature + - support + - hotfix is-source-branch-for: [] pre-release-weight: 30000 hotfix: @@ -107,10 +123,10 @@ branches: increment: Inherit prevent-increment: when-current-commit-tagged: false - regex: ^hotfix(es)?[\/-](?<BranchName>.+) + regex: "^hotfix(es)?[\\/-](?<BranchName>.+)" source-branches: - - main - - support + - main + - support is-source-branch-for: [] is-release-branch: true is-main-branch: false @@ -121,9 +137,9 @@ branches: prevent-increment: of-merged-branch: true track-merge-target: false - regex: ^support[\/-](?<BranchName>.+) + regex: "^support[\\/-](?<BranchName>.+)" source-branches: - - main + - main is-source-branch-for: [] tracks-release-branches: false is-release-branch: false @@ -131,37 +147,21 @@ branches: pre-release-weight: 55000 unknown: mode: ManualDeployment - label: '{BranchName}' + label: "{BranchName}" increment: Inherit prevent-increment: when-current-commit-tagged: true - regex: (?<BranchName>.+) + regex: "(?<BranchName>.+)" source-branches: - - main - - develop - - release - - feature - - pull-request - - hotfix - - support + - main + - develop + - release + - feature + - pull-request + - hotfix + - support is-source-branch-for: [] is-main-branch: false ignore: sha: [] paths: [] -mode: ContinuousDelivery -label: '{BranchName}' -increment: Inherit -prevent-increment: - of-merged-branch: false - when-branch-merged: false - when-current-commit-tagged: true -track-merge-target: false -track-merge-message: true -commit-message-incrementing: Enabled -regex: '' -source-branches: [] -is-source-branch-for: [] -tracks-release-branches: false -is-release-branch: false -is-main-branch: false diff --git a/src/GitVersion.Configuration.Tests/Workflows/approved/GitHubFlow/v1.yml b/src/GitVersion.Configuration.Tests/Workflows/approved/GitHubFlow/v1.yml index be7da3a729..b45381a41a 100644 --- a/src/GitVersion.Configuration.Tests/Workflows/approved/GitHubFlow/v1.yml +++ b/src/GitVersion.Configuration.Tests/Workflows/approved/GitHubFlow/v1.yml @@ -1,23 +1,39 @@ +mode: ContinuousDelivery +label: "{BranchName}" +increment: Inherit +prevent-increment: + of-merged-branch: false + when-branch-merged: false + when-current-commit-tagged: true +track-merge-target: false +track-merge-message: true +commit-message-incrementing: Enabled +regex: '' +source-branches: [] +is-source-branch-for: [] +tracks-release-branches: false +is-release-branch: false +is-main-branch: false assembly-versioning-scheme: MajorMinorPatch assembly-file-versioning-scheme: MajorMinorPatch -tag-prefix: '[vV]?' -version-in-branch-pattern: (?<version>[vV]?\d+(\.\d+)?(\.\d+)?).* -major-version-bump-message: \+semver:\s?(breaking|major) -minor-version-bump-message: \+semver:\s?(feature|minor) -patch-version-bump-message: \+semver:\s?(fix|patch) -no-bump-message: \+semver:\s?(none|skip) +tag-prefix: "[vV]?" +version-in-branch-pattern: "(?<version>[vV]?\\d+(\\.\\d+)?(\\.\\d+)?).*" +major-version-bump-message: "\\+semver:\\s?(breaking|major)" +minor-version-bump-message: "\\+semver:\\s?(feature|minor)" +patch-version-bump-message: "\\+semver:\\s?(fix|patch)" +no-bump-message: "\\+semver:\\s?(none|skip)" tag-pre-release-weight: 60000 commit-date-format: yyyy-MM-dd merge-message-formats: {} update-build-number: true semantic-version-format: Strict strategies: -- Fallback -- ConfiguredNextVersion -- MergeMessage -- TaggedCommit -- TrackReleaseBranches -- VersionInBranchName + - Fallback + - ConfiguredNextVersion + - MergeMessage + - TaggedCommit + - TrackReleaseBranches + - VersionInBranchName branches: main: label: '' @@ -26,7 +42,7 @@ branches: of-merged-branch: true track-merge-target: false track-merge-message: true - regex: ^master$|^main$ + regex: "^master$|^main$" source-branches: [] is-source-branch-for: [] tracks-release-branches: false @@ -43,9 +59,9 @@ branches: when-current-commit-tagged: false track-merge-target: false track-merge-message: true - regex: ^releases?[\/-](?<BranchName>.+) + regex: "^releases?[\\/-](?<BranchName>.+)" source-branches: - - main + - main is-source-branch-for: [] tracks-release-branches: false is-release-branch: true @@ -53,64 +69,48 @@ branches: pre-release-weight: 30000 feature: mode: ManualDeployment - label: '{BranchName}' + label: "{BranchName}" increment: Inherit prevent-increment: when-current-commit-tagged: false track-merge-message: true - regex: ^features?[\/-](?<BranchName>.+) + regex: "^features?[\\/-](?<BranchName>.+)" source-branches: - - main - - release + - main + - release is-source-branch-for: [] is-main-branch: false pre-release-weight: 30000 pull-request: mode: ContinuousDelivery - label: PullRequest{Number} + label: "PullRequest{Number}" increment: Inherit prevent-increment: of-merged-branch: true when-current-commit-tagged: false track-merge-message: true - regex: ^(pull-requests|pull|pr)[\/-](?<Number>\d*) + regex: "^(pull-requests|pull|pr)[\\/-](?<Number>\\d*)" source-branches: - - main - - release - - feature + - main + - release + - feature is-source-branch-for: [] pre-release-weight: 30000 unknown: mode: ManualDeployment - label: '{BranchName}' + label: "{BranchName}" increment: Inherit prevent-increment: when-current-commit-tagged: false track-merge-message: false - regex: (?<BranchName>.+) + regex: "(?<BranchName>.+)" source-branches: - - main - - release - - feature - - pull-request + - main + - release + - feature + - pull-request is-source-branch-for: [] is-main-branch: false ignore: sha: [] paths: [] -mode: ContinuousDelivery -label: '{BranchName}' -increment: Inherit -prevent-increment: - of-merged-branch: false - when-branch-merged: false - when-current-commit-tagged: true -track-merge-target: false -track-merge-message: true -commit-message-incrementing: Enabled -regex: '' -source-branches: [] -is-source-branch-for: [] -tracks-release-branches: false -is-release-branch: false -is-main-branch: false diff --git a/src/GitVersion.Configuration.Tests/Workflows/approved/TrunkBased/preview1.yml b/src/GitVersion.Configuration.Tests/Workflows/approved/TrunkBased/preview1.yml index c261444d9f..0b8cfcda4f 100644 --- a/src/GitVersion.Configuration.Tests/Workflows/approved/TrunkBased/preview1.yml +++ b/src/GitVersion.Configuration.Tests/Workflows/approved/TrunkBased/preview1.yml @@ -1,19 +1,35 @@ +mode: ContinuousDelivery +label: "{BranchName}" +increment: Inherit +prevent-increment: + of-merged-branch: false + when-branch-merged: false + when-current-commit-tagged: true +track-merge-target: false +track-merge-message: true +commit-message-incrementing: Enabled +regex: '' +source-branches: [] +is-source-branch-for: [] +tracks-release-branches: false +is-release-branch: false +is-main-branch: false assembly-versioning-scheme: MajorMinorPatch assembly-file-versioning-scheme: MajorMinorPatch -tag-prefix: '[vV]?' -version-in-branch-pattern: (?<version>[vV]?\d+(\.\d+)?(\.\d+)?).* -major-version-bump-message: \+semver:\s?(breaking|major) -minor-version-bump-message: \+semver:\s?(feature|minor) -patch-version-bump-message: \+semver:\s?(fix|patch) -no-bump-message: \+semver:\s?(none|skip) +tag-prefix: "[vV]?" +version-in-branch-pattern: "(?<version>[vV]?\\d+(\\.\\d+)?(\\.\\d+)?).*" +major-version-bump-message: "\\+semver:\\s?(breaking|major)" +minor-version-bump-message: "\\+semver:\\s?(feature|minor)" +patch-version-bump-message: "\\+semver:\\s?(fix|patch)" +no-bump-message: "\\+semver:\\s?(none|skip)" tag-pre-release-weight: 60000 commit-date-format: yyyy-MM-dd merge-message-formats: {} update-build-number: true semantic-version-format: Strict strategies: -- ConfiguredNextVersion -- Mainline + - ConfiguredNextVersion + - Mainline branches: main: mode: ContinuousDeployment @@ -23,7 +39,7 @@ branches: of-merged-branch: true track-merge-target: false track-merge-message: true - regex: ^master$|^main$ + regex: "^master$|^main$" source-branches: [] is-source-branch-for: [] tracks-release-branches: false @@ -32,70 +48,54 @@ branches: pre-release-weight: 55000 feature: mode: ContinuousDelivery - label: '{BranchName}' + label: "{BranchName}" increment: Minor prevent-increment: when-current-commit-tagged: false track-merge-message: true - regex: ^features?[\/-](?<BranchName>.+) + regex: "^features?[\\/-](?<BranchName>.+)" source-branches: - - main + - main is-source-branch-for: [] is-main-branch: false pre-release-weight: 30000 hotfix: mode: ContinuousDelivery - label: '{BranchName}' + label: "{BranchName}" increment: Patch prevent-increment: when-current-commit-tagged: false - regex: ^hotfix(es)?[\/-](?<BranchName>.+) + regex: "^hotfix(es)?[\\/-](?<BranchName>.+)" source-branches: - - main + - main is-source-branch-for: [] is-release-branch: true is-main-branch: false pre-release-weight: 30000 pull-request: mode: ContinuousDelivery - label: PullRequest{Number} + label: "PullRequest{Number}" increment: Inherit prevent-increment: of-merged-branch: true when-current-commit-tagged: false track-merge-message: true - regex: ^(pull-requests|pull|pr)[\/-](?<Number>\d*) + regex: "^(pull-requests|pull|pr)[\\/-](?<Number>\\d*)" source-branches: - - main - - feature - - hotfix + - main + - feature + - hotfix is-source-branch-for: [] pre-release-weight: 30000 unknown: increment: Patch prevent-increment: when-current-commit-tagged: false - regex: (?<BranchName>.+) + regex: "(?<BranchName>.+)" source-branches: - - main + - main is-source-branch-for: [] pre-release-weight: 30000 ignore: sha: [] paths: [] -mode: ContinuousDelivery -label: '{BranchName}' -increment: Inherit -prevent-increment: - of-merged-branch: false - when-branch-merged: false - when-current-commit-tagged: true -track-merge-target: false -track-merge-message: true -commit-message-incrementing: Enabled -regex: '' -source-branches: [] -is-source-branch-for: [] -tracks-release-branches: false -is-release-branch: false -is-main-branch: false diff --git a/src/GitVersion.Configuration/BranchConfiguration.cs b/src/GitVersion.Configuration/BranchConfiguration.cs index 699f67fcd5..96a211a889 100644 --- a/src/GitVersion.Configuration/BranchConfiguration.cs +++ b/src/GitVersion.Configuration/BranchConfiguration.cs @@ -8,72 +8,72 @@ internal record BranchConfiguration : IBranchConfiguration { [JsonPropertyName("mode")] [JsonPropertyDescription("The deployment mode for this branch. Can be 'ManualDeployment', 'ContinuousDelivery', 'ContinuousDeployment'.")] - public DeploymentMode? DeploymentMode { get; internal init; } + public DeploymentMode? DeploymentMode { get; set; } [JsonPropertyName("label")] [JsonPropertyDescription("The label to use for this branch. Use the value {BranchName} or similar as a placeholder to insert a named capture group from RegularExpression (fx. the branch name).")] - public string? Label { get; internal init; } + public string? Label { get; set; } [JsonPropertyName("increment")] [JsonPropertyDescription("The increment strategy for this branch. Can be 'Inherit', 'Patch', 'Minor', 'Major', 'None'.")] - public IncrementStrategy Increment { get; internal init; } + public IncrementStrategy Increment { get; set; } [JsonIgnore] IPreventIncrementConfiguration IBranchConfiguration.PreventIncrement => PreventIncrement; [JsonPropertyName("prevent-increment")] [JsonPropertyDescription("The prevent increment configuration section.")] - public PreventIncrementConfiguration PreventIncrement { get; internal init; } = new(); + public PreventIncrementConfiguration PreventIncrement { get; set; } = new(); [JsonPropertyName("track-merge-target")] [JsonPropertyDescription("Strategy which will look for tagged merge commits directly off the current branch.")] - public bool? TrackMergeTarget { get; internal init; } + public bool? TrackMergeTarget { get; set; } [JsonPropertyName("track-merge-message")] [JsonPropertyDescription("This property is a branch related property and gives the user the possibility to control the behavior of whether the merge commit message will be interpreted as a next version or not.")] - public bool? TrackMergeMessage { get; internal init; } + public bool? TrackMergeMessage { get; set; } [JsonPropertyName("commit-message-incrementing")] [JsonPropertyDescription("Sets whether it should be possible to increment the version with special syntax in the commit message. Can be 'Disabled', 'Enabled' or 'MergeMessageOnly'.")] - public CommitMessageIncrementMode? CommitMessageIncrementing { get; internal init; } + public CommitMessageIncrementMode? CommitMessageIncrementing { get; set; } [JsonPropertyName("regex")] [JsonPropertyDescription("The regular expression pattern to use to match this branch.")] [JsonPropertyFormat(Format.Regex)] - public string? RegularExpression { get; internal init; } + public string? RegularExpression { get; set; } [JsonIgnore] string? IBranchConfiguration.RegularExpression => RegularExpression; [JsonPropertyName("source-branches")] [JsonPropertyDescription("The source branches for this branch.")] - public HashSet<string> SourceBranches { get; internal init; } = []; + public HashSet<string> SourceBranches { get; set; } = []; [JsonIgnore] IReadOnlyCollection<string> IBranchConfiguration.SourceBranches => SourceBranches; [JsonPropertyName("is-source-branch-for")] [JsonPropertyDescription("The branches that this branch is a source branch.")] - public HashSet<string> IsSourceBranchFor { get; internal init; } = []; + public HashSet<string> IsSourceBranchFor { get; set; } = []; [JsonIgnore] IReadOnlyCollection<string> IBranchConfiguration.IsSourceBranchFor => IsSourceBranchFor; [JsonPropertyName("tracks-release-branches")] [JsonPropertyDescription("Indicates this branch configuration represents develop in GitFlow.")] - public bool? TracksReleaseBranches { get; internal init; } + public bool? TracksReleaseBranches { get; set; } [JsonPropertyName("is-release-branch")] [JsonPropertyDescription("Indicates this branch configuration represents a release branch in GitFlow.")] - public bool? IsReleaseBranch { get; internal init; } + public bool? IsReleaseBranch { get; set; } [JsonPropertyName("is-main-branch")] [JsonPropertyDescription("When using Mainline mode, this indicates that this branch is a mainline. By default main and support/* are mainlines.")] - public bool? IsMainBranch { get; internal init; } + public bool? IsMainBranch { get; set; } [JsonPropertyName("pre-release-weight")] [JsonPropertyDescription("Provides a way to translate the PreReleaseLabel to a number.")] - public int? PreReleaseWeight { get; internal init; } + public int? PreReleaseWeight { get; set; } public virtual IBranchConfiguration Inherit(IBranchConfiguration configuration) { diff --git a/src/GitVersion.Configuration/Builders/BranchConfigurationBuilder.cs b/src/GitVersion.Configuration/Builders/BranchConfigurationBuilder.cs index c45a5625bd..a29fe8545f 100644 --- a/src/GitVersion.Configuration/Builders/BranchConfigurationBuilder.cs +++ b/src/GitVersion.Configuration/Builders/BranchConfigurationBuilder.cs @@ -159,24 +159,24 @@ public virtual BranchConfigurationBuilder WithConfiguration(IBranchConfiguration public IBranchConfiguration Build() => new BranchConfiguration { - DeploymentMode = deploymentMode, - Label = label, - Increment = increment, - RegularExpression = regularExpression, - TracksReleaseBranches = tracksReleaseBranches, - TrackMergeTarget = trackMergeTarget, - TrackMergeMessage = trackMergeMessage, - CommitMessageIncrementing = commitMessageIncrementing, - IsMainBranch = isMainBranch, - IsReleaseBranch = isReleaseBranch, + DeploymentMode = this.deploymentMode, + Label = this.label, + Increment = this.increment, + RegularExpression = this.regularExpression, + TracksReleaseBranches = this.tracksReleaseBranches, + TrackMergeTarget = this.trackMergeTarget, + TrackMergeMessage = this.trackMergeMessage, + CommitMessageIncrementing = this.commitMessageIncrementing, + IsMainBranch = this.isMainBranch, + IsReleaseBranch = this.isReleaseBranch, PreventIncrement = new PreventIncrementConfiguration { - OfMergedBranch = preventIncrementOfMergedBranch, - WhenBranchMerged = preventIncrementWhenBranchMerged, - WhenCurrentCommitTagged = preventIncrementWhenCurrentCommitTagged + OfMergedBranch = this.preventIncrementOfMergedBranch, + WhenBranchMerged = this.preventIncrementWhenBranchMerged, + WhenCurrentCommitTagged = this.preventIncrementWhenCurrentCommitTagged }, - PreReleaseWeight = preReleaseWeight, - SourceBranches = sourceBranches, - IsSourceBranchFor = isSourceBranchFor + PreReleaseWeight = this.preReleaseWeight, + SourceBranches = this.sourceBranches, + IsSourceBranchFor = this.isSourceBranchFor }; } diff --git a/src/GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs b/src/GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs index 95785bc048..6efb5fce62 100644 --- a/src/GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs +++ b/src/GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs @@ -1,4 +1,3 @@ -using GitVersion.Core; using GitVersion.Extensions; using GitVersion.Helpers; using GitVersion.VersionCalculation; @@ -21,11 +20,11 @@ internal abstract class ConfigurationBuilderBase<TConfigurationBuilder> : IConfi private string? patchVersionBumpMessage; private string? noBumpMessage; private int? tagPreReleaseWeight; - private IgnoreConfiguration ignore; + private IgnoreConfiguration ignore = new(); private string? commitDateFormat; private bool updateBuildNumber; private SemanticVersionFormat semanticVersionFormat; - private VersionStrategies[] versionStrategies; + private VersionStrategies[] versionStrategies = []; private Dictionary<string, string> mergeMessageFormats = []; private readonly List<IReadOnlyDictionary<object, object?>> overrides = []; private readonly Dictionary<string, BranchConfigurationBuilder> branchConfigurationBuilders = []; @@ -400,7 +399,7 @@ public virtual IGitVersionConfiguration Build() CommitDateFormat = this.commitDateFormat, UpdateBuildNumber = this.updateBuildNumber, SemanticVersionFormat = this.semanticVersionFormat, - VersionStrategies = versionStrategies, + VersionStrategies = this.versionStrategies, Branches = branches, MergeMessageFormats = this.mergeMessageFormats, DeploymentMode = this.versioningMode, @@ -479,8 +478,8 @@ private static void ValidateConfiguration(IGitVersionConfiguration configuration protected record BranchMetaData { - public string Name { get; init; } + public required string Name { get; init; } - public string RegexPattern { get; init; } + public required string RegexPattern { get; init; } } } diff --git a/src/GitVersion.Configuration/Builders/GitFlowConfigurationBuilder.cs b/src/GitVersion.Configuration/Builders/GitFlowConfigurationBuilder.cs index b45967ac4c..9a09d93e28 100644 --- a/src/GitVersion.Configuration/Builders/GitFlowConfigurationBuilder.cs +++ b/src/GitVersion.Configuration/Builders/GitFlowConfigurationBuilder.cs @@ -1,4 +1,3 @@ -using GitVersion.Core; using GitVersion.VersionCalculation; namespace GitVersion.Configuration; @@ -42,11 +41,11 @@ private GitFlowConfigurationBuilder() IsMainBranch = false }); - WithBranch(DevelopBranch.Name).WithConfiguration(new BranchConfiguration + WithBranch(this.DevelopBranch.Name).WithConfiguration(new BranchConfiguration { Increment = IncrementStrategy.Minor, DeploymentMode = DeploymentMode.ContinuousDelivery, - RegularExpression = DevelopBranch.RegexPattern, + RegularExpression = this.DevelopBranch.RegexPattern, SourceBranches = [this.MainBranch.Name], Label = "alpha", PreventIncrement = new PreventIncrementConfiguration @@ -61,10 +60,10 @@ private GitFlowConfigurationBuilder() PreReleaseWeight = 0 }); - WithBranch(MainBranch.Name).WithConfiguration(new BranchConfiguration + WithBranch(this.MainBranch.Name).WithConfiguration(new BranchConfiguration { Increment = IncrementStrategy.Patch, - RegularExpression = MainBranch.RegexPattern, + RegularExpression = this.MainBranch.RegexPattern, SourceBranches = [], Label = string.Empty, PreventIncrement = new PreventIncrementConfiguration @@ -79,11 +78,11 @@ private GitFlowConfigurationBuilder() PreReleaseWeight = 55000 }); - WithBranch(ReleaseBranch.Name).WithConfiguration(new BranchConfiguration + WithBranch(this.ReleaseBranch.Name).WithConfiguration(new BranchConfiguration { Increment = IncrementStrategy.Minor, DeploymentMode = DeploymentMode.ManualDeployment, - RegularExpression = ReleaseBranch.RegexPattern, + RegularExpression = this.ReleaseBranch.RegexPattern, SourceBranches = [ this.MainBranch.Name, @@ -102,10 +101,10 @@ private GitFlowConfigurationBuilder() PreReleaseWeight = 30000 }); - WithBranch(FeatureBranch.Name).WithConfiguration(new BranchConfiguration + WithBranch(this.FeatureBranch.Name).WithConfiguration(new BranchConfiguration { Increment = IncrementStrategy.Inherit, - RegularExpression = FeatureBranch.RegexPattern, + RegularExpression = this.FeatureBranch.RegexPattern, DeploymentMode = DeploymentMode.ManualDeployment, SourceBranches = [ @@ -125,10 +124,10 @@ private GitFlowConfigurationBuilder() PreReleaseWeight = 30000 }); - WithBranch(PullRequestBranch.Name).WithConfiguration(new BranchConfiguration + WithBranch(this.PullRequestBranch.Name).WithConfiguration(new BranchConfiguration { Increment = IncrementStrategy.Inherit, - RegularExpression = PullRequestBranch.RegexPattern, + RegularExpression = this.PullRequestBranch.RegexPattern, DeploymentMode = DeploymentMode.ContinuousDelivery, SourceBranches = [ @@ -149,10 +148,10 @@ private GitFlowConfigurationBuilder() PreReleaseWeight = 30000 }); - WithBranch(HotfixBranch.Name).WithConfiguration(new BranchConfiguration + WithBranch(this.HotfixBranch.Name).WithConfiguration(new BranchConfiguration { Increment = IncrementStrategy.Inherit, - RegularExpression = HotfixBranch.RegexPattern, + RegularExpression = this.HotfixBranch.RegexPattern, DeploymentMode = DeploymentMode.ManualDeployment, PreventIncrement = new PreventIncrementConfiguration { @@ -169,10 +168,10 @@ private GitFlowConfigurationBuilder() PreReleaseWeight = 30000 }); - WithBranch(SupportBranch.Name).WithConfiguration(new BranchConfiguration + WithBranch(this.SupportBranch.Name).WithConfiguration(new BranchConfiguration { Increment = IncrementStrategy.Patch, - RegularExpression = SupportBranch.RegexPattern, + RegularExpression = this.SupportBranch.RegexPattern, SourceBranches = [this.MainBranch.Name], Label = string.Empty, PreventIncrement = new PreventIncrementConfiguration @@ -186,9 +185,9 @@ private GitFlowConfigurationBuilder() PreReleaseWeight = 55000 }); - WithBranch(UnknownBranch.Name).WithConfiguration(new BranchConfiguration + WithBranch(this.UnknownBranch.Name).WithConfiguration(new BranchConfiguration { - RegularExpression = UnknownBranch.RegexPattern, + RegularExpression = this.UnknownBranch.RegexPattern, DeploymentMode = DeploymentMode.ManualDeployment, Increment = IncrementStrategy.Inherit, SourceBranches = diff --git a/src/GitVersion.Configuration/Builders/GitHubFlowConfigurationBuilder.cs b/src/GitVersion.Configuration/Builders/GitHubFlowConfigurationBuilder.cs index 3a95c130d4..669e8d8cc4 100644 --- a/src/GitVersion.Configuration/Builders/GitHubFlowConfigurationBuilder.cs +++ b/src/GitVersion.Configuration/Builders/GitHubFlowConfigurationBuilder.cs @@ -1,4 +1,3 @@ -using GitVersion.Core; using GitVersion.VersionCalculation; namespace GitVersion.Configuration; @@ -42,7 +41,7 @@ private GitHubFlowConfigurationBuilder() IsMainBranch = false }); - WithBranch(MainBranch.Name).WithConfiguration(new BranchConfiguration + WithBranch(this.MainBranch.Name).WithConfiguration(new BranchConfiguration { Label = string.Empty, Increment = IncrementStrategy.Patch, @@ -52,7 +51,7 @@ private GitHubFlowConfigurationBuilder() }, TrackMergeTarget = false, TrackMergeMessage = true, - RegularExpression = MainBranch.RegexPattern, + RegularExpression = this.MainBranch.RegexPattern, SourceBranches = [], TracksReleaseBranches = false, IsReleaseBranch = false, @@ -60,7 +59,7 @@ private GitHubFlowConfigurationBuilder() PreReleaseWeight = 55000 }); - WithBranch(ReleaseBranch.Name).WithConfiguration(new BranchConfiguration + WithBranch(this.ReleaseBranch.Name).WithConfiguration(new BranchConfiguration { DeploymentMode = DeploymentMode.ManualDeployment, Label = "beta", @@ -73,7 +72,7 @@ private GitHubFlowConfigurationBuilder() }, TrackMergeTarget = false, TrackMergeMessage = true, - RegularExpression = ReleaseBranch.RegexPattern, + RegularExpression = this.ReleaseBranch.RegexPattern, SourceBranches = [ this.MainBranch.Name @@ -84,7 +83,7 @@ private GitHubFlowConfigurationBuilder() PreReleaseWeight = 30000 }); - WithBranch(FeatureBranch.Name).WithConfiguration(new BranchConfiguration + WithBranch(this.FeatureBranch.Name).WithConfiguration(new BranchConfiguration { DeploymentMode = DeploymentMode.ManualDeployment, Label = ConfigurationConstants.BranchNamePlaceholder, @@ -93,7 +92,7 @@ private GitHubFlowConfigurationBuilder() { WhenCurrentCommitTagged = false }, - RegularExpression = FeatureBranch.RegexPattern, + RegularExpression = this.FeatureBranch.RegexPattern, SourceBranches = [ this.MainBranch.Name, @@ -104,7 +103,7 @@ private GitHubFlowConfigurationBuilder() PreReleaseWeight = 30000 }); - WithBranch(PullRequestBranch.Name).WithConfiguration(new BranchConfiguration + WithBranch(this.PullRequestBranch.Name).WithConfiguration(new BranchConfiguration { DeploymentMode = DeploymentMode.ContinuousDelivery, Label = $"PullRequest{ConfigurationConstants.PullRequestNumberPlaceholder}", @@ -114,7 +113,7 @@ private GitHubFlowConfigurationBuilder() OfMergedBranch = true, WhenCurrentCommitTagged = false }, - RegularExpression = PullRequestBranch.RegexPattern, + RegularExpression = this.PullRequestBranch.RegexPattern, SourceBranches = [ this.MainBranch.Name, @@ -125,7 +124,7 @@ private GitHubFlowConfigurationBuilder() PreReleaseWeight = 30000 }); - WithBranch(UnknownBranch.Name).WithConfiguration(new BranchConfiguration + WithBranch(this.UnknownBranch.Name).WithConfiguration(new BranchConfiguration { DeploymentMode = DeploymentMode.ManualDeployment, Label = ConfigurationConstants.BranchNamePlaceholder, @@ -134,7 +133,7 @@ private GitHubFlowConfigurationBuilder() { WhenCurrentCommitTagged = false }, - RegularExpression = UnknownBranch.RegexPattern, + RegularExpression = this.UnknownBranch.RegexPattern, SourceBranches = [ this.MainBranch.Name, diff --git a/src/GitVersion.Configuration/Builders/IgnoreConfigurationBuilder.cs b/src/GitVersion.Configuration/Builders/IgnoreConfigurationBuilder.cs index 204a83f10e..b6cdf38578 100644 --- a/src/GitVersion.Configuration/Builders/IgnoreConfigurationBuilder.cs +++ b/src/GitVersion.Configuration/Builders/IgnoreConfigurationBuilder.cs @@ -34,7 +34,7 @@ public IgnoreConfigurationBuilder WithShas(HashSet<string> value) public IIgnoreConfiguration Build() => new IgnoreConfiguration { - Before = before, - Shas = shas + Before = this.before, + Shas = this.shas }; } diff --git a/src/GitVersion.Configuration/Builders/TrunkBasedConfigurationBuilder.cs b/src/GitVersion.Configuration/Builders/TrunkBasedConfigurationBuilder.cs index 608bcc1533..295fc37c1b 100644 --- a/src/GitVersion.Configuration/Builders/TrunkBasedConfigurationBuilder.cs +++ b/src/GitVersion.Configuration/Builders/TrunkBasedConfigurationBuilder.cs @@ -1,4 +1,3 @@ -using GitVersion.Core; using GitVersion.VersionCalculation; namespace GitVersion.Configuration; @@ -45,7 +44,7 @@ private TrunkBasedConfigurationBuilder() IsMainBranch = false }); - WithBranch(MainBranch.Name).WithConfiguration(new BranchConfiguration + WithBranch(this.MainBranch.Name).WithConfiguration(new BranchConfiguration { DeploymentMode = DeploymentMode.ContinuousDeployment, Label = string.Empty, @@ -56,7 +55,7 @@ private TrunkBasedConfigurationBuilder() }, TrackMergeTarget = false, TrackMergeMessage = true, - RegularExpression = MainBranch.RegexPattern, + RegularExpression = this.MainBranch.RegexPattern, SourceBranches = [], TracksReleaseBranches = false, IsReleaseBranch = false, @@ -64,7 +63,7 @@ private TrunkBasedConfigurationBuilder() PreReleaseWeight = 55000 }); - WithBranch(FeatureBranch.Name).WithConfiguration(new BranchConfiguration + WithBranch(this.FeatureBranch.Name).WithConfiguration(new BranchConfiguration { DeploymentMode = DeploymentMode.ContinuousDelivery, Label = ConfigurationConstants.BranchNamePlaceholder, @@ -73,7 +72,7 @@ private TrunkBasedConfigurationBuilder() { WhenCurrentCommitTagged = false }, - RegularExpression = FeatureBranch.RegexPattern, + RegularExpression = this.FeatureBranch.RegexPattern, SourceBranches = [ this.MainBranch.Name @@ -83,7 +82,7 @@ private TrunkBasedConfigurationBuilder() PreReleaseWeight = 30000 }); - WithBranch(HotfixBranch.Name).WithConfiguration(new BranchConfiguration + WithBranch(this.HotfixBranch.Name).WithConfiguration(new BranchConfiguration { DeploymentMode = DeploymentMode.ContinuousDelivery, Label = ConfigurationConstants.BranchNamePlaceholder, @@ -92,7 +91,7 @@ private TrunkBasedConfigurationBuilder() { WhenCurrentCommitTagged = false }, - RegularExpression = HotfixBranch.RegexPattern, + RegularExpression = this.HotfixBranch.RegexPattern, SourceBranches = [ this.MainBranch.Name @@ -102,7 +101,7 @@ private TrunkBasedConfigurationBuilder() PreReleaseWeight = 30000 }); - WithBranch(PullRequestBranch.Name).WithConfiguration(new BranchConfiguration + WithBranch(this.PullRequestBranch.Name).WithConfiguration(new BranchConfiguration { DeploymentMode = DeploymentMode.ContinuousDelivery, Label = $"PullRequest{ConfigurationConstants.PullRequestNumberPlaceholder}", @@ -112,7 +111,7 @@ private TrunkBasedConfigurationBuilder() OfMergedBranch = true, WhenCurrentCommitTagged = false }, - RegularExpression = PullRequestBranch.RegexPattern, + RegularExpression = this.PullRequestBranch.RegexPattern, SourceBranches = [ this.MainBranch.Name, @@ -123,14 +122,14 @@ private TrunkBasedConfigurationBuilder() PreReleaseWeight = 30000 }); - WithBranch(UnknownBranch.Name).WithConfiguration(new BranchConfiguration + WithBranch(this.UnknownBranch.Name).WithConfiguration(new BranchConfiguration { Increment = IncrementStrategy.Patch, PreventIncrement = new PreventIncrementConfiguration { WhenCurrentCommitTagged = false }, - RegularExpression = UnknownBranch.RegexPattern, + RegularExpression = this.UnknownBranch.RegexPattern, SourceBranches = [ this.MainBranch.Name diff --git a/src/GitVersion.Configuration/ConfigurationFileLocator.cs b/src/GitVersion.Configuration/ConfigurationFileLocator.cs index 489c39e1f1..d63d1d33d6 100644 --- a/src/GitVersion.Configuration/ConfigurationFileLocator.cs +++ b/src/GitVersion.Configuration/ConfigurationFileLocator.cs @@ -2,7 +2,6 @@ using GitVersion.Extensions; using GitVersion.Helpers; using GitVersion.Logging; -using Microsoft.Extensions.Options; namespace GitVersion.Configuration; @@ -29,11 +28,11 @@ internal class ConfigurationFileLocator( private readonly ILog log = log.NotNull(); private readonly IOptions<GitVersionOptions> options = options.NotNull(); - private string? ConfigurationFile => options.Value.ConfigurationInfo.ConfigurationFile; + private string? ConfigurationFile => this.options.Value.ConfigurationInfo.ConfigurationFile; public void Verify(string? workingDirectory, string? projectRootDirectory) { - if (FileSystemHelper.Path.IsPathRooted(this.ConfigurationFile)) return; + if (FileSystemHelper.Path.IsPathRooted(ConfigurationFile)) return; if (FileSystemHelper.Path.Equal(workingDirectory, projectRootDirectory)) return; WarnAboutAmbiguousConfigFileSelection(workingDirectory, projectRootDirectory); } @@ -47,12 +46,12 @@ public void Verify(string? workingDirectory, string? projectRootDirectory) return customConfigurationFile; } - if (string.IsNullOrWhiteSpace(directoryPath) || !fileSystem.Directory.Exists(directoryPath)) + if (string.IsNullOrWhiteSpace(directoryPath) || !this.fileSystem.Directory.Exists(directoryPath)) { return null; } - var files = fileSystem.Directory.GetFiles(directoryPath); + var files = this.fileSystem.Directory.GetFiles(directoryPath); foreach (var fileName in this.SupportedConfigFileNames) { this.log.Debug($"Trying to find configuration file {fileName} at '{directoryPath}'"); @@ -67,11 +66,11 @@ public void Verify(string? workingDirectory, string? projectRootDirectory) private string? GetCustomConfigurationFilePathIfEligable(string? directoryPath) { - if (string.IsNullOrWhiteSpace(this.ConfigurationFile)) return null; - var configurationFilePath = this.ConfigurationFile; + if (string.IsNullOrWhiteSpace(ConfigurationFile)) return null; + var configurationFilePath = ConfigurationFile; if (!string.IsNullOrWhiteSpace(directoryPath)) { - configurationFilePath = FileSystemHelper.Path.Combine(directoryPath, this.ConfigurationFile); + configurationFilePath = FileSystemHelper.Path.Combine(directoryPath, ConfigurationFile); } return this.fileSystem.File.Exists(configurationFilePath) ? configurationFilePath : null; @@ -90,10 +89,10 @@ private void WarnAboutAmbiguousConfigFileSelection(string? workingDirectory, str throw new WarningException($"Ambiguous configuration file selection from '{workingConfigFile}' and '{projectRootConfigFile}'"); } - if (hasConfigInProjectRootDirectory || hasConfigInWorkingDirectory || this.SupportedConfigFileNames.Any(entry => entry.Equals(this.ConfigurationFile, StringComparison.OrdinalIgnoreCase))) return; + if (hasConfigInProjectRootDirectory || hasConfigInWorkingDirectory || this.SupportedConfigFileNames.Any(entry => entry.Equals(ConfigurationFile, StringComparison.OrdinalIgnoreCase))) return; - workingConfigFile = FileSystemHelper.Path.Combine(workingDirectory, this.ConfigurationFile); - projectRootConfigFile = FileSystemHelper.Path.Combine(projectRootDirectory, this.ConfigurationFile); + workingConfigFile = FileSystemHelper.Path.Combine(workingDirectory, ConfigurationFile); + projectRootConfigFile = FileSystemHelper.Path.Combine(projectRootDirectory, ConfigurationFile); throw new WarningException($"The configuration file was not found at '{workingConfigFile}' or '{projectRootConfigFile}'"); } } diff --git a/src/GitVersion.Configuration/ConfigurationHelper.cs b/src/GitVersion.Configuration/ConfigurationHelper.cs index 0410558782..46917a12d9 100644 --- a/src/GitVersion.Configuration/ConfigurationHelper.cs +++ b/src/GitVersion.Configuration/ConfigurationHelper.cs @@ -45,54 +45,33 @@ public void Override(IReadOnlyDictionary<object, object?> value) private static void Merge(IDictionary<object, object?> dictionary, IReadOnlyDictionary<object, object?> anotherDictionary) { - foreach (var item in dictionary) + foreach (var (key, sourceValue) in anotherDictionary) { - switch (item.Value) + if (dictionary.TryGetValue(key, out var currentValue) + && currentValue is IDictionary<object, object?> currentDictionary + && sourceValue is IReadOnlyDictionary<object, object?> sourceDictionary) { - case IDictionary<object, object?> anotherDictionaryValue: - { - if (anotherDictionary.TryGetValue(item.Key, out var value) && value is IReadOnlyDictionary<object, object?> dictionaryValue) - { - Merge(anotherDictionaryValue, dictionaryValue); - } - - break; - } - case null or string or IList<object>: - { - if (anotherDictionary.TryGetValue(item.Key, out var value)) - { - dictionary[item.Key] = value; - } - - break; - } + Merge(currentDictionary, sourceDictionary); + continue; } + + dictionary[key] = sourceValue is IReadOnlyDictionary<object, object?> nestedDictionary + ? CloneDictionary(nestedDictionary) + : sourceValue; } + } - foreach (var item in anotherDictionary) - { - switch (item.Value) - { - case IReadOnlyDictionary<object, object?> when dictionary.ContainsKey(item.Key): - continue; - case IReadOnlyDictionary<object, object?> dictionaryValue: - { - Dictionary<object, object?> anotherDictionaryValue = []; - Merge(anotherDictionaryValue, dictionaryValue); - dictionary.Add(item.Key, anotherDictionaryValue); - break; - } - case null or string or IList<object>: - { - if (!dictionary.ContainsKey(item.Key)) - { - dictionary.Add(item.Key, item.Value); - } + private static Dictionary<object, object?> CloneDictionary(IReadOnlyDictionary<object, object?> dictionary) + { + Dictionary<object, object?> cloned = []; - break; - } - } + foreach (var (key, value) in dictionary) + { + cloned[key] = value is IReadOnlyDictionary<object, object?> nestedDictionary + ? CloneDictionary(nestedDictionary) + : value; } + + return cloned; } } diff --git a/src/GitVersion.Configuration/ConfigurationProvider.cs b/src/GitVersion.Configuration/ConfigurationProvider.cs index 644e1656cc..6250f0da77 100644 --- a/src/GitVersion.Configuration/ConfigurationProvider.cs +++ b/src/GitVersion.Configuration/ConfigurationProvider.cs @@ -2,8 +2,7 @@ using GitVersion.Configuration.Workflows; using GitVersion.Extensions; using GitVersion.Logging; -using Microsoft.Extensions.Options; -using YamlDotNet.Core; +using SharpYaml; namespace GitVersion.Configuration; @@ -88,8 +87,8 @@ private IGitVersionConfiguration ProvideConfiguration(string? configFile, } this.log.Info($"Using configuration file '{configFilePath}'"); - var content = fileSystem.File.ReadAllText(configFilePath); - return configurationSerializer.Deserialize<Dictionary<object, object?>>(content); + var content = this.fileSystem.File.ReadAllText(configFilePath); + return this.configurationSerializer.Deserialize<Dictionary<object, object?>>(content); } private static string? GetWorkflow(IReadOnlyDictionary<object, object?>? overrideConfiguration, IReadOnlyDictionary<object, object?>? overrideConfigurationFromFile) diff --git a/src/GitVersion.Configuration/ConfigurationSerializer.cs b/src/GitVersion.Configuration/ConfigurationSerializer.cs index 5517252772..e3fa4b13e5 100644 --- a/src/GitVersion.Configuration/ConfigurationSerializer.cs +++ b/src/GitVersion.Configuration/ConfigurationSerializer.cs @@ -1,46 +1,111 @@ -using YamlDotNet.Serialization; -using YamlDotNet.Serialization.NamingConventions; -using YamlDotNet.Serialization.TypeInspectors; +using SharpYaml; namespace GitVersion.Configuration; internal class ConfigurationSerializer : IConfigurationSerializer { - private static IDeserializer Deserializer => new DeserializerBuilder() - .WithNamingConvention(HyphenatedNamingConvention.Instance) - .WithTypeConverter(VersionStrategiesConverter.Instance) - .WithTypeInspector(inspector => new JsonPropertyNameInspector(inspector)) - .Build(); - - private static ISerializer Serializer => new SerializerBuilder() - .ConfigureDefaultValuesHandling(DefaultValuesHandling.OmitNull) - .WithTypeInspector(inspector => new JsonPropertyNameInspector(inspector)) - .WithNamingConvention(HyphenatedNamingConvention.Instance).Build(); - - public T Deserialize<T>(string input) => Deserializer.Deserialize<T>(input); - public string Serialize(object graph) => Serializer.Serialize(graph); + private static readonly ConfigurationYamlContext GeneratedContext = ConfigurationYamlContext.Default; + + private static readonly YamlSerializerOptions SerializerOptions = new() + { + PropertyNamingPolicy = HyphenatedJsonNamingPolicy.Instance, + DefaultIgnoreCondition = YamlIgnoreCondition.WhenWritingNull, + Converters = [VersionStrategiesConverter.Instance] + }; + + public T Deserialize<T>(string input) + { + if (typeof(T) == typeof(Dictionary<object, object?>)) + { + var graph = YamlSerializer.Deserialize<Dictionary<string, object?>>(input, SerializerOptions); + return (T)(object)ConvertToObjectDictionary(graph); + } + + if (typeof(T) == typeof(GitVersionConfiguration)) + { + try + { + return (T)(object)YamlSerializer.Deserialize<GitVersionConfiguration>(input, GeneratedContext)!; + } + catch (Exception exception) when (exception is not YamlException) + { + throw new YamlException(exception.Message, exception); + } + } + + return YamlSerializer.Deserialize<T>(input, SerializerOptions)!; + } + + public string Serialize(object graph) + => YamlSerializer.Serialize(graph, SerializerOptions); + public IGitVersionConfiguration? ReadConfiguration(string input) => Deserialize<GitVersionConfiguration?>(input); - private sealed class JsonPropertyNameInspector(ITypeInspector innerTypeDescriptor) : TypeInspectorSkeleton + private static Dictionary<object, object?> ConvertToObjectDictionary(IReadOnlyDictionary<string, object?>? source) { - public override string GetEnumName(Type enumType, string name) => innerTypeDescriptor.GetEnumName(enumType, name); + if (source is null) return []; - public override string GetEnumValue(object enumValue) => innerTypeDescriptor.GetEnumValue(enumValue); + Dictionary<object, object?> result = []; + foreach (var item in source) + { + result[item.Key] = ConvertValue(item.Value); + } - public override IEnumerable<IPropertyDescriptor> GetProperties(Type type, object? container) => - innerTypeDescriptor.GetProperties(type, container) - .Where(p => p.GetCustomAttribute<JsonIgnoreAttribute>() == null) - .Select(IPropertyDescriptor (p) => + return result; + } + + private static object? ConvertValue(object? value) => value switch + { + IReadOnlyDictionary<string, object?> dictionary => ConvertToObjectDictionary(dictionary), + IDictionary<string, object?> dictionary => ConvertToObjectDictionary(new Dictionary<string, object?>(dictionary)), + IList list => ConvertList(list), + _ => value + }; + + private static List<object?> ConvertList(IList list) + { + List<object?> result = []; + foreach (var item in list) + { + result.Add(ConvertValue(item)); + } + + return result; + } + + private sealed class HyphenatedJsonNamingPolicy : JsonNamingPolicy + { + public static JsonNamingPolicy Instance { get; } = new HyphenatedJsonNamingPolicy(); + + public override string ConvertName(string name) + { + if (string.IsNullOrEmpty(name)) return name; + + var builder = new StringBuilder(name.Length + 8); + for (var index = 0; index < name.Length; index++) + { + var current = name[index]; + if (char.IsUpper(current)) { - var descriptor = new PropertyDescriptor(p); - var member = p.GetCustomAttribute<JsonPropertyNameAttribute>(); - if (member is not null) + var hasPrevious = index > 0; + var hasNext = index + 1 < name.Length; + var previousIsLowerOrDigit = hasPrevious && (char.IsLower(name[index - 1]) || char.IsDigit(name[index - 1])); + var nextIsLower = hasNext && char.IsLower(name[index + 1]); + + if (hasPrevious && (previousIsLowerOrDigit || nextIsLower)) { - descriptor.Name = member.Name; + builder.Append('-'); } - return descriptor; - }) - .OrderBy(p => p.Order); + builder.Append(char.ToLowerInvariant(current)); + } + else + { + builder.Append(current); + } + } + + return builder.ToString(); + } } } diff --git a/src/GitVersion.Configuration/ConfigurationYamlContext.cs b/src/GitVersion.Configuration/ConfigurationYamlContext.cs new file mode 100644 index 0000000000..e76e9dde15 --- /dev/null +++ b/src/GitVersion.Configuration/ConfigurationYamlContext.cs @@ -0,0 +1,13 @@ +using SharpYaml; +using SharpYaml.Serialization; + +namespace GitVersion.Configuration; + +[YamlSourceGenerationOptions( + DefaultIgnoreCondition = YamlIgnoreCondition.WhenWritingNull, + Converters = [typeof(VersionStrategiesConverter)])] +[YamlSerializable(typeof(GitVersionConfiguration))] +[YamlSerializable(typeof(BranchConfiguration))] +[YamlSerializable(typeof(PreventIncrementConfiguration))] +[YamlSerializable(typeof(IgnoreConfiguration))] +internal partial class ConfigurationYamlContext : YamlSerializerContext; diff --git a/src/GitVersion.Configuration/GitVersion.Configuration.csproj b/src/GitVersion.Configuration/GitVersion.Configuration.csproj index f4a84de083..1af0a098e9 100644 --- a/src/GitVersion.Configuration/GitVersion.Configuration.csproj +++ b/src/GitVersion.Configuration/GitVersion.Configuration.csproj @@ -9,7 +9,8 @@ </ItemGroup> <ItemGroup> - <PackageReference Include="YamlDotNet" /> + <PackageReference Include="SharpYaml" /> + <PackageReference Include="System.Collections.Immutable" /> </ItemGroup> <ItemGroup> diff --git a/src/GitVersion.Configuration/GitVersionConfiguration.cs b/src/GitVersion.Configuration/GitVersionConfiguration.cs index 6e3a49bf9c..075584674a 100644 --- a/src/GitVersion.Configuration/GitVersionConfiguration.cs +++ b/src/GitVersion.Configuration/GitVersionConfiguration.cs @@ -1,6 +1,5 @@ using System.Globalization; using GitVersion.Configuration.Attributes; -using GitVersion.Core; using GitVersion.VersionCalculation; using static GitVersion.Configuration.ConfigurationConstants; @@ -10,50 +9,50 @@ internal sealed record GitVersionConfiguration : BranchConfiguration, IGitVersio { [JsonPropertyName("workflow")] [JsonPropertyDescription("The base template of the configuration to use. Possible values are: 'GitFlow/v1' or 'GitHubFlow/v1'")] - public string? Workflow { get; internal init; } + public string? Workflow { get; set; } [JsonPropertyName("assembly-versioning-scheme")] [JsonPropertyDescription($"The scheme to use when setting AssemblyVersion attribute. Can be 'MajorMinorPatchTag', 'MajorMinorPatch', 'MajorMinor', 'Major', 'None'. Defaults to '{NameOfDefaultAssemblyVersioningScheme}'.")] [JsonPropertyDefault(DefaultAssemblyVersioningScheme)] - public AssemblyVersioningScheme? AssemblyVersioningScheme { get; internal init; } + public AssemblyVersioningScheme? AssemblyVersioningScheme { get; set; } [JsonPropertyName("assembly-file-versioning-scheme")] [JsonPropertyDescription($"The scheme to use when setting AssemblyFileVersion attribute. Can be 'MajorMinorPatchTag', 'MajorMinorPatch', 'MajorMinor', 'Major', 'None'. Defaults to '{NameOfDefaultAssemblyFileVersioningScheme}'.")] [JsonPropertyDefault(DefaultAssemblyFileVersioningScheme)] - public AssemblyFileVersioningScheme? AssemblyFileVersioningScheme { get; internal init; } + public AssemblyFileVersioningScheme? AssemblyFileVersioningScheme { get; set; } [JsonPropertyName("assembly-informational-format")] [JsonPropertyDescription($"Specifies the format of AssemblyInformationalVersion. Defaults to '{DefaultAssemblyInformationalFormat}'.")] [JsonPropertyDefault($"'{DefaultAssemblyInformationalFormat}'")] - public string? AssemblyInformationalFormat { get; internal init; } + public string? AssemblyInformationalFormat { get; set; } [JsonPropertyName("assembly-versioning-format")] [JsonPropertyDescription("Specifies the format of AssemblyVersion and overwrites the value of assembly-versioning-scheme.")] - public string? AssemblyVersioningFormat { get; internal init; } + public string? AssemblyVersioningFormat { get; set; } [JsonPropertyName("assembly-file-versioning-format")] [JsonPropertyDescription("Specifies the format of AssemblyFileVersion and overwrites the value of assembly-file-versioning-scheme.")] - public string? AssemblyFileVersioningFormat { get; internal init; } + public string? AssemblyFileVersioningFormat { get; set; } [JsonPropertyName("tag-prefix")] [JsonPropertyDescription($"A regular expression which is used to trim Git tags before processing. Defaults to '{RegexPatterns.Configuration.DefaultTagPrefixRegexPattern}'")] [JsonPropertyDefault(RegexPatterns.Configuration.DefaultTagPrefixRegexPattern)] [JsonPropertyFormat(Format.Regex)] - public string? TagPrefixPattern { get; internal init; } + public string? TagPrefixPattern { get; set; } [JsonPropertyName("version-in-branch-pattern")] [JsonPropertyDescription($"A regular expression which is used to determine the version number in the branch name or commit message (e.g., v1.0.0-LTS). Defaults to '{RegexPatterns.Configuration.DefaultVersionInBranchRegexPattern}'.")] [JsonPropertyDefault(RegexPatterns.Configuration.DefaultVersionInBranchRegexPattern)] [JsonPropertyFormat(Format.Regex)] - public string? VersionInBranchPattern { get; internal init; } + public string? VersionInBranchPattern { get; set; } [JsonPropertyName("next-version")] [JsonPropertyDescription("Allows you to bump the next version explicitly. Useful for bumping main or a feature branch with breaking changes")] public string? NextVersion { - get => nextVersion; - internal init => - nextVersion = int.TryParse(value, NumberStyles.Any, NumberFormatInfo.InvariantInfo, out var major) + get => this.nextVersion; + set => + this.nextVersion = int.TryParse(value, NumberStyles.Any, NumberFormatInfo.InvariantInfo, out var major) ? $"{major}.0" : value; } @@ -63,39 +62,39 @@ public string? NextVersion [JsonPropertyDescription($"The regular expression to match commit messages with to perform a major version increment. Defaults to '{RegexPatterns.VersionCalculation.DefaultMajorRegexPattern}'")] [JsonPropertyDefault(RegexPatterns.VersionCalculation.DefaultMajorRegexPattern)] [JsonPropertyFormat(Format.Regex)] - public string? MajorVersionBumpMessage { get; internal init; } + public string? MajorVersionBumpMessage { get; set; } [JsonPropertyName("minor-version-bump-message")] [JsonPropertyDescription($"The regular expression to match commit messages with to perform a minor version increment. Defaults to '{RegexPatterns.VersionCalculation.DefaultMinorRegexPattern}'")] [JsonPropertyDefault(RegexPatterns.VersionCalculation.DefaultMinorRegexPattern)] [JsonPropertyFormat(Format.Regex)] - public string? MinorVersionBumpMessage { get; internal init; } + public string? MinorVersionBumpMessage { get; set; } [JsonPropertyName("patch-version-bump-message")] [JsonPropertyDescription($"The regular expression to match commit messages with to perform a patch version increment. Defaults to '{RegexPatterns.VersionCalculation.DefaultPatchRegexPattern}'")] [JsonPropertyDefault(RegexPatterns.VersionCalculation.DefaultPatchRegexPattern)] [JsonPropertyFormat(Format.Regex)] - public string? PatchVersionBumpMessage { get; internal init; } + public string? PatchVersionBumpMessage { get; set; } [JsonPropertyName("no-bump-message")] [JsonPropertyDescription($"Used to tell GitVersion not to increment when in Mainline development mode. Defaults to '{RegexPatterns.VersionCalculation.DefaultNoBumpRegexPattern}'")] [JsonPropertyDefault(RegexPatterns.VersionCalculation.DefaultNoBumpRegexPattern)] [JsonPropertyFormat(Format.Regex)] - public string? NoBumpMessage { get; internal init; } + public string? NoBumpMessage { get; set; } [JsonPropertyName("tag-pre-release-weight")] [JsonPropertyDescription($"The pre-release weight in case of tagged commits. Defaults to {StringDefaultTagPreReleaseWeight}.")] - public int? TagPreReleaseWeight { get; internal init; } + public int? TagPreReleaseWeight { get; set; } [JsonPropertyName("commit-date-format")] [JsonPropertyDescription($"The format to use when calculating the commit date. Defaults to '{DefaultCommitDateFormat}'. See [Standard Date and Time Format Strings](https://learn.microsoft.com/en-us/dotnet/standard/base-types/standard-date-and-time-format-strings) and [Custom Date and Time Format Strings](https://learn.microsoft.com/en-us/dotnet/standard/base-types/standard-date-and-time-format-strings).")] [JsonPropertyDefault(DefaultCommitDateFormat)] [System.Diagnostics.CodeAnalysis.StringSyntax("DateTimeFormat")] - public string? CommitDateFormat { get; internal init; } + public string? CommitDateFormat { get; set; } [JsonPropertyName("merge-message-formats")] [JsonPropertyDescription("Custom merge message formats to enable identification of merge messages that do not follow the built-in conventions.")] - public Dictionary<string, string> MergeMessageFormats { get; internal init; } = []; + public Dictionary<string, string> MergeMessageFormats { get; set; } = []; [JsonIgnore] IReadOnlyDictionary<string, string> IGitVersionConfiguration.MergeMessageFormats => MergeMessageFormats; @@ -103,12 +102,12 @@ public string? NextVersion [JsonPropertyName("update-build-number")] [JsonPropertyDescription($"Whether to update the build number in the project file. Defaults to {StringDefaultUpdateBuildNumber}.")] [JsonPropertyDefault(DefaultUpdateBuildNumber)] - public bool UpdateBuildNumber { get; internal init; } = DefaultUpdateBuildNumber; + public bool UpdateBuildNumber { get; set; } = DefaultUpdateBuildNumber; [JsonPropertyName("semantic-version-format")] [JsonPropertyDescription($"Specifies the semantic version format that is used when parsing the string. Can be 'Strict' or 'Loose'. Defaults to '{StringDefaultSemanticVersionFormat}'.")] [JsonPropertyDefault(DefaultSemanticVersionFormat)] - public SemanticVersionFormat SemanticVersionFormat { get; internal init; } + public SemanticVersionFormat SemanticVersionFormat { get; set; } [JsonIgnore] VersionStrategies IGitVersionConfiguration.VersionStrategy => VersionStrategies.Length == 0 @@ -116,7 +115,7 @@ public string? NextVersion [JsonPropertyName("strategies")] [JsonPropertyDescription($"Specifies which version strategies (one or more) will be used to determine the next version. Following values are available: '{nameof(VersionCalculation.VersionStrategies.ConfiguredNextVersion)}', '{nameof(VersionCalculation.VersionStrategies.MergeMessage)}', '{nameof(VersionCalculation.VersionStrategies.TaggedCommit)}', '{nameof(VersionCalculation.VersionStrategies.TrackReleaseBranches)}', '{nameof(VersionCalculation.VersionStrategies.VersionInBranchName)}' and '{nameof(VersionCalculation.VersionStrategies.Mainline)}'.")] - public VersionStrategies[] VersionStrategies { get; internal init; } = []; + public VersionStrategies[] VersionStrategies { get; set; } = []; [JsonIgnore] IReadOnlyDictionary<string, IBranchConfiguration> IGitVersionConfiguration.Branches @@ -124,14 +123,14 @@ IReadOnlyDictionary<string, IBranchConfiguration> IGitVersionConfiguration.Branc [JsonPropertyName("branches")] [JsonPropertyDescription("The header for all the individual branch configuration.")] - public Dictionary<string, BranchConfiguration> Branches { get; internal init; } = []; + public Dictionary<string, BranchConfiguration> Branches { get; set; } = []; [JsonIgnore] IIgnoreConfiguration IGitVersionConfiguration.Ignore => Ignore; [JsonPropertyName("ignore")] [JsonPropertyDescription("The header property for the ignore configuration.")] - public IgnoreConfiguration Ignore { get; internal init; } = new(); + public IgnoreConfiguration Ignore { get; set; } = new(); public override IBranchConfiguration Inherit(IBranchConfiguration configuration) => throw new NotSupportedException(); diff --git a/src/GitVersion.Configuration/GitVersionConfigurationModule.cs b/src/GitVersion.Configuration/GitVersionConfigurationModule.cs index 684b0a8b78..c2b9b44134 100644 --- a/src/GitVersion.Configuration/GitVersionConfigurationModule.cs +++ b/src/GitVersion.Configuration/GitVersionConfigurationModule.cs @@ -1,5 +1,4 @@ using GitVersion.VersionCalculation.Caching; -using Microsoft.Extensions.DependencyInjection; namespace GitVersion.Configuration; diff --git a/src/GitVersion.Configuration/IgnoreConfiguration.cs b/src/GitVersion.Configuration/IgnoreConfiguration.cs index 4ea9d6d86e..a145a22ad6 100644 --- a/src/GitVersion.Configuration/IgnoreConfiguration.cs +++ b/src/GitVersion.Configuration/IgnoreConfiguration.cs @@ -1,4 +1,4 @@ -using System.Collections.ObjectModel; +using System.Globalization; using GitVersion.Configuration.Attributes; namespace GitVersion.Configuration; @@ -6,7 +6,7 @@ namespace GitVersion.Configuration; internal record IgnoreConfiguration : IIgnoreConfiguration { [JsonIgnore] - public DateTimeOffset? Before { get; init; } + public DateTimeOffset? Before { get; set; } [JsonPropertyName("commits-before")] [JsonPropertyDescription("Commits before this date will be ignored. Format: yyyy-MM-ddTHH:mm:ss.")] @@ -14,7 +14,7 @@ internal record IgnoreConfiguration : IIgnoreConfiguration public string? BeforeString { get => Before?.ToString("yyyy-MM-ddTHH:mm:ssZ"); - init => Before = value is null ? null : DateTimeOffset.Parse(value); + set => Before = value is null ? null : DateTimeOffset.Parse(value, CultureInfo.InvariantCulture); } [JsonIgnore] @@ -22,13 +22,13 @@ public string? BeforeString [JsonPropertyName("sha")] [JsonPropertyDescription("A sequence of SHAs to be excluded from the version calculations.")] - public HashSet<string> Shas { get; init; } = []; + public HashSet<string> Shas { get; set; } = []; - IReadOnlyCollection<string> IIgnoreConfiguration.Paths => Paths; + IReadOnlySet<string> IIgnoreConfiguration.Paths => Paths; [JsonPropertyName("paths")] [JsonPropertyDescription("A sequence of file paths to be excluded from the version calculations.")] - public Collection<string> Paths { get; init; } = []; + public HashSet<string> Paths { get; set; } = []; [JsonIgnore] public bool IsEmpty => Before == null && Shas.Count == 0 && Paths.Count == 0; diff --git a/src/GitVersion.Configuration/PreventIncrementConfiguration.cs b/src/GitVersion.Configuration/PreventIncrementConfiguration.cs index 757647293b..37661d9762 100644 --- a/src/GitVersion.Configuration/PreventIncrementConfiguration.cs +++ b/src/GitVersion.Configuration/PreventIncrementConfiguration.cs @@ -6,13 +6,13 @@ internal class PreventIncrementConfiguration : IPreventIncrementConfiguration { [JsonPropertyName("of-merged-branch")] [JsonPropertyDescription("Prevent increment when branch merged.")] - public bool? OfMergedBranch { get; internal init; } + public bool? OfMergedBranch { get; set; } [JsonPropertyName("when-branch-merged")] [JsonPropertyDescription("Prevent increment when branch merged.")] - public bool? WhenBranchMerged { get; internal init; } + public bool? WhenBranchMerged { get; set; } [JsonPropertyName("when-current-commit-tagged")] [JsonPropertyDescription("This branch related property controls the behavior whether to use the tagged (value set to true) or the incremented (value set to false) semantic version. Defaults to true.")] - public bool? WhenCurrentCommitTagged { get; internal init; } + public bool? WhenCurrentCommitTagged { get; set; } } diff --git a/src/GitVersion.Configuration/VersionStrategiesConverter.cs b/src/GitVersion.Configuration/VersionStrategiesConverter.cs index 9f82f82c70..0f80eb1631 100644 --- a/src/GitVersion.Configuration/VersionStrategiesConverter.cs +++ b/src/GitVersion.Configuration/VersionStrategiesConverter.cs @@ -1,54 +1,103 @@ using GitVersion.VersionCalculation; -using YamlDotNet.Core; -using YamlDotNet.Core.Events; -using YamlDotNet.Serialization; -using YamlDotNet.Serialization.NamingConventions; +using SharpYaml; +using SharpYaml.Serialization; namespace GitVersion.Configuration; -internal class VersionStrategiesConverter : IYamlTypeConverter +internal sealed class VersionStrategiesConverter : YamlConverter<VersionStrategies[]> { - public static readonly IYamlTypeConverter Instance = new VersionStrategiesConverter(); + public static YamlConverter Instance { get; } = new VersionStrategiesConverter(); - public bool Accepts(Type type) => type == typeof(VersionStrategies[]); + private static readonly IReadOnlyDictionary<string, VersionStrategies> NormalizedStrategies = + Enum.GetValues<VersionStrategies>() + .ToDictionary(value => Normalize(value.ToString()), value => value, StringComparer.Ordinal); - public object ReadYaml(IParser parser, Type type, ObjectDeserializer rootDeserializer) + public override VersionStrategies[] Read(YamlReader reader) { List<VersionStrategies> strategies = []; - if (parser.TryConsume<SequenceStart>(out _)) + if (reader.TokenType == YamlTokenType.StartSequence) { - while (!parser.TryConsume<SequenceEnd>(out _)) + reader.Read(); + while (reader.TokenType != YamlTokenType.EndSequence) { - var data = parser.Consume<Scalar>().Value; + if (reader.TokenType != YamlTokenType.Scalar) + { + throw new YamlException(reader.SourceName, reader.Start, reader.End, "Expected a scalar value while reading version strategies."); + } - var strategy = Enum.Parse<VersionStrategies>(data); - strategies.Add(strategy); + strategies.Add(ParseStrategy(reader.GetScalarValue())); + reader.Read(); } + + reader.Read(); + return [.. strategies]; + } + + if (reader.TokenType != YamlTokenType.Scalar) + { + throw new YamlException(reader.SourceName, reader.Start, reader.End, "Expected a scalar or sequence while reading version strategies."); + } + + var scalar = reader.GetScalarValue(); + reader.Read(); + + foreach (var item in SplitScalarList(scalar)) + { + strategies.Add(ParseStrategy(item)); + } + + return [.. strategies]; + } + + public override void Write(YamlWriter writer, VersionStrategies[]? value) + { + if (value is null) + { + writer.WriteNullValue(); + return; } - else + + writer.WriteStartSequence(); + foreach (var strategy in value) { - var data = parser.Consume<Scalar>().Value; + writer.WriteString(strategy.ToString()); + } + writer.WriteEndSequence(); + } - var deserializer = new DeserializerBuilder() - .WithNamingConvention(UnderscoredNamingConvention.Instance) - .Build(); + private static IEnumerable<string> SplitScalarList(string scalar) + { + var trimmed = scalar.Trim(); + if (trimmed.Length == 0) yield break; - strategies = deserializer.Deserialize<List<VersionStrategies>>(data); + if (trimmed.StartsWith('[') && trimmed.EndsWith(']')) + { + trimmed = trimmed[1..^1]; } - return strategies.ToArray(); + foreach (var item in trimmed.Split(',', StringSplitOptions.TrimEntries | StringSplitOptions.RemoveEmptyEntries)) + { + yield return item; + } } - public void WriteYaml(IEmitter emitter, object? value, Type type, ObjectSerializer serializer) + private static VersionStrategies ParseStrategy(string value) { - var strategies = (VersionStrategies[])value!; + if (Enum.TryParse<VersionStrategies>(value, ignoreCase: false, out var exactMatch)) + { + return exactMatch; + } - var s = new SerializerBuilder() - .JsonCompatible() - .Build(); - var data = s.Serialize(strategies); + var normalizedValue = Normalize(value); + if (NormalizedStrategies.TryGetValue(normalizedValue, out var normalizedMatch)) + { + return normalizedMatch; + } - emitter.Emit(new Scalar(data)); + throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown version strategy value."); } + + private static string Normalize(string value) + => new(value.Where(char.IsLetterOrDigit).Select(char.ToUpperInvariant).ToArray()); } diff --git a/src/GitVersion.Core.Tests/CommitDateTests.cs b/src/GitVersion.Core.Tests/CommitDateTests.cs index 2b0d94ebd6..709a2d2686 100644 --- a/src/GitVersion.Core.Tests/CommitDateTests.cs +++ b/src/GitVersion.Core.Tests/CommitDateTests.cs @@ -1,7 +1,6 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; -namespace GitVersion.Core.Tests; +namespace GitVersion.Tests; [TestFixture] public class CommitDateTests : TestBase @@ -15,13 +14,15 @@ public void CommitDateFormatTest(string format, string expectedOutcome) { var date = new DateTime(2017, 10, 6); var semanticVersionBuildMetaData = new SemanticVersionBuildMetaData( + new SemanticVersion(1, 2, 2), "950d2f830f5a2af12a6779a48d20dcbb02351f25", 0, MainBranch, "3139d4eeb044f46057693473eacc2655b3b27e7d", "3139d4eeb", new DateTimeOffset(date, TimeSpan.Zero), - 0); + 0, + VersionField.None); var semanticVersion = new SemanticVersion { BuildMetaData = semanticVersionBuildMetaData // assume time zone is UTC diff --git a/src/GitVersion.Core.Tests/Core/DynamicRepositoryTests.cs b/src/GitVersion.Core.Tests/Core/DynamicRepositoryTests.cs index 03eb85b522..11f2947dfa 100644 --- a/src/GitVersion.Core.Tests/Core/DynamicRepositoryTests.cs +++ b/src/GitVersion.Core.Tests/Core/DynamicRepositoryTests.cs @@ -1,10 +1,7 @@ using System.IO.Abstractions; -using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Options; -namespace GitVersion.Core.Tests; +namespace GitVersion.Tests; [TestFixture] public class DynamicRepositoryTests : TestBase diff --git a/src/GitVersion.Core.Tests/Core/GitVersionExecutorTests.cs b/src/GitVersion.Core.Tests/Core/GitVersionExecutorTests.cs index b36c7ce0e7..02fe1cf961 100644 --- a/src/GitVersion.Core.Tests/Core/GitVersionExecutorTests.cs +++ b/src/GitVersion.Core.Tests/Core/GitVersionExecutorTests.cs @@ -1,26 +1,58 @@ using System.IO.Abstractions; using GitVersion.Agents; using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using GitVersion.Extensions; using GitVersion.Git; using GitVersion.Helpers; using GitVersion.Logging; +using GitVersion.Testing.Extensions; using GitVersion.VersionCalculation.Caching; using LibGit2Sharp; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Options; -namespace GitVersion.Core.Tests; +namespace GitVersion.Tests; [TestFixture] [Parallelizable(ParallelScope.None)] public class GitVersionExecutorTests : TestBase { - private IFileSystem fileSystem; - private ILog log; - private GitVersionCacheProvider gitVersionCacheProvider; - private IServiceProvider sp; + private IFileSystem fileSystem = null!; + private ILog log = null!; + private GitVersionCacheProvider gitVersionCacheProvider = null!; + private IServiceProvider sp = null!; + + private const string versionCacheFileContent = + """ + { + "AssemblySemFileVer": "4.10.3.0", + "AssemblySemVer": "4.10.3.0", + "BranchName": "feature/test", + "BuildMetaData": null, + "CommitDate": "2015-11-10T00:00:00.000Z", + "CommitsSinceVersionSource": 19, + "EscapedBranchName": "feature-test", + "FullBuildMetaData": "Branch.feature/test.Sha.dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f", + "FullSemVer": "4.10.3-test.19", + "InformationalVersion": "4.10.3-test.19+Branch.feature/test.Sha.dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f", + "Major": 4, + "MajorMinorPatch": "4.10.3", + "Minor": 10, + "Patch": 3, + "PreReleaseLabel": "test", + "PreReleaseLabelWithDash": "-test", + "PreReleaseNumber": 19, + "PreReleaseTag": "test.19", + "PreReleaseTagWithDash": "-test.19", + "SemVer": "4.10.3-test.19", + "Sha": "dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f", + "ShortSha": "dd2a29af", + "UncommittedChanges": 0, + "VersionSourceDistance": 19, + "VersionSourceIncrement": "Patch", + "VersionSourceSemVer": "4.10.2", + "VersionSourceSha": "4.10.2", + "WeightedPreReleaseNumber": 19 + } + """; [Test] public void CacheKeySameAfterReNormalizing() @@ -36,18 +68,27 @@ public void CacheKeySameAfterReNormalizing() this.sp = GetServiceProvider(gitVersionOptions, environment: environment); - sp.DiscoverRepository(); + this.sp.DiscoverRepository(); var preparer = this.sp.GetRequiredService<IGitPreparer>(); + var repositoryInfo = this.sp.GetRequiredService<IGitRepositoryInfo>(); + var dynamicRepositoryPath = repositoryInfo.DynamicGitRepositoryPath; - preparer.Prepare(); - var cacheKeyFactory = this.sp.GetRequiredService<IGitVersionCacheKeyFactory>(); - var cacheKey1 = cacheKeyFactory.Create(null); - preparer.Prepare(); + try + { + preparer.Prepare(); + var cacheKeyFactory = this.sp.GetRequiredService<IGitVersionCacheKeyFactory>(); + var cacheKey1 = cacheKeyFactory.Create(null); + preparer.Prepare(); - var cacheKey2 = cacheKeyFactory.Create(null); + var cacheKey2 = cacheKeyFactory.Create(null); - cacheKey2.Value.ShouldBe(cacheKey1.Value); + cacheKey2.Value.ShouldBe(cacheKey1.Value); + } + finally + { + CleanUpDynamicRepository(dynamicRepositoryPath); + } } [Test] @@ -67,9 +108,11 @@ public void GitPreparerShouldNotFailWhenTargetPathNotInitialized() [Test] public void CacheKeyForWorktree() { + this.fileSystem = new FileSystem(); using var fixture = new EmptyRepositoryFixture(); fixture.Repository.MakeACommit(); var worktreePath = GetWorktreePath(fixture); + string? dynamicRepositoryPath = null; try { // create a branch and a new worktree for it @@ -82,53 +125,27 @@ public void CacheKeyForWorktree() this.sp = GetServiceProvider(gitVersionOptions); - sp.DiscoverRepository(); + this.sp.DiscoverRepository(); var preparer = this.sp.GetRequiredService<IGitPreparer>(); + var repositoryInfo = this.sp.GetRequiredService<IGitRepositoryInfo>(); preparer.Prepare(); + + dynamicRepositoryPath = repositoryInfo.DynamicGitRepositoryPath; + var cacheKeyFactory = this.sp.GetRequiredService<IGitVersionCacheKeyFactory>(); var cacheKey = cacheKeyFactory.Create(null); cacheKey.Value.ShouldNotBeEmpty(); } finally { - FileSystemHelper.Directory.DeleteDirectory(worktreePath); + CleanUpDynamicRepository(dynamicRepositoryPath); } } [Test] public void CacheFileExistsOnDisk() { - const string versionCacheFileContent = """ - { - "Major": 4, - "Minor": 10, - "Patch": 3, - "PreReleaseTag": "test.19", - "PreReleaseTagWithDash": "-test.19", - "PreReleaseLabel": "test", - "PreReleaseLabelWithDash": "-test", - "PreReleaseNumber": 19, - "WeightedPreReleaseNumber": 19, - "BuildMetaData": null, - "FullBuildMetaData": "Branch.feature/test.Sha.dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f", - "MajorMinorPatch": "4.10.3", - "SemVer": "4.10.3-test.19", - "AssemblySemVer": "4.10.3.0", - "AssemblySemFileVer": "4.10.3.0", - "FullSemVer": "4.10.3-test.19", - "InformationalVersion": "4.10.3-test.19+Branch.feature/test.Sha.dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f", - "BranchName": "feature/test", - "EscapedBranchName": "feature-test", - "Sha": "dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f", - "ShortSha": "dd2a29af", - "VersionSourceSha": "4.10.2", - "CommitsSinceVersionSource": 19, - "CommitDate": "2015-11-10T00:00:00.000Z", - "UncommittedChanges": 0 - } - """; - var stringBuilder = new StringBuilder(); var logAppender = new TestLogAppender(Action); @@ -163,34 +180,6 @@ public void CacheFileExistsOnDisk() [Test] public void CacheFileExistsOnDiskWhenOverrideConfigIsSpecifiedVersionShouldBeDynamicallyCalculatedWithoutSavingInCache() { - const string versionCacheFileContent = """ - { - "Major": 4, - "Minor": 10, - "Patch": 3, - "PreReleaseTag": "test.19", - "PreReleaseTagWithDash": "-test.19", - "PreReleaseLabel": "test", - "PreReleaseLabelWithDash": "-test", - "PreReleaseNumber": 19, - "BuildMetaData": null, - "FullBuildMetaData": "Branch.feature/test.Sha.dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f", - "MajorMinorPatch": "4.10.3", - "SemVer": "4.10.3-test.19", - "AssemblySemVer": "4.10.3.0", - "AssemblySemFileVer": "4.10.3.0", - "FullSemVer": "4.10.3-test.19", - "InformationalVersion": "4.10.3-test.19+Branch.feature/test.Sha.dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f", - "BranchName": "feature/test", - "EscapedBranchName": "feature-test", - "Sha": "dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f", - "ShortSha": "dd2a29af", - "CommitsSinceVersionSource": 19, - "CommitDate": "2015-11-10T00:00:00.000Z", - "UncommittedChanges": 0 - } - """; - using var fixture = new EmptyRepositoryFixture(); fixture.Repository.MakeACommit(); @@ -253,36 +242,6 @@ public void CacheFileIsMissing() [TestCase(ConfigurationFileLocator.DefaultAlternativeFileNameDotted)] public void ConfigChangeInvalidatesCache(string configFileName) { - const string versionCacheFileContent = """ - { - "Major": 4, - "Minor": 10, - "Patch": 3, - "PreReleaseTag": "test.19", - "PreReleaseTagWithDash": "-test.19", - "PreReleaseLabel": "test", - "PreReleaseLabelWithDash": "-test", - "PreReleaseNumber": 19, - "WeightedPreReleaseNumber": 19, - "BuildMetaData": null, - "FullBuildMetaData": "Branch.feature/test.Sha.dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f", - "MajorMinorPatch": "4.10.3", - "SemVer": "4.10.3-test.19", - "AssemblySemVer": "4.10.3.0", - "AssemblySemFileVer": "4.10.3.0", - "FullSemVer": "4.10.3-test.19", - "InformationalVersion": "4.10.3-test.19+Branch.feature/test.Sha.dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f", - "BranchName": "feature/test", - "EscapedBranchName": "feature-test", - "Sha": "dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f", - "ShortSha": "dd2a29af", - "VersionSourceSha": "4.10.2", - "CommitsSinceVersionSource": 19, - "CommitDate": "2015-11-10T00:00:00.000Z", - "UncommittedChanges": 0 - } - """; - using var fixture = new EmptyRepositoryFixture(); var gitVersionOptions = new GitVersionOptions { WorkingDirectory = fixture.RepositoryPath }; @@ -315,36 +274,6 @@ public void ConfigChangeInvalidatesCache(string configFileName) [Test] public void NoCacheBypassesCache() { - const string versionCacheFileContent = """ - { - "Major": 4, - "Minor": 10, - "Patch": 3, - "PreReleaseTag": "test.19", - "PreReleaseTagWithDash": "-test.19", - "PreReleaseLabel": "test", - "PreReleaseLabelWithDash": "-test", - "PreReleaseNumber": 19, - "WeightedPreReleaseNumber": 19, - "BuildMetaData": null, - "FullBuildMetaData": "Branch.feature/test.Sha.dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f", - "MajorMinorPatch": "4.10.3", - "SemVer": "4.10.3-test.19", - "AssemblySemVer": "4.10.3.0", - "AssemblySemFileVer": "4.10.3.0", - "FullSemVer": "4.10.3-test.19", - "InformationalVersion": "4.10.3-test.19+Branch.feature/test.Sha.dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f", - "BranchName": "feature/test", - "EscapedBranchName": "feature-test", - "Sha": "dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f", - "ShortSha": "dd2a29af", - "VersionSourceSha": "4.10.2", - "CommitsSinceVersionSource": 19, - "CommitDate": "2015-11-10T00:00:00.000Z", - "UncommittedChanges": 0 - } - """; - using var fixture = new EmptyRepositoryFixture(); var gitVersionOptions = new GitVersionOptions { WorkingDirectory = fixture.RepositoryPath }; @@ -486,7 +415,7 @@ public void CalculateVersionFromWorktreeHead() // Setup this.fileSystem = new FileSystem(); using var fixture = new EmptyRepositoryFixture(); - var repoDir = fileSystem.DirectoryInfo.New(fixture.RepositoryPath); + var repoDir = this.fileSystem.DirectoryInfo.New(fixture.RepositoryPath); var worktreePath = FileSystemHelper.Path.Combine(repoDir.Parent?.FullName, $"{repoDir.Name}-v1"); fixture.Repository.MakeATaggedCommit("v1.0.0"); @@ -506,6 +435,7 @@ public void CalculateVersionFromWorktreeHead() // Verify version.SemVer.ShouldBe("1.0.0"); + version.VersionSourceSemVer.ShouldBe("1.0.0"); var commits = worktreeFixture.Repository.Head.Commits; version.Sha.ShouldBe(commits.First().Sha); } @@ -530,9 +460,9 @@ public void CalculateVersionVariables_TwoBranchHasSameCommitHeadDetachedAndNotTa this.sp = GetServiceProvider(gitVersionOptions, environment: environment); - sp.DiscoverRepository(); + this.sp.DiscoverRepository(); - var sut = sp.GetRequiredService<IGitVersionCalculateTool>(); + var sut = this.sp.GetRequiredService<IGitVersionCalculateTool>(); // Execute & Verify var exception = Assert.Throws<WarningException>(() => sut.CalculateVersionVariables()); @@ -560,15 +490,16 @@ public void CalculateVersionVariables_TwoBranchHasSameCommitHeadDetachedAndTagge this.sp = GetServiceProvider(gitVersionOptions, environment: environment); - sp.DiscoverRepository(); + this.sp.DiscoverRepository(); - var sut = sp.GetRequiredService<IGitVersionCalculateTool>(); + var sut = this.sp.GetRequiredService<IGitVersionCalculateTool>(); // Execute var version = sut.CalculateVersionVariables(); // Verify version.SemVer.ShouldBe("1.0.1"); + version.VersionSourceSemVer.ShouldBe("1.0.1"); var commits = worktreeFixture.Repository.Head.Commits; version.Sha.ShouldBe(commits.First().Sha); } @@ -588,9 +519,9 @@ public void CalculateVersionVariables_ShallowFetch_ThrowException() this.sp = GetServiceProvider(gitVersionOptions, environment: environment); - sp.DiscoverRepository(); + this.sp.DiscoverRepository(); - var sut = sp.GetRequiredService<IGitVersionCalculateTool>(); + var sut = this.sp.GetRequiredService<IGitVersionCalculateTool>(); // Execute & Verify var exception = Assert.Throws<WarningException>(() => sut.CalculateVersionVariables()); @@ -616,9 +547,9 @@ public void CalculateVersionVariables_ShallowFetch_WithAllowShallow_ShouldNotThr this.sp = GetServiceProvider(gitVersionOptions, environment: environment); - sp.DiscoverRepository(); + this.sp.DiscoverRepository(); - var sut = sp.GetRequiredService<IGitVersionCalculateTool>(); + var sut = this.sp.GetRequiredService<IGitVersionCalculateTool>(); // Execute var version = sut.CalculateVersionVariables(); @@ -652,8 +583,8 @@ public void CalculateVersionVariables_WithLimitedCloneDepth_AndAllowShallowTrue_ environment.SetEnvironmentVariable(AzurePipelines.EnvironmentVariableName, "true"); this.sp = GetServiceProvider(gitVersionOptions, environment: environment); - sp.DiscoverRepository(); - var sut = sp.GetRequiredService<IGitVersionCalculateTool>(); + this.sp.DiscoverRepository(); + var sut = this.sp.GetRequiredService<IGitVersionCalculateTool>(); // Execute var version = sut.CalculateVersionVariables(); @@ -664,6 +595,7 @@ public void CalculateVersionVariables_WithLimitedCloneDepth_AndAllowShallowTrue_ // Verify that the correct commit is used version.Sha.ShouldBe(latestCommit.Sha); version.MajorMinorPatch.ShouldBe("2.0.0"); + version.VersionSourceSemVer.ShouldBe("1.0.0"); // Verify repository is still recognized as shallow var repository = this.sp.GetRequiredService<IGitRepository>(); @@ -676,6 +608,14 @@ private string GetWorktreePath(EmptyRepositoryFixture fixture) return worktreePath; } + private static void CleanUpDynamicRepository(string? dynamicRepositoryPath) + { + if (!OperatingSystem.IsWindows() && dynamicRepositoryPath != null && FileSystemHelper.Directory.Exists(dynamicRepositoryPath)) + { + FileSystemHelper.Directory.DeleteDirectory(dynamicRepositoryPath); + } + } + private IGitVersionCalculateTool GetGitVersionCalculator(GitVersionOptions gitVersionOptions, ILog? logger = null, IGitRepository? repository = null, IFileSystem? fs = null) { this.sp = GetServiceProvider(gitVersionOptions, logger, repository, fs); @@ -684,7 +624,7 @@ private IGitVersionCalculateTool GetGitVersionCalculator(GitVersionOptions gitVe this.log = this.sp.GetRequiredService<ILog>(); this.gitVersionCacheProvider = (GitVersionCacheProvider)this.sp.GetRequiredService<IGitVersionCacheProvider>(); - sp.DiscoverRepository(); + this.sp.DiscoverRepository(); return this.sp.GetRequiredService<IGitVersionCalculateTool>(); } diff --git a/src/GitVersion.Core.Tests/Core/GitVersionToolDirectoryTests.cs b/src/GitVersion.Core.Tests/Core/GitVersionToolDirectoryTests.cs index 9f2d17b57d..2c5f1fd616 100644 --- a/src/GitVersion.Core.Tests/Core/GitVersionToolDirectoryTests.cs +++ b/src/GitVersion.Core.Tests/Core/GitVersionToolDirectoryTests.cs @@ -1,18 +1,15 @@ using System.IO.Abstractions; -using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; using LibGit2Sharp; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Options; -namespace GitVersion.Core.Tests; +namespace GitVersion.Tests; [TestFixture] public class GitVersionTaskDirectoryTests : TestBase { - private string gitDirectory; - private string workDirectory; - private IFileSystem fileSystem; + private string gitDirectory = null!; + private string workDirectory = null!; + private IFileSystem fileSystem = null!; [SetUp] public void SetUp() @@ -32,7 +29,7 @@ public void FindsGitDirectory() { var exception = Assert.Catch(() => { - var options = Options.Create(new GitVersionOptions { WorkingDirectory = workDirectory, Settings = { NoFetch = true } }); + var options = Options.Create(new GitVersionOptions { WorkingDirectory = this.workDirectory, Settings = { NoFetch = true } }); var sp = ConfigureServices(services => services.AddSingleton(options)); diff --git a/src/GitVersion.Core.Tests/Core/RegexPatternTests.cs b/src/GitVersion.Core.Tests/Core/RegexPatternTests.cs index d56739de7f..214a623b4a 100644 --- a/src/GitVersion.Core.Tests/Core/RegexPatternTests.cs +++ b/src/GitVersion.Core.Tests/Core/RegexPatternTests.cs @@ -1,439 +1,438 @@ using System.Text.RegularExpressions; -using static GitVersion.Core.RegexPatterns.AssemblyVersion; +using static GitVersion.RegexPatterns.AssemblyVersion; -namespace GitVersion.Core.Continuous.Tests +namespace GitVersion.Tests; + +public class RegexPatternsTests { - public class RegexPatternsTests + [TestCase("/foo:", true, "/foo:")] + [TestCase("/bar:", true, "/bar:")] + [TestCase("foo:", false, null)] + public void SwitchArgumentRegex_MatchesExpected(string input, bool expected, string? expectedCapture) { - [TestCase("/foo:", true, "/foo:")] - [TestCase("/bar:", true, "/bar:")] - [TestCase("foo:", false, null)] - public void SwitchArgumentRegex_MatchesExpected(string input, bool expected, string? expectedCapture) - { - var match = RegexPatterns.Common.SwitchArgumentRegex().Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + var match = RegexPatterns.SwitchArgumentRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("https://user:pass@host", true, "https://user:pass@")] - [TestCase("http://user:pass@host", true, "http://user:pass@")] - [TestCase("ftp://user:pass@host", false, null)] - public void ObscurePasswordRegex_MatchesExpected(string input, bool expected, string? expectedCapture) - { - var match = RegexPatterns.Common.ObscurePasswordRegex().Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + [TestCase("https://user:pass@host", true, "https://user:pass@")] + [TestCase("http://user:pass@host", true, "http://user:pass@")] + [TestCase("ftp://user:pass@host", false, null)] + public void ObscurePasswordRegex_MatchesExpected(string input, bool expected, string? expectedCapture) + { + var match = RegexPatterns.ObscurePasswordRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("{env:FOO}", true, "{env:FOO}")] - [TestCase("{bar}", true, "{bar}")] - [TestCase("{env:FOO ?? \"fallback\"}", true, "{env:FOO ?? \"fallback\"}")] - [TestCase("{bar ?? fallback}", true, "{bar ?? fallback}")] - [TestCase("env:FOO", false, null)] - public void ExpandTokensRegex_MatchesExpected(string input, bool expected, string? expectedCapture) - { - var match = RegexPatterns.Common.ExpandTokensRegex().Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + [TestCase("{env:FOO}", true, "{env:FOO}")] + [TestCase("{bar}", true, "{bar}")] + [TestCase("{env:FOO ?? \"fallback\"}", true, "{env:FOO ?? \"fallback\"}")] + [TestCase("{bar ?? fallback}", true, "{bar ?? fallback}")] + [TestCase("env:FOO", false, null)] + public void ExpandTokensRegex_MatchesExpected(string input, bool expected, string? expectedCapture) + { + var match = RegexPatterns.ExpandTokensRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("v", true, "v")] - [TestCase("V", true, "V")] - [TestCase("v1", true, "v")] - [TestCase("V2.0", true, "V")] - [TestCase("1", true, "")] - [TestCase("x", true, "")] - [TestCase("", true, "")] - public void DefaultTagPrefixRegex_MatchesExpected(string input, bool expected, string expectedCapture) - { - var match = RegexPatterns.Configuration.DefaultTagPrefixRegex().Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + [TestCase("v", true, "v")] + [TestCase("V", true, "V")] + [TestCase("v1", true, "v")] + [TestCase("V2.0", true, "V")] + [TestCase("1", true, "")] + [TestCase("x", true, "")] + [TestCase("", true, "")] + public void DefaultTagPrefixRegex_MatchesExpected(string input, bool expected, string expectedCapture) + { + var match = RegexPatterns.Configuration.DefaultTagPrefixRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("v1.2.3", true, "v1.2.3")] - [TestCase("1.2", true, "1.2")] - [TestCase("main", false, null)] - public void DefaultVersionInBranchRegex_MatchesExpected(string input, bool expected, string? expectedCapture) - { - var match = RegexPatterns.Configuration.DefaultVersionInBranchRegex().Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + [TestCase("v1.2.3", true, "v1.2.3")] + [TestCase("1.2", true, "1.2")] + [TestCase("main", false, null)] + public void DefaultVersionInBranchRegex_MatchesExpected(string input, bool expected, string? expectedCapture) + { + var match = RegexPatterns.Configuration.DefaultVersionInBranchRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("main", true, "main")] - [TestCase("master", true, "master")] - [TestCase("develop", false, null)] - public void MainBranchRegex_MatchesExpected(string input, bool expected, string? expectedCapture) - { - var match = RegexPatterns.Configuration.MainBranchRegex().Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + [TestCase("main", true, "main")] + [TestCase("master", true, "master")] + [TestCase("develop", false, null)] + public void MainBranchRegex_MatchesExpected(string input, bool expected, string? expectedCapture) + { + var match = RegexPatterns.Configuration.MainBranchRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("develop", true, "develop")] - [TestCase("development", true, "development")] - [TestCase("dev", true, "dev")] - [TestCase("main", false, null)] - public void DevelopBranchRegex_MatchesExpected(string input, bool expected, string? expectedCapture) - { - var match = RegexPatterns.Configuration.DevelopBranchRegex().Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + [TestCase("develop", true, "develop")] + [TestCase("development", true, "development")] + [TestCase("dev", true, "dev")] + [TestCase("main", false, null)] + public void DevelopBranchRegex_MatchesExpected(string input, bool expected, string? expectedCapture) + { + var match = RegexPatterns.Configuration.DevelopBranchRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("release/1.0", true, "release/1.0")] - [TestCase("releases-2.0", true, "releases-2.0")] - [TestCase("feature/foo", false, null)] - public void ReleaseBranchRegex_MatchesExpected(string input, bool expected, string? expectedCapture) - { - var match = RegexPatterns.Configuration.ReleaseBranchRegex().Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + [TestCase("release/1.0", true, "release/1.0")] + [TestCase("releases-2.0", true, "releases-2.0")] + [TestCase("feature/foo", false, null)] + public void ReleaseBranchRegex_MatchesExpected(string input, bool expected, string? expectedCapture) + { + var match = RegexPatterns.Configuration.ReleaseBranchRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("feature/foo", true, "feature/foo")] - [TestCase("features-bar", true, "features-bar")] - [TestCase("hotfix/1.0", false, null)] - public void FeatureBranchRegex_MatchesExpected(string input, bool expected, string? expectedCapture) - { - var match = RegexPatterns.Configuration.FeatureBranchRegex().Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + [TestCase("feature/foo", true, "feature/foo")] + [TestCase("features-bar", true, "features-bar")] + [TestCase("hotfix/1.0", false, null)] + public void FeatureBranchRegex_MatchesExpected(string input, bool expected, string? expectedCapture) + { + var match = RegexPatterns.Configuration.FeatureBranchRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("pull-requests/123", true, "pull-requests/123")] - [TestCase("pull-123", true, "pull-123")] - [TestCase("pr-456", true, "pr-456")] - [TestCase("main", false, null)] - public void PullRequestBranchRegex_MatchesExpected(string input, bool expected, string? expectedCapture) - { - var match = RegexPatterns.Configuration.PullRequestBranchRegex().Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + [TestCase("pull-requests/123", true, "pull-requests/123")] + [TestCase("pull-123", true, "pull-123")] + [TestCase("pr-456", true, "pr-456")] + [TestCase("main", false, null)] + public void PullRequestBranchRegex_MatchesExpected(string input, bool expected, string? expectedCapture) + { + var match = RegexPatterns.Configuration.PullRequestBranchRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("hotfix/1.0", true, "hotfix/1.0")] - [TestCase("hotfixes-2.0", true, "hotfixes-2.0")] - [TestCase("support/1.0", false, null)] - public void HotfixBranchRegex_MatchesExpected(string input, bool expected, string? expectedCapture) - { - var match = RegexPatterns.Configuration.HotfixBranchRegex().Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + [TestCase("hotfix/1.0", true, "hotfix/1.0")] + [TestCase("hotfixes-2.0", true, "hotfixes-2.0")] + [TestCase("support/1.0", false, null)] + public void HotfixBranchRegex_MatchesExpected(string input, bool expected, string? expectedCapture) + { + var match = RegexPatterns.Configuration.HotfixBranchRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("support/1.0", true, "support/1.0")] - [TestCase("support-2.0", true, "support-2.0")] - [TestCase("main", false, null)] - public void SupportBranchRegex_MatchesExpected(string input, bool expected, string? expectedCapture) - { - var match = RegexPatterns.Configuration.SupportBranchRegex().Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + [TestCase("support/1.0", true, "support/1.0")] + [TestCase("support-2.0", true, "support-2.0")] + [TestCase("main", false, null)] + public void SupportBranchRegex_MatchesExpected(string input, bool expected, string? expectedCapture) + { + var match = RegexPatterns.Configuration.SupportBranchRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("any-branch", true, "any-branch")] - [TestCase("main", true, "main")] - public void UnknownBranchRegex_MatchesExpected(string input, bool expected, string? expectedCapture) - { - var match = RegexPatterns.Configuration.UnknownBranchRegex().Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + [TestCase("any-branch", true, "any-branch")] + [TestCase("main", true, "main")] + public void UnknownBranchRegex_MatchesExpected(string input, bool expected, string? expectedCapture) + { + var match = RegexPatterns.Configuration.UnknownBranchRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("Merge branch 'feature/foo' into develop", true, "Merge branch 'feature/foo' into develop")] - [TestCase("Merge tag 'v1.0.0'", true, "Merge tag 'v1.0.0'")] - [TestCase("Finish feature/foo", false, null)] - public void DefaultMergeMessageRegex_MatchesExpected(string input, bool expected, string? expectedCapture) - { - var match = RegexPatterns.MergeMessage.DefaultMergeMessageRegex().Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + [TestCase("Merge branch 'feature/foo' into develop", true, "Merge branch 'feature/foo' into develop")] + [TestCase("Merge tag 'v1.0.0'", true, "Merge tag 'v1.0.0'")] + [TestCase("Finish feature/foo", false, null)] + public void DefaultMergeMessageRegex_MatchesExpected(string input, bool expected, string? expectedCapture) + { + var match = RegexPatterns.MergeMessage.DefaultMergeMessageRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("Finish feature/foo into develop", true, "Finish feature/foo into develop")] - [TestCase("Finish bugfix/bar", true, "Finish bugfix/bar")] - [TestCase("Merge branch 'feature/foo'", false, null)] - public void SmartGitMergeMessageRegex_MatchesExpected(string input, bool expected, string? expectedCapture) - { - var match = RegexPatterns.MergeMessage.SmartGitMergeMessageRegex().Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + [TestCase("Finish feature/foo into develop", true, "Finish feature/foo into develop")] + [TestCase("Finish bugfix/bar", true, "Finish bugfix/bar")] + [TestCase("Merge branch 'feature/foo'", false, null)] + public void SmartGitMergeMessageRegex_MatchesExpected(string input, bool expected, string? expectedCapture) + { + var match = RegexPatterns.MergeMessage.SmartGitMergeMessageRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("Merge pull request #123 from repo from feature/foo to develop", true, "Merge pull request #123 from repo from feature/foo to develop")] - [TestCase("Merge pull request #1 in repo from bugfix/bar to main", true, "Merge pull request #1 in repo from bugfix/bar to main")] - [TestCase("Finish feature/foo", false, null)] - public void BitBucketPullMergeMessageRegex_MatchesExpected(string input, bool expected, string? expectedCapture) - { - var match = RegexPatterns.MergeMessage.BitBucketPullMergeMessageRegex().Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + [TestCase("Merge pull request #123 from repo from feature/foo to develop", true, "Merge pull request #123 from repo from feature/foo to develop")] + [TestCase("Merge pull request #1 in repo from bugfix/bar to main", true, "Merge pull request #1 in repo from bugfix/bar to main")] + [TestCase("Finish feature/foo", false, null)] + public void BitBucketPullMergeMessageRegex_MatchesExpected(string input, bool expected, string? expectedCapture) + { + var match = RegexPatterns.MergeMessage.BitBucketPullMergeMessageRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("Pull request #123\n\nMerge in repo from feature/foo to develop", true, "Pull request #123\n\nMerge in repo from feature/foo to develop")] - [TestCase("Pull request #1\n\nMerge in repo from bugfix/bar to main", true, "Pull request #1\n\nMerge in repo from bugfix/bar to main")] - [TestCase("Merge pull request #123 from repo from feature/foo to develop", false, null)] - public void BitBucketPullv7MergeMessageRegex_MatchesExpected(string input, bool expected, string? expectedCapture) - { - var match = RegexPatterns.MergeMessage.BitBucketPullv7MergeMessageRegex().Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + [TestCase("Pull request #123\n\nMerge in repo from feature/foo to develop", true, "Pull request #123\n\nMerge in repo from feature/foo to develop")] + [TestCase("Pull request #1\n\nMerge in repo from bugfix/bar to main", true, "Pull request #1\n\nMerge in repo from bugfix/bar to main")] + [TestCase("Merge pull request #123 from repo from feature/foo to develop", false, null)] + public void BitBucketPullv7MergeMessageRegex_MatchesExpected(string input, bool expected, string? expectedCapture) + { + var match = RegexPatterns.MergeMessage.BitBucketPullv7MergeMessageRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("Merged in feature/foo (pull request #123)", true, "Merged in feature/foo (pull request #123)")] - [TestCase("Merged in bugfix/bar (pull request #1)", true, "Merged in bugfix/bar (pull request #1)")] - [TestCase("Merge pull request #123 from repo from feature/foo to develop", false, null)] - public void BitBucketCloudPullMergeMessageRegex_MatchesExpected(string input, bool expected, string? expectedCapture) - { - var match = RegexPatterns.MergeMessage.BitBucketCloudPullMergeMessageRegex().Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + [TestCase("Merged in feature/foo (pull request #123)", true, "Merged in feature/foo (pull request #123)")] + [TestCase("Merged in bugfix/bar (pull request #1)", true, "Merged in bugfix/bar (pull request #1)")] + [TestCase("Merge pull request #123 from repo from feature/foo to develop", false, null)] + public void BitBucketCloudPullMergeMessageRegex_MatchesExpected(string input, bool expected, string? expectedCapture) + { + var match = RegexPatterns.MergeMessage.BitBucketCloudPullMergeMessageRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("Merge pull request #123 from repo/feature/foo", false, null)] - [TestCase("Merge pull request #123 from feature/foo into develop", false, null)] - public void AzureDevOpsPullMergeMessageRegex_MatchesExpected(string input, bool expected, string? expectedCapture) - { - var match = RegexPatterns.MergeMessage.AzureDevOpsPullMergeMessageRegex().Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + [TestCase("Merge pull request #123 from repo/feature/foo", false, null)] + [TestCase("Merge pull request #123 from feature/foo into develop", false, null)] + public void AzureDevOpsPullMergeMessageRegex_MatchesExpected(string input, bool expected, string? expectedCapture) + { + var match = RegexPatterns.MergeMessage.AzureDevOpsPullMergeMessageRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("[assembly: AssemblyVersion(\"1.0.0.0\")]", true, "[assembly: AssemblyVersion(\"1.0.0.0\")]")] - [TestCase("[assembly: AssemblyFileVersion(\"1.0.0.0\")]", true, "[assembly: AssemblyFileVersion(\"1.0.0.0\")]")] - [TestCase("[assembly: AssemblyInformationalVersion(\"1.0.0.0\")]", true, "[assembly: AssemblyInformationalVersion(\"1.0.0.0\")]")] - [TestCase("random text", false, null)] - public void CsharpAssemblyAttributeRegex_MatchesExpected(string input, bool expected, string? expectedCapture) - { - var match = RegexPatterns.Output.CsharpAssemblyAttributeRegex().Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + [TestCase("[assembly: AssemblyVersion(\"1.0.0.0\")]", true, "[assembly: AssemblyVersion(\"1.0.0.0\")]")] + [TestCase("[assembly: AssemblyFileVersion(\"1.0.0.0\")]", true, "[assembly: AssemblyFileVersion(\"1.0.0.0\")]")] + [TestCase("[assembly: AssemblyInformationalVersion(\"1.0.0.0\")]", true, "[assembly: AssemblyInformationalVersion(\"1.0.0.0\")]")] + [TestCase("random text", false, null)] + public void CsharpAssemblyAttributeRegex_MatchesExpected(string input, bool expected, string? expectedCapture) + { + var match = RegexPatterns.Output.CsharpAssemblyAttributeRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("[<assembly: AssemblyVersion(\"1.0.0.0\")>]", true, "[<assembly: AssemblyVersion(\"1.0.0.0\")>]")] - [TestCase("[<assembly: AssemblyFileVersion(\"1.0.0.0\")>]", true, "[<assembly: AssemblyFileVersion(\"1.0.0.0\")>]")] - [TestCase("[<assembly: AssemblyInformationalVersion(\"1.0.0.0\")>]", true, "[<assembly: AssemblyInformationalVersion(\"1.0.0.0\")>]")] - [TestCase("random text", false, null)] - public void FsharpAssemblyAttributeRegex_MatchesExpected(string input, bool expected, string? expectedCapture) - { - var match = RegexPatterns.Output.FsharpAssemblyAttributeRegex().Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + [TestCase("[<assembly: AssemblyVersion(\"1.0.0.0\")>]", true, "[<assembly: AssemblyVersion(\"1.0.0.0\")>]")] + [TestCase("[<assembly: AssemblyFileVersion(\"1.0.0.0\")>]", true, "[<assembly: AssemblyFileVersion(\"1.0.0.0\")>]")] + [TestCase("[<assembly: AssemblyInformationalVersion(\"1.0.0.0\")>]", true, "[<assembly: AssemblyInformationalVersion(\"1.0.0.0\")>]")] + [TestCase("random text", false, null)] + public void FsharpAssemblyAttributeRegex_MatchesExpected(string input, bool expected, string? expectedCapture) + { + var match = RegexPatterns.Output.FsharpAssemblyAttributeRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("<Assembly: AssemblyVersion(\"1.0.0.0\")>", true, "<Assembly: AssemblyVersion(\"1.0.0.0\")>")] - [TestCase("<Assembly: AssemblyFileVersion(\"1.0.0.0\")>", true, "<Assembly: AssemblyFileVersion(\"1.0.0.0\")>")] - [TestCase("<Assembly: AssemblyInformationalVersion(\"1.0.0.0\")>", true, "<Assembly: AssemblyInformationalVersion(\"1.0.0.0\")>")] - [TestCase("random text", false, null)] - public void VisualBasicAssemblyAttributeRegex_MatchesExpected(string input, bool expected, string? expectedCapture) - { - var match = RegexPatterns.Output.VisualBasicAssemblyAttributeRegex().Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + [TestCase("<Assembly: AssemblyVersion(\"1.0.0.0\")>", true, "<Assembly: AssemblyVersion(\"1.0.0.0\")>")] + [TestCase("<Assembly: AssemblyFileVersion(\"1.0.0.0\")>", true, "<Assembly: AssemblyFileVersion(\"1.0.0.0\")>")] + [TestCase("<Assembly: AssemblyInformationalVersion(\"1.0.0.0\")>", true, "<Assembly: AssemblyInformationalVersion(\"1.0.0.0\")>")] + [TestCase("random text", false, null)] + public void VisualBasicAssemblyAttributeRegex_MatchesExpected(string input, bool expected, string? expectedCapture) + { + var match = RegexPatterns.Output.VisualBasicAssemblyAttributeRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("+semver: major", true, "+semver: major")] - [TestCase("+semver: breaking", true, "+semver: breaking")] - [TestCase("+semver: minor", false, null)] - public void DefaultMajorRegex_MatchesExpected(string input, bool expected, string? expectedCapture) - { - var match = RegexPatterns.VersionCalculation.DefaultMajorRegex().Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + [TestCase("+semver: major", true, "+semver: major")] + [TestCase("+semver: breaking", true, "+semver: breaking")] + [TestCase("+semver: minor", false, null)] + public void DefaultMajorRegex_MatchesExpected(string input, bool expected, string? expectedCapture) + { + var match = RegexPatterns.VersionCalculation.DefaultMajorRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("+semver: minor", true, "+semver: minor")] - [TestCase("+semver: feature", true, "+semver: feature")] - [TestCase("+semver: patch", false, null)] - public void DefaultMinorRegex_MatchesExpected(string input, bool expected, string? expectedCapture) - { - var match = RegexPatterns.VersionCalculation.DefaultMinorRegex().Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + [TestCase("+semver: minor", true, "+semver: minor")] + [TestCase("+semver: feature", true, "+semver: feature")] + [TestCase("+semver: patch", false, null)] + public void DefaultMinorRegex_MatchesExpected(string input, bool expected, string? expectedCapture) + { + var match = RegexPatterns.VersionCalculation.DefaultMinorRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("+semver: patch", true, "+semver: patch")] - [TestCase("+semver: fix", true, "+semver: fix")] - [TestCase("+semver: none", false, null)] - public void DefaultPatchRegex_MatchesExpected(string input, bool expected, string? expectedCapture) - { - var match = RegexPatterns.VersionCalculation.DefaultPatchRegex().Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + [TestCase("+semver: patch", true, "+semver: patch")] + [TestCase("+semver: fix", true, "+semver: fix")] + [TestCase("+semver: none", false, null)] + public void DefaultPatchRegex_MatchesExpected(string input, bool expected, string? expectedCapture) + { + var match = RegexPatterns.VersionCalculation.DefaultPatchRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("+semver: none", true, "+semver: none")] - [TestCase("+semver: skip", true, "+semver: skip")] - [TestCase("+semver: patch", false, null)] - public void DefaultNoBumpRegex_MatchesExpected(string input, bool expected, string? expectedCapture) - { - var match = RegexPatterns.VersionCalculation.DefaultNoBumpRegex().Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + [TestCase("+semver: none", true, "+semver: none")] + [TestCase("+semver: skip", true, "+semver: skip")] + [TestCase("+semver: patch", false, null)] + public void DefaultNoBumpRegex_MatchesExpected(string input, bool expected, string? expectedCapture) + { + var match = RegexPatterns.VersionCalculation.DefaultNoBumpRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("1.2.3", true, "1.2.3")] - [TestCase("1.2.3-alpha", true, "1.2.3-alpha")] - [TestCase("1.2", false, null)] - public void ParseStrictRegex_MatchesExpected(string input, bool expected, string? expectedCapture) - { - var match = RegexPatterns.SemanticVersion.ParseStrictRegex().Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + [TestCase("1.2.3", true, "1.2.3")] + [TestCase("1.2.3-alpha", true, "1.2.3-alpha")] + [TestCase("1.2", false, null)] + public void ParseStrictRegex_MatchesExpected(string input, bool expected, string? expectedCapture) + { + var match = RegexPatterns.SemanticVersion.ParseStrictRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("1.2.3", true, "1.2.3")] - [TestCase("1.2", true, "1.2")] - [TestCase("1", true, "1")] - [TestCase("1.2.3.4", true, "1.2.3.4")] - public void ParseLooseRegex_MatchesExpected(string input, bool expected, string expectedCapture) - { - var match = RegexPatterns.SemanticVersion.ParseLooseRegex().Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + [TestCase("1.2.3", true, "1.2.3")] + [TestCase("1.2", true, "1.2")] + [TestCase("1", true, "1")] + [TestCase("1.2.3.4", true, "1.2.3.4")] + public void ParseLooseRegex_MatchesExpected(string input, bool expected, string expectedCapture) + { + var match = RegexPatterns.SemanticVersion.ParseLooseRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("123.BranchName.foo.Sha.abc", true, "123.BranchName.foo.Sha.abc")] - [TestCase("Branch.Name.develop", true, "Branch.Name.develop")] - [TestCase("random", true, "random")] - public void ParseBuildMetaDataRegex_MatchesExpected(string input, bool expected, string expectedCapture) - { - var match = RegexPatterns.SemanticVersion.ParseBuildMetaDataRegex().Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + [TestCase("123.BranchName.foo.Sha.abc", true, "123.BranchName.foo.Sha.abc")] + [TestCase("Branch.Name.develop", true, "Branch.Name.develop")] + [TestCase("random", true, "random")] + public void ParseBuildMetaDataRegex_MatchesExpected(string input, bool expected, string expectedCapture) + { + var match = RegexPatterns.SemanticVersion.ParseBuildMetaDataRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("meta-data", false, new string[0])] - [TestCase("meta_data", true, new[] { "_" })] - [TestCase("meta.data", false, new string[0])] - [TestCase("meta+data$", true, new[] { "+", "$" })] - [TestCase("m@e#t!a", true, new[] { "@", "#", "!" })] - public void FormatBuildMetaDataRegex_CapturesInvalidCharacters(string input, bool shouldMatch, string[] expectedCaptures) - { - var matches = RegexPatterns.SemanticVersion.FormatBuildMetaDataRegex().Matches(input); + [TestCase("meta-data", false, new string[0])] + [TestCase("meta_data", true, new[] { "_" })] + [TestCase("meta.data", false, new string[0])] + [TestCase("meta+data$", true, new[] { "+", "$" })] + [TestCase("m@e#t!a", true, new[] { "@", "#", "!" })] + public void FormatBuildMetaDataRegex_CapturesInvalidCharacters(string input, bool shouldMatch, string[] expectedCaptures) + { + var matches = RegexPatterns.SemanticVersion.FormatBuildMetaDataRegex.Matches(input); - var matched = matches.Count > 0; - matched.ShouldBe(shouldMatch, $"Expected match: {shouldMatch}, but found {matches.Count} matches."); + var matched = matches.Count > 0; + matched.ShouldBe(shouldMatch, $"Expected match: {shouldMatch}, but found {matches.Count} matches."); - var captured = new List<string>(); - foreach (Match m in matches) - captured.Add(m.Value); + var captured = new List<string>(); + foreach (Match m in matches) + captured.Add(m.Value); - captured.ShouldBe(expectedCaptures); - } + captured.ShouldBe(expectedCaptures); + } - [TestCase("alpha.1", true, "alpha.1")] - [TestCase("beta", true, "beta")] - [TestCase("rc.2", true, "rc.2")] - public void ParsePreReleaseTagRegex_MatchesExpected(string input, bool expected, string expectedCapture) - { - var match = RegexPatterns.SemanticVersion.ParsePreReleaseTagRegex().Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + [TestCase("alpha.1", true, "alpha.1")] + [TestCase("beta", true, "beta")] + [TestCase("rc.2", true, "rc.2")] + public void ParsePreReleaseTagRegex_MatchesExpected(string input, bool expected, string expectedCapture) + { + var match = RegexPatterns.SemanticVersion.ParsePreReleaseTagRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("/* block comment */", true, "block", " block comment ")] - [TestCase("// line comment\r\n", true, "line", " line comment")] - [TestCase("\"string \\\"text\\\" inside\"", true, "str", "string \\\"text\\\" inside")] - [TestCase("int x = 5;", false, "", "")] - public void CSharpTriviaRegex_CapturesExpected(string input, bool expectedMatch, string expectedGroup, string expectedGroupValue) - { - var regex = CSharp.TriviaRegex(); - var match = regex.Match(input); - match.Success.ShouldBe(expectedMatch); + [TestCase("/* block comment */", true, "block", " block comment ")] + [TestCase("// line comment\r\n", true, "line", " line comment")] + [TestCase("\"string \\\"text\\\" inside\"", true, "str", "string \\\"text\\\" inside")] + [TestCase("int x = 5;", false, "", "")] + public void CSharpTriviaRegex_CapturesExpected(string input, bool expectedMatch, string expectedGroup, string expectedGroupValue) + { + var regex = CSharp.TriviaRegex; + var match = regex.Match(input); + match.Success.ShouldBe(expectedMatch); - if (expectedMatch && !string.IsNullOrEmpty(expectedGroup)) + if (expectedMatch && !string.IsNullOrEmpty(expectedGroup)) + { + // Match group 1: block, group 2: line, group 3: string + var groups = match.Groups; + var actualGroupValue = expectedGroup switch { - // Match group 1: block, group 2: line, group 3: string - var groups = match.Groups; - var actualGroupValue = expectedGroup switch - { - "block" => groups[1].Success ? groups[1].Value : "", - "line" => groups[2].Success ? groups[2].Value : "", - "str" => groups[3].Success ? groups[3].Value : "", - _ => "" - }; - actualGroupValue.ShouldBe(expectedGroupValue); - } + "block" => groups[1].Success ? groups[1].Value : "", + "line" => groups[2].Success ? groups[2].Value : "", + "str" => groups[3].Success ? groups[3].Value : "", + _ => "" + }; + actualGroupValue.ShouldBe(expectedGroupValue); } + } - [TestCase("[assembly: AssemblyVersion()]", true)] - [TestCase("[assembly:AssemblyFileVersion()]", true)] - [TestCase("[assembly:System.Reflection.AssemblyInformationalVersion()]", true)] - [TestCase("[assembly: AssemblyTitle(\"App\")]", false)] - public void CSharpAttributeRegex_MatchesExpected(string input, bool expectedMatch) - { - var regex = CSharp.AttributeRegex(); - var match = regex.Match(input); - match.Success.ShouldBe(expectedMatch); - } + [TestCase("[assembly: AssemblyVersion()]", true)] + [TestCase("[assembly:AssemblyFileVersion()]", true)] + [TestCase("[assembly:System.Reflection.AssemblyInformationalVersion()]", true)] + [TestCase("[assembly: AssemblyTitle(\"App\")]", false)] + public void CSharpAttributeRegex_MatchesExpected(string input, bool expectedMatch) + { + var regex = CSharp.AttributeRegex; + var match = regex.Match(input); + match.Success.ShouldBe(expectedMatch); + } - [TestCase("/* block comment */", true, "block", " block comment ")] - [TestCase("// line comment\r\n", true, "line", " line comment")] - [TestCase("\"string \\\"text\\\" inside\"", true, "str", "string \\\"text\\\" inside")] - [TestCase("let x = 1", false, "", "")] - public void FSharpTriviaRegex_CapturesExpected(string input, bool expectedMatch, string expectedGroup, string expectedGroupValue) - { - var regex = FSharp.TriviaRegex(); - var match = regex.Match(input); - match.Success.ShouldBe(expectedMatch); + [TestCase("/* block comment */", true, "block", " block comment ")] + [TestCase("// line comment\r\n", true, "line", " line comment")] + [TestCase("\"string \\\"text\\\" inside\"", true, "str", "string \\\"text\\\" inside")] + [TestCase("let x = 1", false, "", "")] + public void FSharpTriviaRegex_CapturesExpected(string input, bool expectedMatch, string expectedGroup, string expectedGroupValue) + { + var regex = FSharp.TriviaRegex; + var match = regex.Match(input); + match.Success.ShouldBe(expectedMatch); - if (expectedMatch && !string.IsNullOrEmpty(expectedGroup)) + if (expectedMatch && !string.IsNullOrEmpty(expectedGroup)) + { + var groups = match.Groups; + var actualGroupValue = expectedGroup switch { - var groups = match.Groups; - var actualGroupValue = expectedGroup switch - { - "block" => groups[1].Success ? groups[1].Value : "", - "line" => groups[2].Success ? groups[2].Value : "", - "str" => groups[3].Success ? groups[3].Value : "", - _ => "" - }; - actualGroupValue.ShouldBe(expectedGroupValue); - } + "block" => groups[1].Success ? groups[1].Value : "", + "line" => groups[2].Success ? groups[2].Value : "", + "str" => groups[3].Success ? groups[3].Value : "", + _ => "" + }; + actualGroupValue.ShouldBe(expectedGroupValue); } + } - [TestCase("[<assembly: AssemblyVersion()>]", true)] - [TestCase("[<assembly:AssemblyFileVersion()>]", true)] - [TestCase("[<assembly:System.Reflection.AssemblyInformationalVersion()>]", true)] - [TestCase("[<assembly: AssemblyTitle(\"Test\")>]", false)] - [TestCase("[assembly: AssemblyVersion()]", false)] - public void FSharpAttributeRegex_MatchesExpected(string input, bool expectedMatch) - { - var regex = FSharp.AttributeRegex(); - var match = regex.Match(input); - match.Success.ShouldBe(expectedMatch); - } + [TestCase("[<assembly: AssemblyVersion()>]", true)] + [TestCase("[<assembly:AssemblyFileVersion()>]", true)] + [TestCase("[<assembly:System.Reflection.AssemblyInformationalVersion()>]", true)] + [TestCase("[<assembly: AssemblyTitle(\"Test\")>]", false)] + [TestCase("[assembly: AssemblyVersion()]", false)] + public void FSharpAttributeRegex_MatchesExpected(string input, bool expectedMatch) + { + var regex = FSharp.AttributeRegex; + var match = regex.Match(input); + match.Success.ShouldBe(expectedMatch); } } diff --git a/src/GitVersion.Core.Tests/Core/RepositoryExtensionsTests.cs b/src/GitVersion.Core.Tests/Core/RepositoryExtensionsTests.cs index 5e9addaab6..2da5b54a9f 100644 --- a/src/GitVersion.Core.Tests/Core/RepositoryExtensionsTests.cs +++ b/src/GitVersion.Core.Tests/Core/RepositoryExtensionsTests.cs @@ -1,7 +1,6 @@ -using GitVersion.Core.Tests.Helpers; using GitVersion.Git; -namespace GitVersion.Core.Tests; +namespace GitVersion.Tests; [TestFixture] public class RepositoryExtensionsTests : TestBase diff --git a/src/GitVersion.Core.Tests/Core/RepositoryStoreTests.cs b/src/GitVersion.Core.Tests/Core/RepositoryStoreTests.cs index 9e58ad8bcb..17b7461c1d 100644 --- a/src/GitVersion.Core.Tests/Core/RepositoryStoreTests.cs +++ b/src/GitVersion.Core.Tests/Core/RepositoryStoreTests.cs @@ -1,11 +1,8 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.Git; using GitVersion.Logging; -using Microsoft.Extensions.DependencyInjection; -namespace GitVersion.Core.Tests; +namespace GitVersion.Tests; [TestFixture] public class RepositoryStoreTests : TestBase diff --git a/src/GitVersion.Core.Tests/DocumentationTests.cs b/src/GitVersion.Core.Tests/DocumentationTests.cs index 247af1aacd..def7fd4bd3 100644 --- a/src/GitVersion.Core.Tests/DocumentationTests.cs +++ b/src/GitVersion.Core.Tests/DocumentationTests.cs @@ -1,16 +1,15 @@ using System.IO.Abstractions; using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; using GitVersion.OutputVariables; -namespace GitVersion.Core.Tests; +namespace GitVersion.Tests; [TestFixture] public class DocumentationTests : TestBase { - private FileSystem fileSystem; - private IDirectoryInfo docsDirectory; + private FileSystem fileSystem = null!; + private IDirectoryInfo docsDirectory = null!; [OneTimeSetUp] public void OneTimeSetUp() @@ -62,7 +61,7 @@ private string ReadDocumentationFile(string relativeDocumentationFilePath) { var documentationFilePath = FileSystemHelper.Path.Combine(this.docsDirectory.FullName, relativeDocumentationFilePath); // Normalize path separators and such. - documentationFilePath = fileSystem.FileInfo.New(documentationFilePath).FullName; + documentationFilePath = this.fileSystem.FileInfo.New(documentationFilePath).FullName; if (!this.fileSystem.File.Exists(documentationFilePath)) { diff --git a/src/GitVersion.Core.Tests/Extensions/GitRepositoryTestingExtensions.cs b/src/GitVersion.Core.Tests/Extensions/GitRepositoryTestingExtensions.cs index e5d86f1681..2bc7efa5aa 100644 --- a/src/GitVersion.Core.Tests/Extensions/GitRepositoryTestingExtensions.cs +++ b/src/GitVersion.Core.Tests/Extensions/GitRepositoryTestingExtensions.cs @@ -1,16 +1,14 @@ using GitVersion.Agents; using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using GitVersion.Extensions; using GitVersion.Git; using GitVersion.Helpers; using GitVersion.OutputVariables; +using GitVersion.Testing.Extensions; using GitVersion.VersionCalculation; using LibGit2Sharp; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Options; -namespace GitVersion.Core.Tests; +namespace GitVersion.Tests; public static class GitRepositoryTestingExtensions { @@ -54,129 +52,157 @@ public static IBranch CreateMockBranch(string name, params ICommit[] commits) return branch; } - public static void DiscoverRepository(this IServiceProvider sp) + extension(IServiceProvider sp) { - var gitRepository = sp.GetRequiredService<IGitRepository>(); - var gitRepositoryInfo = sp.GetRequiredService<IGitRepositoryInfo>(); - gitRepository.DiscoverRepository(gitRepositoryInfo.GitRootPath); + public void DiscoverRepository() + { + var gitRepository = sp.GetRequiredService<IGitRepository>(); + var gitRepositoryInfo = sp.GetRequiredService<IGitRepositoryInfo>(); + gitRepository.DiscoverRepository(gitRepositoryInfo.GitRootPath); + } } - public static IBranch FindBranch(this IGitRepository repository, string branchName) - => repository.Branches.FirstOrDefault(branch => branch.Name.WithoutOrigin == branchName) - ?? throw new GitVersionException($"Branch {branchName} not found"); + extension(IGitRepository repository) + { + public IBranch FindBranch(string branchName) + => repository.Branches.FirstOrDefault(branch => branch.Name.WithoutOrigin == branchName) + ?? throw new GitVersionException($"Branch {branchName} not found"); - public static void DumpGraph(this IGitRepository repository, Action<string>? writer = null, int? maxCommits = null) - => DumpGraph(repository.Path, writer, maxCommits); + public void DumpGraph(Action<string>? writer = null, int? maxCommits = null) + => DumpGraph(repository.Path, writer, maxCommits); + } - public static void DumpGraph(this IRepository repository, Action<string>? writer = null, int? maxCommits = null) - => DumpGraph(repository.ToGitRepository().Path, writer, maxCommits); + extension(IRepository repository) + { + public void DumpGraph(Action<string>? writer = null, int? maxCommits = null) + => DumpGraph(repository.ToGitRepository().Path, writer, maxCommits); + } - public static void RenameRemote(this RemoteCollection remotes, string oldName, string newName) + extension(RemoteCollection remotes) { - if (oldName.IsEquivalentTo(newName)) return; - if (remotes.Any(remote => remote.Name == newName)) - { - throw new InvalidOperationException($"A remote with the name '{newName}' already exists."); - } - if (!remotes.Any(remote => remote.Name == oldName)) + public void RenameRemote(string oldName, string newName) { - throw new InvalidOperationException($"A remote with the name '{oldName}' does not exist."); + if (oldName.IsEquivalentTo(newName)) return; + if (remotes.Any(remote => remote.Name == newName)) + { + throw new InvalidOperationException($"A remote with the name '{newName}' already exists."); + } + if (remotes.All(remote => remote.Name != oldName)) + { + throw new InvalidOperationException($"A remote with the name '{oldName}' does not exist."); + } + remotes.Add(newName, remotes[oldName].Url); + remotes.Remove(oldName); } - remotes.Add(newName, remotes[oldName].Url); - remotes.Remove(oldName); } - public static GitVersionVariables GetVersion(this RepositoryFixtureBase fixture, IGitVersionConfiguration? configuration = null, - IRepository? repository = null, string? commitId = null, bool onlyTrackedBranches = true, string? targetBranch = null) + extension(RepositoryFixtureBase fixture) { - repository ??= fixture.Repository; - configuration ??= GitFlowConfigurationBuilder.New.Build(); - - var overrideConfiguration = new Dictionary<object, object?>(); - var options = Options.Create(new GitVersionOptions + public GitVersionVariables GetVersion(IGitVersionConfiguration? configuration = null, + IRepository? repository = null, string? commitId = null, bool onlyTrackedBranches = true, string? targetBranch = null) { - WorkingDirectory = repository.Info.WorkingDirectory, - ConfigurationInfo = { OverrideConfiguration = overrideConfiguration }, - RepositoryInfo = - { - TargetBranch = targetBranch, - CommitId = commitId - }, - Settings = { OnlyTrackedBranches = onlyTrackedBranches } - }); + repository ??= fixture.Repository; + configuration ??= GitFlowConfigurationBuilder.New.Build(); - try - { - var configurationProviderMock = Substitute.For<IConfigurationProvider>(); - configurationProviderMock.Provide(overrideConfiguration).Returns(configuration); - var sp = ConfigureServices(services => + var overrideConfiguration = new Dictionary<object, object?>(); + var options = Options.Create(new GitVersionOptions { - services.AddSingleton(options); - services.AddSingleton(configurationProviderMock); + WorkingDirectory = repository.Info.WorkingDirectory, + ConfigurationInfo = { OverrideConfiguration = overrideConfiguration }, + RepositoryInfo = + { + TargetBranch = targetBranch, + CommitId = commitId + }, + Settings = { OnlyTrackedBranches = onlyTrackedBranches } }); - sp.DiscoverRepository(); + try + { + var configurationProviderMock = Substitute.For<IConfigurationProvider>(); + configurationProviderMock.Provide(overrideConfiguration).Returns(configuration); + var sp = ConfigureServices(services => + { + services.AddSingleton(options); + services.AddSingleton(configurationProviderMock); + }); + + sp.DiscoverRepository(); - var variableProvider = sp.GetRequiredService<IVariableProvider>(); - var nextVersionCalculator = sp.GetRequiredService<INextVersionCalculator>(); - var contextOptions = sp.GetRequiredService<Lazy<GitVersionContext>>(); + var variableProvider = sp.GetRequiredService<IVariableProvider>(); + var nextVersionCalculator = sp.GetRequiredService<INextVersionCalculator>(); + var contextOptions = sp.GetRequiredService<Lazy<GitVersionContext>>(); - var context = contextOptions.Value; + var context = contextOptions.Value; - var semanticVersion = nextVersionCalculator.FindVersion(); + var semanticVersion = nextVersionCalculator.FindVersion(); - var effectiveConfiguration = context.Configuration.GetEffectiveConfiguration(context.CurrentBranch.Name); - return variableProvider.GetVariablesFor(semanticVersion, context.Configuration, effectiveConfiguration.PreReleaseWeight); + var effectiveConfiguration = context.Configuration.GetEffectiveConfiguration(context.CurrentBranch.Name); + return variableProvider.GetVariablesFor(semanticVersion, context.Configuration, effectiveConfiguration.PreReleaseWeight); + } + catch (Exception) + { + repository.DumpGraph(); + throw; + } } - catch (Exception) + + public void WriteVersionVariables(string versionFile) { - repository.DumpGraph(); - throw; - } - } + var versionVariables = fixture.GetVersion(); - public static void WriteVersionVariables(this RepositoryFixtureBase fixture, string versionFile) - { - var versionVariables = fixture.GetVersion(); + FileSystemHelper.File.WriteAllText(versionFile, versionVariables.ToJson()); + } - FileSystemHelper.File.WriteAllText(versionFile, versionVariables.ToJson()); - } + public void AssertFullSemver(string fullSemver, + IGitVersionConfiguration? configuration = null, IRepository? repository = null, string? commitId = null, bool onlyTrackedBranches = true, string? targetBranch = null) + { + repository ??= fixture.Repository; - public static void AssertFullSemver(this RepositoryFixtureBase fixture, string fullSemver, - IGitVersionConfiguration? configuration = null, IRepository? repository = null, string? commitId = null, bool onlyTrackedBranches = true, string? targetBranch = null) - { - repository ??= fixture.Repository; + var variables = fixture.GetVersion(configuration, repository, commitId, onlyTrackedBranches, targetBranch); + variables.FullSemVer.ShouldBe(fullSemver); + if (commitId == null) + { + fixture.SequenceDiagram.NoteOver(fullSemver, repository.Head.FriendlyName, color: "#D3D3D3"); + } + } - var variables = GetVersion(fixture, configuration, repository, commitId, onlyTrackedBranches, targetBranch); - variables.FullSemVer.ShouldBe(fullSemver); - if (commitId == null) + public IServiceProvider ConfigureServices(Action<IServiceCollection, RepositoryFixtureBase>? overrideServices = null) { - fixture.SequenceDiagram.NoteOver(fullSemver, repository.Head.FriendlyName, color: "#D3D3D3"); + var services = new ServiceCollection() + .AddModule(new GitVersionCoreTestModule()); + + overrideServices?.Invoke(services, fixture); + + return services.BuildServiceProvider(); } } - /// <summary> - /// Simulates running on build server - /// </summary> - public static void InitializeRepository(this RemoteRepositoryFixture fixture) + extension(RemoteRepositoryFixture fixture) { - var gitVersionOptions = new GitVersionOptions + /// <summary> + /// Simulates running on a build server + /// </summary> + public void InitializeRepository() { - WorkingDirectory = fixture.LocalRepositoryFixture.RepositoryPath - }; - var options = Options.Create(gitVersionOptions); + var gitVersionOptions = new GitVersionOptions + { + WorkingDirectory = fixture.LocalRepositoryFixture.RepositoryPath + }; + var options = Options.Create(gitVersionOptions); - var environment = new TestEnvironment(); - environment.SetEnvironmentVariable(AzurePipelines.EnvironmentVariableName, "true"); + var environment = new TestEnvironment(); + environment.SetEnvironmentVariable(AzurePipelines.EnvironmentVariableName, "true"); - var serviceProvider = ConfigureServices(services => - { - services.AddSingleton(options); - services.AddSingleton(environment); - }); + var serviceProvider = ConfigureServices(services => + { + services.AddSingleton(options); + services.AddSingleton(environment); + }); - var gitPreparer = serviceProvider.GetRequiredService<IGitPreparer>(); - gitPreparer.Prepare(); + var gitPreparer = serviceProvider.GetRequiredService<IGitPreparer>(); + gitPreparer.Prepare(); + } } private static ServiceProvider ConfigureServices(Action<IServiceCollection>? servicesOverrides = null) diff --git a/src/GitVersion.Core.Tests/Extensions/GitVersionVariablesExtensions.cs b/src/GitVersion.Core.Tests/Extensions/GitVersionVariablesExtensions.cs index b47e24d0c8..e33a8df081 100644 --- a/src/GitVersion.Core.Tests/Extensions/GitVersionVariablesExtensions.cs +++ b/src/GitVersion.Core.Tests/Extensions/GitVersionVariablesExtensions.cs @@ -1,16 +1,22 @@ using System.IO.Abstractions; using GitVersion.OutputVariables; -namespace GitVersion.Core.Tests; +namespace GitVersion.Tests; public static class GitVersionVariablesExtensions { - public static string ToJson(this GitVersionVariables gitVersionVariables) + extension(GitVersionVariables gitVersionVariables) { - var serializer = new VersionVariableSerializer(new FileSystem()); - return serializer.ToJson(gitVersionVariables); + public string ToJson() + { + var serializer = new VersionVariableSerializer(new FileSystem()); + return serializer.ToJson(gitVersionVariables); + } } - public static GitVersionVariables ToGitVersionVariables(this string json) - => VersionVariableSerializer.FromJson(json); + extension(string json) + { + public GitVersionVariables ToGitVersionVariables() + => VersionVariableSerializer.FromJson(json); + } } diff --git a/src/GitVersion.Core.Tests/Extensions/MockCollectionExtensions.cs b/src/GitVersion.Core.Tests/Extensions/MockCollectionExtensions.cs index 81c3191326..2e47ae716c 100644 --- a/src/GitVersion.Core.Tests/Extensions/MockCollectionExtensions.cs +++ b/src/GitVersion.Core.Tests/Extensions/MockCollectionExtensions.cs @@ -1,4 +1,4 @@ -namespace GitVersion.Core.Tests; +namespace GitVersion.Tests; public static class MockCollectionExtensions { @@ -10,10 +10,13 @@ private static IEnumerator<T> GetEnumerator<T>(params T[] itemsToReturn) } } - public static void MockCollectionReturn<T>(this IEnumerable<T> items, params T[] itemsToReturn) + extension<T>(IEnumerable<T> items) { - var enumerator = items.GetEnumerator(); - enumerator.Returns(_ => GetEnumerator(itemsToReturn)); - enumerator.Dispose(); + public void MockCollectionReturn(params T[] itemsToReturn) + { + var enumerator = items.GetEnumerator(); + enumerator.Returns(_ => GetEnumerator(itemsToReturn)); + enumerator.Dispose(); + } } } diff --git a/src/GitVersion.Core.Tests/Extensions/ShouldlyExtensions.cs b/src/GitVersion.Core.Tests/Extensions/ShouldlyExtensions.cs index bac7a4346e..9c7a407480 100644 --- a/src/GitVersion.Core.Tests/Extensions/ShouldlyExtensions.cs +++ b/src/GitVersion.Core.Tests/Extensions/ShouldlyExtensions.cs @@ -1,24 +1,27 @@ -namespace GitVersion.Core.Tests.Extensions; +namespace GitVersion.Tests.Extensions; public static class ShouldlyExtensions { - /// <summary> - /// Asserts that the action throws an exception of type TException - /// with the expected message. - /// </summary> - public static void ShouldThrowWithMessage<TException>(this Action action, string expectedMessage) where TException : Exception + extension(Action action) { - var ex = Should.Throw<TException>(action); - ex.Message.ShouldBe(expectedMessage); - } + /// <summary> + /// Asserts that the action throws an exception of type TException + /// with the expected message. + /// </summary> + public void ShouldThrowWithMessage<TException>(string expectedMessage) where TException : Exception + { + var ex = Should.Throw<TException>(action); + ex.Message.ShouldBe(expectedMessage); + } - /// <summary> - /// Asserts that the action throws an exception of type TException, - /// and allows further assertion on the exception instance. - /// </summary> - public static void ShouldThrow<TException>(this Action action, Action<TException> additionalAssertions) where TException : Exception - { - var ex = Should.Throw<TException>(action); - additionalAssertions(ex); + /// <summary> + /// Asserts that the action throws an exception of type TException, + /// and allows further assertion on the exception instance. + /// </summary> + public void ShouldThrow<TException>(Action<TException> additionalAssertions) where TException : Exception + { + var ex = Should.Throw<TException>(action); + additionalAssertions(ex); + } } } diff --git a/src/GitVersion.Core.Tests/Extensions/StringFormatWithExtensionTests.cs b/src/GitVersion.Core.Tests/Extensions/StringFormatWithExtensionTests.cs index 74f8dcbfc7..3e67be55a7 100644 --- a/src/GitVersion.Core.Tests/Extensions/StringFormatWithExtensionTests.cs +++ b/src/GitVersion.Core.Tests/Extensions/StringFormatWithExtensionTests.cs @@ -1,13 +1,12 @@ using System.Globalization; -using GitVersion.Core.Tests.Helpers; using GitVersion.Formatting; -namespace GitVersion.Core.Tests; +namespace GitVersion.Tests; [TestFixture] public class StringFormatWithExtensionTests { - private TestEnvironment environment; + private TestEnvironment environment = null!; [SetUp] public void Setup() => this.environment = new TestEnvironment(); @@ -247,7 +246,7 @@ public void FormatProperty_NullObject_WithFallback_QuotedAndEmpty() } [Test] - public void FormatAssemblyInformationalVersionWithSemanticVersionCustomFormattedCommitsSinceVersionSource() + public void FormatAssemblyInformationalVersionWithSemanticVersionCustomFormattedVersionSourceDistance() { var semanticVersion = new SemanticVersion { @@ -261,13 +260,17 @@ public void FormatAssemblyInformationalVersionWithSemanticVersionCustomFormatted VersionSourceSha = "versionSourceSha", Sha = "commitSha", ShortSha = "commitShortSha", - CommitsSinceVersionSource = 42, + VersionSourceDistance = 42, CommitDate = DateTimeOffset.Parse("2014-03-06 23:59:59Z", CultureInfo.InvariantCulture) } }; - const string target = "{Major}.{Minor}.{Patch}-{CommitsSinceVersionSource:0000}"; const string expected = "1.2.3-0042"; + var target = "{Major}.{Minor}.{Patch}-{VersionSourceDistance:0000}"; var actual = target.FormatWith(semanticVersion, this.environment); Assert.That(actual, Is.EqualTo(expected)); + + target = "{Major}.{Minor}.{Patch}-{CommitsSinceVersionSource:0000}"; + actual = target.FormatWith(semanticVersion, this.environment); + Assert.That(actual, Is.EqualTo(expected)); } } diff --git a/src/GitVersion.Core.Tests/Formatting/EdgeCaseTests.cs b/src/GitVersion.Core.Tests/Formatting/EdgeCaseTests.cs index 5d8e0e49b3..52b2d614bb 100644 --- a/src/GitVersion.Core.Tests/Formatting/EdgeCaseTests.cs +++ b/src/GitVersion.Core.Tests/Formatting/EdgeCaseTests.cs @@ -1,60 +1,57 @@ -using GitVersion.Core.Tests.Extensions; -using GitVersion.Formatting; +using GitVersion.Formatting; +using GitVersion.Tests.Extensions; namespace GitVersion.Tests.Formatting; -public partial class InputSanitizerTests +[TestFixture] +public class EdgeCaseTests { - [TestFixture] - public class EdgeCaseTests : InputSanitizerTests + [TestCase(49)] + [TestCase(50)] + public void SanitizeFormat_WithBoundaryLengths_ReturnsInput(int length) { - [TestCase(49)] - [TestCase(50)] - public void SanitizeFormat_WithBoundaryLengths_ReturnsInput(int length) - { - var input = new string('x', length); - new InputSanitizer().SanitizeFormat(input).ShouldBe(input); - } + var input = new string('x', length); + new InputSanitizer().SanitizeFormat(input).ShouldBe(input); + } - [TestCase(199)] - [TestCase(200)] - public void SanitizeEnvVarName_WithBoundaryLengths_ReturnsInput(int length) - { - var input = new string('A', length); - new InputSanitizer().SanitizeEnvVarName(input).ShouldBe(input); - } + [TestCase(199)] + [TestCase(200)] + public void SanitizeEnvVarName_WithBoundaryLengths_ReturnsInput(int length) + { + var input = new string('A', length); + new InputSanitizer().SanitizeEnvVarName(input).ShouldBe(input); + } - [TestCase(99)] - [TestCase(100)] - public void SanitizeMemberName_WithBoundaryLengths_ReturnsInput(int length) - { - var input = new string('A', length); - new InputSanitizer().SanitizeMemberName(input).ShouldBe(input); - } + [TestCase(99)] + [TestCase(100)] + public void SanitizeMemberName_WithBoundaryLengths_ReturnsInput(int length) + { + var input = new string('A', length); + new InputSanitizer().SanitizeMemberName(input).ShouldBe(input); + } - [Test] - public void SanitizeFormat_WithUnicode_ReturnsInput() - { - const string unicodeFormat = "测试format"; - new InputSanitizer().SanitizeFormat(unicodeFormat).ShouldBe(unicodeFormat); - } + [Test] + public void SanitizeFormat_WithUnicode_ReturnsInput() + { + const string unicodeFormat = "测试format"; + new InputSanitizer().SanitizeFormat(unicodeFormat).ShouldBe(unicodeFormat); + } - [Test] - public void SanitizeEnvVarName_WithUnicode_ThrowsArgumentException() - { - const string unicodeEnvVar = "测试_VAR"; - Action act = () => new InputSanitizer().SanitizeEnvVarName(unicodeEnvVar); - act.ShouldThrowWithMessage<ArgumentException>( - $"Environment variable name contains disallowed characters: '{unicodeEnvVar}'"); - } + [Test] + public void SanitizeEnvVarName_WithUnicode_ThrowsArgumentException() + { + const string unicodeEnvVar = "测试_VAR"; + Action act = () => new InputSanitizer().SanitizeEnvVarName(unicodeEnvVar); + act.ShouldThrowWithMessage<ArgumentException>( + $"Environment variable name contains disallowed characters: '{unicodeEnvVar}'"); + } - [Test] - public void SanitizeMemberName_WithUnicode_ThrowsArgumentException() - { - const string unicodeMember = "测试Member"; - Action act = () => new InputSanitizer().SanitizeMemberName(unicodeMember); - act.ShouldThrowWithMessage<ArgumentException>( - $"Member name contains disallowed characters: '{unicodeMember}'"); - } + [Test] + public void SanitizeMemberName_WithUnicode_ThrowsArgumentException() + { + const string unicodeMember = "测试Member"; + Action act = () => new InputSanitizer().SanitizeMemberName(unicodeMember); + act.ShouldThrowWithMessage<ArgumentException>( + $"Member name contains disallowed characters: '{unicodeMember}'"); } } diff --git a/src/GitVersion.Core.Tests/Formatting/InputSanitizerTests.cs b/src/GitVersion.Core.Tests/Formatting/InputSanitizerTests.cs deleted file mode 100644 index 73bf35dbe6..0000000000 --- a/src/GitVersion.Core.Tests/Formatting/InputSanitizerTests.cs +++ /dev/null @@ -1,82 +0,0 @@ -using GitVersion.Core.Tests.Extensions; -using GitVersion.Formatting; - -namespace GitVersion.Tests.Formatting; - -[TestFixture] -public partial class InputSanitizerTests -{ - [TestFixture] - public class SanitizeFormatTests : InputSanitizerTests - { - [Test] - public void SanitizeFormat_WithValidFormat_ReturnsInput() - { - var sut = new InputSanitizer(); - const string validFormat = "yyyy-MM-dd"; - sut.SanitizeFormat(validFormat).ShouldBe(validFormat); - } - - [TestCase("")] - [TestCase(" ")] - [TestCase("\t")] - public void SanitizeFormat_WithEmptyOrWhitespace_ThrowsFormatException(string invalidFormat) - { - var sut = new InputSanitizer(); - Action act = () => sut.SanitizeFormat(invalidFormat); - act.ShouldThrowWithMessage<FormatException>("Format string cannot be empty."); - } - - [Test] - public void SanitizeFormat_WithTooLongFormat_ThrowsFormatException() - { - var sut = new InputSanitizer(); - var longFormat = new string('x', 51); - Action act = () => sut.SanitizeFormat(longFormat); - act.ShouldThrowWithMessage<FormatException>("Format string too long: 'xxxxxxxxxxxxxxxxxxxx...'"); - } - - [Test] - public void SanitizeFormat_WithMaxValidLength_ReturnsInput() - { - var sut = new InputSanitizer(); - var maxLengthFormat = new string('x', 50); - sut.SanitizeFormat(maxLengthFormat).ShouldBe(maxLengthFormat); - } - - [TestCase("\r", TestName = "SanitizeFormat_ControlChar_CR")] - [TestCase("\n", TestName = "SanitizeFormat_ControlChar_LF")] - [TestCase("\0", TestName = "SanitizeFormat_ControlChar_Null")] - [TestCase("\x01", TestName = "SanitizeFormat_ControlChar_0x01")] - [TestCase("\x1F", TestName = "SanitizeFormat_ControlChar_0x1F")] - public void SanitizeFormat_WithControlCharacters_ThrowsFormatException(string controlChar) - { - var sut = new InputSanitizer(); - var formatWithControl = $"valid{controlChar}format"; - Action act = () => sut.SanitizeFormat(formatWithControl); - act.ShouldThrowWithMessage<FormatException>("Format string contains invalid control characters"); - } - - [Test] - public void SanitizeFormat_WithTabCharacter_ReturnsInput() - { - var sut = new InputSanitizer(); - const string formatWithTab = "format\twith\ttab"; - sut.SanitizeFormat(formatWithTab).ShouldBe(formatWithTab); - } - - [TestCase("yyyy-MM-dd")] - [TestCase("HH:mm:ss")] - [TestCase("0.00")] - [TestCase("C2")] - [TestCase("X8")] - [TestCase("format with spaces")] - [TestCase("format-with-dashes")] - [TestCase("format_with_underscores")] - public void SanitizeFormat_WithValidFormats_ReturnsInput(string validFormat) - { - var sut = new InputSanitizer(); - sut.SanitizeFormat(validFormat).ShouldBe(validFormat); - } - } -} diff --git a/src/GitVersion.Core.Tests/Formatting/NumericFormatterTests.cs b/src/GitVersion.Core.Tests/Formatting/NumericFormatterTests.cs index 9b466ead53..04c2176e74 100644 --- a/src/GitVersion.Core.Tests/Formatting/NumericFormatterTests.cs +++ b/src/GitVersion.Core.Tests/Formatting/NumericFormatterTests.cs @@ -21,6 +21,9 @@ public void TryFormat_NullValue_ReturnsFalse() [TestCase("1234.5678", "f2", "1234.57")] [TestCase("1234.5678", "f0", "1235")] [TestCase("1234.5678", "g", "1234.5678")] + [TestCase("1234", "d8", "00001234")] + [TestCase("1234", "x8", "000004d2")] + [TestCase("12", "b8", "00001100")] public void TryFormat_ValidFormats_ReturnsExpectedResult(string input, string format, string expected) { var sut = new NumericFormatter(); diff --git a/src/GitVersion.Core.Tests/Formatting/SanitizeEnvVarNameTests.cs b/src/GitVersion.Core.Tests/Formatting/SanitizeEnvVarNameTests.cs index 53f77a0a26..e45e872b4e 100644 --- a/src/GitVersion.Core.Tests/Formatting/SanitizeEnvVarNameTests.cs +++ b/src/GitVersion.Core.Tests/Formatting/SanitizeEnvVarNameTests.cs @@ -1,67 +1,67 @@ -using GitVersion.Core.Tests.Extensions; +using System.Diagnostics.CodeAnalysis; using GitVersion.Formatting; +using GitVersion.Tests.Extensions; namespace GitVersion.Tests.Formatting; -public partial class InputSanitizerTests +[SuppressMessage("Style", "IDE0059:Unnecessary assignment of a value")] +[SuppressMessage("Style", "IDE0060:Remove unused parameter")] +[TestFixture] +public class SanitizeEnvVarNameTests { - [TestFixture] - public class SanitizeEnvVarNameTests : InputSanitizerTests + [Test] + public void SanitizeEnvVarName_WithValidName_ReturnsInput() { - [Test] - public void SanitizeEnvVarName_WithValidName_ReturnsInput() - { - var sut = new InputSanitizer(); - const string validName = "VALID_ENV_VAR"; - sut.SanitizeEnvVarName(validName).ShouldBe(validName); - } + var sut = new InputSanitizer(); + const string validName = "VALID_ENV_VAR"; + sut.SanitizeEnvVarName(validName).ShouldBe(validName); + } - [TestCase("")] - [TestCase(" ")] - [TestCase("\t")] - public void SanitizeEnvVarName_WithEmptyOrWhitespace_ThrowsArgumentException(string invalidName) - { - var sut = new InputSanitizer(); - Action act = () => sut.SanitizeEnvVarName(invalidName); - act.ShouldThrowWithMessage<ArgumentException>("Environment variable name cannot be null or empty."); - } + [TestCase("")] + [TestCase(" ")] + [TestCase("\t")] + public void SanitizeEnvVarName_WithEmptyOrWhitespace_ThrowsArgumentException(string invalidName) + { + var sut = new InputSanitizer(); + Action act = () => sut.SanitizeEnvVarName(invalidName); + act.ShouldThrowWithMessage<ArgumentException>("Environment variable name cannot be null or empty."); + } - [Test] - public void SanitizeEnvVarName_WithTooLongName_ThrowsArgumentException() - { - var sut = new InputSanitizer(); - var longName = new string('A', 201); - Action act = () => sut.SanitizeEnvVarName(longName); - act.ShouldThrowWithMessage<ArgumentException>("Environment variable name too long: 'AAAAAAAAAAAAAAAAAAAA...'"); - } + [Test] + public void SanitizeEnvVarName_WithTooLongName_ThrowsArgumentException() + { + var sut = new InputSanitizer(); + var longName = new string('A', 201); + Action act = () => sut.SanitizeEnvVarName(longName); + act.ShouldThrowWithMessage<ArgumentException>("Environment variable name too long: 'AAAAAAAAAAAAAAAAAAAA...'"); + } - [Test] - public void SanitizeEnvVarName_WithMaxValidLength_ReturnsInput() - { - var sut = new InputSanitizer(); - var maxLengthName = new string('A', 200); - sut.SanitizeEnvVarName(maxLengthName).ShouldBe(maxLengthName); - } + [Test] + public void SanitizeEnvVarName_WithMaxValidLength_ReturnsInput() + { + var sut = new InputSanitizer(); + var maxLengthName = new string('A', 200); + sut.SanitizeEnvVarName(maxLengthName).ShouldBe(maxLengthName); + } - [Test] - public void SanitizeEnvVarName_WithInvalidCharacters_ThrowsArgumentException() - { - var sut = new InputSanitizer(); - const string invalidName = "INVALID@NAME"; - Action act = () => sut.SanitizeEnvVarName(invalidName); - act.ShouldThrowWithMessage<ArgumentException>("Environment variable name contains disallowed characters: 'INVALID@NAME'"); - } + [Test] + public void SanitizeEnvVarName_WithInvalidCharacters_ThrowsArgumentException() + { + var sut = new InputSanitizer(); + const string invalidName = "INVALID@NAME"; + Action act = () => sut.SanitizeEnvVarName(invalidName); + act.ShouldThrowWithMessage<ArgumentException>("Environment variable name contains disallowed characters: 'INVALID@NAME'"); + } - [TestCase("PATH")] - [TestCase("HOME")] - [TestCase("USER_NAME")] - [TestCase("MY_VAR_123")] - [TestCase("_PRIVATE_VAR")] - [TestCase("VAR123")] - public void SanitizeEnvVarName_WithValidNames_ReturnsInput(string validName) - { - var sut = new InputSanitizer(); - sut.SanitizeEnvVarName(validName).ShouldBe(validName); - } + [TestCase("PATH")] + [TestCase("HOME")] + [TestCase("USER_NAME")] + [TestCase("MY_VAR_123")] + [TestCase("_PRIVATE_VAR")] + [TestCase("VAR123")] + public void SanitizeEnvVarName_WithValidNames_ReturnsInput(string validName) + { + var sut = new InputSanitizer(); + sut.SanitizeEnvVarName(validName).ShouldBe(validName); } } diff --git a/src/GitVersion.Core.Tests/Formatting/SanitizeFormatTests.cs b/src/GitVersion.Core.Tests/Formatting/SanitizeFormatTests.cs new file mode 100644 index 0000000000..67da937637 --- /dev/null +++ b/src/GitVersion.Core.Tests/Formatting/SanitizeFormatTests.cs @@ -0,0 +1,81 @@ +using System.Diagnostics.CodeAnalysis; +using GitVersion.Formatting; +using GitVersion.Tests.Extensions; + +namespace GitVersion.Tests.Formatting; + +[SuppressMessage("Style", "IDE0059:Unnecessary assignment of a value")] +[SuppressMessage("Style", "IDE0060:Remove unused parameter")] +[TestFixture] +public class SanitizeFormatTests +{ + [Test] + public void SanitizeFormat_WithValidFormat_ReturnsInput() + { + var sut = new InputSanitizer(); + const string validFormat = "yyyy-MM-dd"; + sut.SanitizeFormat(validFormat).ShouldBe(validFormat); + } + + [TestCase("")] + [TestCase(" ")] + [TestCase("\t")] + public void SanitizeFormat_WithEmptyOrWhitespace_ThrowsFormatException(string invalidFormat) + { + var sut = new InputSanitizer(); + Action act = () => sut.SanitizeFormat(invalidFormat); + act.ShouldThrowWithMessage<FormatException>("Format string cannot be empty."); + } + + [Test] + public void SanitizeFormat_WithTooLongFormat_ThrowsFormatException() + { + var sut = new InputSanitizer(); + var longFormat = new string('x', 51); + Action act = () => sut.SanitizeFormat(longFormat); + act.ShouldThrowWithMessage<FormatException>("Format string too long: 'xxxxxxxxxxxxxxxxxxxx...'"); + } + + [Test] + public void SanitizeFormat_WithMaxValidLength_ReturnsInput() + { + var sut = new InputSanitizer(); + var maxLengthFormat = new string('x', 50); + sut.SanitizeFormat(maxLengthFormat).ShouldBe(maxLengthFormat); + } + + [TestCase("\r", TestName = "SanitizeFormat_ControlChar_CR")] + [TestCase("\n", TestName = "SanitizeFormat_ControlChar_LF")] + [TestCase("\0", TestName = "SanitizeFormat_ControlChar_Null")] + [TestCase("\x01", TestName = "SanitizeFormat_ControlChar_0x01")] + [TestCase("\x1F", TestName = "SanitizeFormat_ControlChar_0x1F")] + public void SanitizeFormat_WithControlCharacters_ThrowsFormatException(string controlChar) + { + var sut = new InputSanitizer(); + var formatWithControl = $"valid{controlChar}format"; + Action act = () => sut.SanitizeFormat(formatWithControl); + act.ShouldThrowWithMessage<FormatException>("Format string contains invalid control characters"); + } + + [Test] + public void SanitizeFormat_WithTabCharacter_ReturnsInput() + { + var sut = new InputSanitizer(); + const string formatWithTab = "format\twith\ttab"; + sut.SanitizeFormat(formatWithTab).ShouldBe(formatWithTab); + } + + [TestCase("yyyy-MM-dd")] + [TestCase("HH:mm:ss")] + [TestCase("0.00")] + [TestCase("C2")] + [TestCase("X8")] + [TestCase("format with spaces")] + [TestCase("format-with-dashes")] + [TestCase("format_with_underscores")] + public void SanitizeFormat_WithValidFormats_ReturnsInput(string validFormat) + { + var sut = new InputSanitizer(); + sut.SanitizeFormat(validFormat).ShouldBe(validFormat); + } +} diff --git a/src/GitVersion.Core.Tests/Formatting/SanitizeMemberNameTests.cs b/src/GitVersion.Core.Tests/Formatting/SanitizeMemberNameTests.cs index 7f7aa87c1f..eebe473648 100644 --- a/src/GitVersion.Core.Tests/Formatting/SanitizeMemberNameTests.cs +++ b/src/GitVersion.Core.Tests/Formatting/SanitizeMemberNameTests.cs @@ -1,78 +1,78 @@ -using GitVersion.Core.Tests.Extensions; +using System.Diagnostics.CodeAnalysis; using GitVersion.Formatting; +using GitVersion.Tests.Extensions; namespace GitVersion.Tests.Formatting; -public partial class InputSanitizerTests +[SuppressMessage("Style", "IDE0059:Unnecessary assignment of a value")] +[SuppressMessage("Style", "IDE0060:Remove unused parameter")] +[TestFixture] +public class SanitizeMemberNameTests { - [TestFixture] - public class SanitizeMemberNameTests : InputSanitizerTests + [Test] + public void SanitizeMemberName_WithValidName_ReturnsInput() { - [Test] - public void SanitizeMemberName_WithValidName_ReturnsInput() - { - var sut = new InputSanitizer(); - const string validName = "ValidMemberName"; - sut.SanitizeMemberName(validName).ShouldBe(validName); - } + var sut = new InputSanitizer(); + const string validName = "ValidMemberName"; + sut.SanitizeMemberName(validName).ShouldBe(validName); + } - [TestCase("")] - [TestCase(" ")] - [TestCase("\t")] - public void SanitizeMemberName_WithEmptyOrWhitespace_ThrowsArgumentException(string invalidName) - { - var sut = new InputSanitizer(); - Action act = () => sut.SanitizeMemberName(invalidName); - act.ShouldThrowWithMessage<ArgumentException>("Member name cannot be empty."); - } + [TestCase("")] + [TestCase(" ")] + [TestCase("\t")] + public void SanitizeMemberName_WithEmptyOrWhitespace_ThrowsArgumentException(string invalidName) + { + var sut = new InputSanitizer(); + Action act = () => sut.SanitizeMemberName(invalidName); + act.ShouldThrowWithMessage<ArgumentException>("Member name cannot be empty."); + } - [Test] - public void SanitizeMemberName_WithTooLongName_ThrowsArgumentException() - { - var sut = new InputSanitizer(); - var longName = new string('A', 101); - Action act = () => sut.SanitizeMemberName(longName); - act.ShouldThrowWithMessage<ArgumentException>("Member name too long: 'AAAAAAAAAAAAAAAAAAAA...'"); - } + [Test] + public void SanitizeMemberName_WithTooLongName_ThrowsArgumentException() + { + var sut = new InputSanitizer(); + var longName = new string('A', 101); + Action act = () => sut.SanitizeMemberName(longName); + act.ShouldThrowWithMessage<ArgumentException>("Member name too long: 'AAAAAAAAAAAAAAAAAAAA...'"); + } - [Test] - public void SanitizeMemberName_WithMaxValidLength_ReturnsInput() - { - var sut = new InputSanitizer(); - var maxLengthName = new string('A', 100); - sut.SanitizeMemberName(maxLengthName).ShouldBe(maxLengthName); - } + [Test] + public void SanitizeMemberName_WithMaxValidLength_ReturnsInput() + { + var sut = new InputSanitizer(); + var maxLengthName = new string('A', 100); + sut.SanitizeMemberName(maxLengthName).ShouldBe(maxLengthName); + } - [Test] - public void SanitizeMemberName_WithInvalidCharacters_ThrowsArgumentException() - { - var sut = new InputSanitizer(); - const string invalidName = "Invalid@Member"; - Action act = () => sut.SanitizeMemberName(invalidName); - act.ShouldThrowWithMessage<ArgumentException>("Member name contains disallowed characters: 'Invalid@Member'"); - } + [Test] + public void SanitizeMemberName_WithInvalidCharacters_ThrowsArgumentException() + { + var sut = new InputSanitizer(); + const string invalidName = "Invalid@Member"; + Action act = () => sut.SanitizeMemberName(invalidName); + act.ShouldThrowWithMessage<ArgumentException>("Member name contains disallowed characters: 'Invalid@Member'"); + } - [TestCase("PropertyName")] - [TestCase("FieldName")] - [TestCase("Member123")] - [TestCase("_privateMember")] - [TestCase("CamelCaseName")] - [TestCase("PascalCaseName")] - [TestCase("member_with_underscores")] - public void SanitizeMemberName_WithValidNames_ReturnsInput(string validName) - { - var sut = new InputSanitizer(); - sut.SanitizeMemberName(validName).ShouldBe(validName); - } + [TestCase("PropertyName")] + [TestCase("FieldName")] + [TestCase("Member123")] + [TestCase("_privateMember")] + [TestCase("CamelCaseName")] + [TestCase("PascalCaseName")] + [TestCase("member_with_underscores")] + public void SanitizeMemberName_WithValidNames_ReturnsInput(string validName) + { + var sut = new InputSanitizer(); + sut.SanitizeMemberName(validName).ShouldBe(validName); + } - [TestCase("member.nested")] - [TestCase("Parent.Child.GrandChild")] - public void SanitizeMemberName_WithDottedNames_HandledByRegex(string dottedName) - { - var sut = new InputSanitizer(); - Action act = () => sut.SanitizeMemberName(dottedName); + [TestCase("member.nested")] + [TestCase("Parent.Child.GrandChild")] + public void SanitizeMemberName_WithDottedNames_HandledByRegex(string dottedName) + { + var sut = new InputSanitizer(); + Action act = () => sut.SanitizeMemberName(dottedName); - act.ShouldNotThrow(); - } + act.ShouldNotThrow(); } } diff --git a/src/GitVersion.Core.Tests/GitVersion.Core.Tests.csproj b/src/GitVersion.Core.Tests/GitVersion.Core.Tests.csproj index 446ac51a69..7d0ca0d4df 100644 --- a/src/GitVersion.Core.Tests/GitVersion.Core.Tests.csproj +++ b/src/GitVersion.Core.Tests/GitVersion.Core.Tests.csproj @@ -4,6 +4,7 @@ <DebugType>full</DebugType> <Optimize>false</Optimize> <DebugSymbols>true</DebugSymbols> + <RootNamespace>GitVersion.Tests</RootNamespace> </PropertyGroup> <ItemGroup> diff --git a/src/GitVersion.Core.Tests/GitVersion.Core.Tests.csproj.DotSettings b/src/GitVersion.Core.Tests/GitVersion.Core.Tests.csproj.DotSettings new file mode 100644 index 0000000000..f4f0b9072f --- /dev/null +++ b/src/GitVersion.Core.Tests/GitVersion.Core.Tests.csproj.DotSettings @@ -0,0 +1,3 @@ +<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation"> + <s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=core/@EntryIndexedValue">True</s:Boolean> + <s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=helpers/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary> \ No newline at end of file diff --git a/src/GitVersion.Core.Tests/Helpers/GitVersionContextBuilder.cs b/src/GitVersion.Core.Tests/Helpers/GitVersionContextBuilder.cs index 250d382308..150b91d831 100644 --- a/src/GitVersion.Core.Tests/Helpers/GitVersionContextBuilder.cs +++ b/src/GitVersion.Core.Tests/Helpers/GitVersionContextBuilder.cs @@ -1,10 +1,7 @@ -using GitVersion.Core.Tests.Helpers; using GitVersion.Extensions; using GitVersion.Git; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Options; -namespace GitVersion.Core.Tests; +namespace GitVersion.Tests; public class GitVersionContextBuilder : IDisposable { @@ -58,8 +55,8 @@ public void Build() { var repo = this.repository ?? CreateRepository(); - emptyRepositoryFixture = new(); - var options = Options.Create(new GitVersionOptions { WorkingDirectory = emptyRepositoryFixture.RepositoryPath, ConfigurationInfo = { OverrideConfiguration = this.overrideConfiguration } }); + this.emptyRepositoryFixture = new(); + var options = Options.Create(new GitVersionOptions { WorkingDirectory = this.emptyRepositoryFixture.RepositoryPath, ConfigurationInfo = { OverrideConfiguration = this.overrideConfiguration } }); this.ServicesProvider = ConfigureServices(services => { diff --git a/src/GitVersion.Core.Tests/Helpers/GitVersionCoreTestModule.cs b/src/GitVersion.Core.Tests/Helpers/GitVersionCoreTestModule.cs index e46989145f..757ee5b63d 100644 --- a/src/GitVersion.Core.Tests/Helpers/GitVersionCoreTestModule.cs +++ b/src/GitVersion.Core.Tests/Helpers/GitVersionCoreTestModule.cs @@ -4,9 +4,8 @@ using GitVersion.Extensions; using GitVersion.Logging; using GitVersion.Output; -using Microsoft.Extensions.DependencyInjection; -namespace GitVersion.Core.Tests.Helpers; +namespace GitVersion.Tests; public class GitVersionCoreTestModule : IGitVersionModule { diff --git a/src/GitVersion.Core.Tests/Helpers/ParticipantSanitizerTests.cs b/src/GitVersion.Core.Tests/Helpers/ParticipantSanitizerTests.cs index ad5f854bd3..450e19c08b 100644 --- a/src/GitVersion.Core.Tests/Helpers/ParticipantSanitizerTests.cs +++ b/src/GitVersion.Core.Tests/Helpers/ParticipantSanitizerTests.cs @@ -1,6 +1,6 @@ using GitVersion.Testing.Helpers; -namespace GitVersion.Core.Tests.Helpers; +namespace GitVersion.Tests; [TestFixture] public class ParticipantSanitizerTests diff --git a/src/GitVersion.Core.Tests/Helpers/TestBase.cs b/src/GitVersion.Core.Tests/Helpers/TestBase.cs index cd25bd8a27..9bf765f5ce 100644 --- a/src/GitVersion.Core.Tests/Helpers/TestBase.cs +++ b/src/GitVersion.Core.Tests/Helpers/TestBase.cs @@ -1,9 +1,7 @@ using GitVersion.Extensions; using GitVersion.Git; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Options; -namespace GitVersion.Core.Tests.Helpers; +namespace GitVersion.Tests; public class TestBase { diff --git a/src/GitVersion.Core.Tests/Helpers/TestConsoleAdapter.cs b/src/GitVersion.Core.Tests/Helpers/TestConsoleAdapter.cs index 3ae5935b28..e9ebe1496b 100644 --- a/src/GitVersion.Core.Tests/Helpers/TestConsoleAdapter.cs +++ b/src/GitVersion.Core.Tests/Helpers/TestConsoleAdapter.cs @@ -1,7 +1,7 @@ using GitVersion.Helpers; using GitVersion.Logging; -namespace GitVersion.Core.Tests.Helpers; +namespace GitVersion.Tests; public class TestConsoleAdapter(StringBuilder sb) : IConsole { diff --git a/src/GitVersion.Core.Tests/Helpers/TestEnvironment.cs b/src/GitVersion.Core.Tests/Helpers/TestEnvironment.cs index 99eb6b2090..75762951f9 100644 --- a/src/GitVersion.Core.Tests/Helpers/TestEnvironment.cs +++ b/src/GitVersion.Core.Tests/Helpers/TestEnvironment.cs @@ -1,4 +1,4 @@ -namespace GitVersion.Core.Tests.Helpers; +namespace GitVersion.Tests; public class TestEnvironment : IEnvironment { diff --git a/src/GitVersion.Core.Tests/Helpers/TestLogAppender.cs b/src/GitVersion.Core.Tests/Helpers/TestLogAppender.cs index 5bbd6cae9d..9ad9057845 100644 --- a/src/GitVersion.Core.Tests/Helpers/TestLogAppender.cs +++ b/src/GitVersion.Core.Tests/Helpers/TestLogAppender.cs @@ -1,6 +1,6 @@ using GitVersion.Logging; -namespace GitVersion.Core.Tests.Helpers; +namespace GitVersion.Tests; public class TestLogAppender(Action<string> logAction) : ILogAppender { diff --git a/src/GitVersion.Core.Tests/Helpers/TestableGitVersionVariables.cs b/src/GitVersion.Core.Tests/Helpers/TestableGitVersionVariables.cs index 5670ca86a3..7cdc8641e9 100644 --- a/src/GitVersion.Core.Tests/Helpers/TestableGitVersionVariables.cs +++ b/src/GitVersion.Core.Tests/Helpers/TestableGitVersionVariables.cs @@ -1,29 +1,34 @@ using GitVersion.OutputVariables; -namespace GitVersion.Core.Tests.Helpers; +namespace GitVersion.Tests; -internal record TestableGitVersionVariables() : GitVersionVariables("", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - ""); +internal record TestableGitVersionVariables() : GitVersionVariables( + AssemblySemFileVer: "", + AssemblySemVer: "", + BranchName: "", + BuildMetaData: "", + CommitDate: "", + CommitsSinceVersionSource: "", + EscapedBranchName: "", + FullBuildMetaData: "", + FullSemVer: "", + InformationalVersion: "", + Major: "", + MajorMinorPatch: "", + Minor: "", + Patch: "", + PreReleaseLabel: "", + PreReleaseLabelWithDash: "", + PreReleaseNumber: "", + PreReleaseTag: "", + PreReleaseTagWithDash: "", + SemVer: "", + Sha: "", + ShortSha: "", + UncommittedChanges: "", + VersionSourceDistance: "", + VersionSourceIncrement: "", + VersionSourceSemVer: "", + VersionSourceSha: "", + WeightedPreReleaseNumber: "" +); diff --git a/src/GitVersion.Core.Tests/IntegrationTests/AlignGitFlowWithMainlineVersionStrategy.cs b/src/GitVersion.Core.Tests/IntegrationTests/AlignGitFlowWithMainlineVersionStrategy.cs index 5b7484c6b1..7f44fd0ff0 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/AlignGitFlowWithMainlineVersionStrategy.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/AlignGitFlowWithMainlineVersionStrategy.cs @@ -2,7 +2,7 @@ using GitVersion.VersionCalculation; // ReSharper disable ConvertIfStatementToConditionalTernaryExpression -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; [TestFixture] [Parallelizable(ParallelScope.All)] diff --git a/src/GitVersion.Core.Tests/IntegrationTests/AlignGitHubFlowWithMainlineVersionStrategy.cs b/src/GitVersion.Core.Tests/IntegrationTests/AlignGitHubFlowWithMainlineVersionStrategy.cs index 3a9aae8822..5938d15ba8 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/AlignGitHubFlowWithMainlineVersionStrategy.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/AlignGitHubFlowWithMainlineVersionStrategy.cs @@ -2,7 +2,7 @@ using GitVersion.VersionCalculation; // ReSharper disable ConvertIfStatementToConditionalTernaryExpression -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; [TestFixture] [Parallelizable(ParallelScope.All)] diff --git a/src/GitVersion.Core.Tests/IntegrationTests/BranchWithoutCommitScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/BranchWithoutCommitScenarios.cs index 9735e16114..7bb9ae4283 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/BranchWithoutCommitScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/BranchWithoutCommitScenarios.cs @@ -1,7 +1,7 @@ -using GitVersion.Core.Tests.Helpers; +using GitVersion.Testing.Extensions; using LibGit2Sharp; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; [TestFixture] public class BranchWithoutCommitScenarios : TestBase diff --git a/src/GitVersion.Core.Tests/IntegrationTests/CompareTheDifferentWhenUsingMainlineVersionStrategyWithGitFlow.cs b/src/GitVersion.Core.Tests/IntegrationTests/CompareTheDifferentWhenUsingMainlineVersionStrategyWithGitFlow.cs index ec307dd2b8..973e2e90c9 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/CompareTheDifferentWhenUsingMainlineVersionStrategyWithGitFlow.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/CompareTheDifferentWhenUsingMainlineVersionStrategyWithGitFlow.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; [TestFixture] [Parallelizable(ParallelScope.All)] diff --git a/src/GitVersion.Core.Tests/IntegrationTests/CompareTheDifferentWhenUsingMainlineVersionStrategyWithGitHubFlow.cs b/src/GitVersion.Core.Tests/IntegrationTests/CompareTheDifferentWhenUsingMainlineVersionStrategyWithGitHubFlow.cs index 4a66feb476..c741bc996d 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/CompareTheDifferentWhenUsingMainlineVersionStrategyWithGitHubFlow.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/CompareTheDifferentWhenUsingMainlineVersionStrategyWithGitHubFlow.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; [TestFixture] [Parallelizable(ParallelScope.All)] diff --git a/src/GitVersion.Core.Tests/IntegrationTests/ComparingTheBehaviorOfDifferentVersioningModes.cs b/src/GitVersion.Core.Tests/IntegrationTests/ComparingTheBehaviorOfDifferentVersioningModes.cs index f1d4833705..469e841ce5 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/ComparingTheBehaviorOfDifferentVersioningModes.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/ComparingTheBehaviorOfDifferentVersioningModes.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; /// <summary> /// - For mode 1 the main-releases are especially not marked with dedicated tags. diff --git a/src/GitVersion.Core.Tests/IntegrationTests/ContinuousDeliveryTestScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/ContinuousDeliveryTestScenarios.cs index fc3168c637..6dc41afbb6 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/ContinuousDeliveryTestScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/ContinuousDeliveryTestScenarios.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; [TestFixture] public class ContinuousDeliveryTestScenarios @@ -115,7 +115,7 @@ public void ShouldUseTaggedVersionWhenGreaterThanConfiguredNextVersion() public void ShouldCalculateTheCorrectVersionWhenMergingFromMainToFeatureBranch() { // *94f03f8 55 minutes ago(HEAD -> main) - // |\ + // |\ // | *b1f41a4 56 minutes ago // |/ // *ec77f9c 58 minutes ago @@ -168,7 +168,7 @@ public void ShouldCalculateTheCorrectVersionWhenMergingFromMainToFeatureBranch() public void ShouldCalculateTheCorrectVersionWhenMergingFromDevelopToFeatureBranch() { // *2c475bf 55 minutes ago(HEAD -> develop) - // |\ + // |\ // | *e05365d 56 minutes ago // |/ // *67acc03 58 minutes ago(main) @@ -220,7 +220,7 @@ public void ShouldCalculateTheCorrectVersionWhenMergingFromReleaseToFeatureBranc { // *b1e5593 53 minutes ago(HEAD -> release/ 1.0.0) // *8752695 55 minutes ago - // |\ + // |\ // | *0965b88 56 minutes ago // |/ // *f63a536 58 minutes ago(main) @@ -272,7 +272,7 @@ public void ShouldCalculateTheCorrectVersionWhenMergingFromReleaseToFeatureBranc public void ShouldFallbackToTheVersionOnDevelopLikeTheReleaseWasNeverCreatedWhenReleaseHasBeenCanceled() { // *8f062c7 49 minutes ago(HEAD -> develop) - // |\ + // |\ // | *bda6ba8 52 minutes ago // | *6f5cf19 54 minutes ago // * | 3b20f15 50 minutes ago @@ -354,16 +354,16 @@ public void ShouldFallbackToTheVersionOnDevelopLikeTheReleaseWasNeverCreatedWhen public void ShouldConsiderTheMergeCommitFromMainToDevelopWhenReleaseHasBeenMergedAndTaggedOnMain() { // * 5d13120 48 minutes ago (HEAD -> develop) - // |\ + // |\ // | * 8ddd9b0 49 minutes ago (tag: 1.0.0, main) - // | |\ - // | | * 4b826b8 52 minutes ago - // | | * d4b0047 54 minutes ago - // * | | 0457671 50 minutes ago - // | |/ - // |/| - // * | 5f31f30 56 minutes ago - // |/ + // | |\ + // | | * 4b826b8 52 minutes ago + // | | * d4b0047 54 minutes ago + // * | | 0457671 50 minutes ago + // | |/ + // |/| + // * | 5f31f30 56 minutes ago + // |/ // * 252971e 58 minutes ago var configuration = GitFlowConfigurationBuilder.New diff --git a/src/GitVersion.Core.Tests/IntegrationTests/CreatingAFeatureBranchFromAReleaseBranchScenario.cs b/src/GitVersion.Core.Tests/IntegrationTests/CreatingAFeatureBranchFromAReleaseBranchScenario.cs index 6d8a75983a..ae7dec7e3c 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/CreatingAFeatureBranchFromAReleaseBranchScenario.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/CreatingAFeatureBranchFromAReleaseBranchScenario.cs @@ -1,6 +1,7 @@ using GitVersion.Configuration; +using GitVersion.Testing.Extensions; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; /// <summary> /// Version not generated correct when creating a feature branch from a release branch #3101 @@ -13,7 +14,7 @@ public void ShouldTreatTheFeatureBranchLikeTheFirstReleaseBranchWhenItHasBeenBra { // *f59b84f in the future(HEAD -> release/ 1.0.0) // *d0f4669 in the future - // |\ + // |\ // | *471acec in the future // |/ // | *266fa68 in the future(release/ 1.1.0, main) @@ -89,7 +90,7 @@ public void ShouldTreatTheFeatureBranchNotLikeTheReleaseBranchWhenItHasBeenBranc { // *19ed1e8 in the future(HEAD -> release/ 1.0.0) // *1684169 in the future - // |\ + // |\ // | *07bd75c in the future // |/ // | *ff34213 in the future(release/ 1.1.0, develop) @@ -171,7 +172,7 @@ public void ShouldTreatTheHotfixBranchLikeTheFirstReleaseBranchWhenItHasBeenBran { // *2b9c8bf 42 minutes ago(HEAD -> release/ 1.0.0) // *66cfc66 44 minutes ago - // |\ + // |\ // | *e9978b9 45 minutes ago // |/ // | *c2b96e5 47 minutes ago(release/ 1.1.0, main|develop) @@ -239,7 +240,7 @@ public void ShouldTreatTheHotfixBranchLikeTheFirstReleaseBranchWhenItHasBeenBran { // *2b9c8bf 42 minutes ago(HEAD -> release/ 1.0.0) // *66cfc66 44 minutes ago - // |\ + // |\ // | *e9978b9 45 minutes ago // |/ // | *c2b96e5 47 minutes ago(release/ 1.1.0, main|develop) @@ -308,14 +309,14 @@ public void ShouldTreatTheHotfixBranchLikeTheFirstReleaseBranchWhenItHasBeenBran public void ShouldTreatTheFeatureBranchLikeTheFirstReleaseBranchWhenItHasBeenBranchedFromFirstButNotFromTheSecondReleaseBranchFromMain() { // * 3807c66 49 minutes ago (HEAD -> release/1.0.0) - // * da32145 51 minutes ago - // |\ - // | * 6a89f35 52 minutes ago - // |/ - // * 19f2980 56 minutes ago + // * da32145 51 minutes ago + // |\ + // | * 6a89f35 52 minutes ago + // |/ + // * 19f2980 56 minutes ago // | * 2282a59 54 minutes ago (release/1.1.0, main) - // |/ - // * d7b7c5e 58 minutes ago + // |/ + // * d7b7c5e 58 minutes ago var configuration = GitFlowConfigurationBuilder.New.Build(); @@ -379,7 +380,7 @@ public void ShouldTreatTheFeatureBranchLikeTheFirstReleaseBranchWhenItHasBeenBra { // *1525ad0 38 minutes ago(HEAD -> release/ 1.0.0) // *476fc51 40 minutes ago - // |\ + // |\ // | *c8c5030 41 minutes ago // |/ // *d91061d 45 minutes ago @@ -452,7 +453,7 @@ public void ShouldTreatTheHotfixBranchLikeTheFirstReleaseBranchWhenItHasBeenBran { // *1525ad0 38 minutes ago(HEAD -> release/ 1.0.0) // *476fc51 40 minutes ago - // |\ + // |\ // | *c8c5030 41 minutes ago // |/ // *d91061d 45 minutes ago @@ -522,7 +523,7 @@ public void ShouldTreatTheHotfixBranchLikeTheFirstReleaseBranchWhenItHasBeenBran { // *1525ad0 38 minutes ago(HEAD -> release/ 1.0.0) // *476fc51 40 minutes ago - // |\ + // |\ // | *c8c5030 41 minutes ago // |/ // *d91061d 45 minutes ago @@ -595,7 +596,7 @@ public void ShouldTreatTheFeatureBranchLikeTheReleaseBranchWhenItHasBeenBranched { // *588f0de in the future(HEAD -> release/ 1.0.0) // *56f660c in the future - // |\ + // |\ // | *9450fb0 in the future // |/ // *9e557cd in the future @@ -658,7 +659,7 @@ public void ShouldTreatTheMergeFromReleaseToDevelopLikeTheReleaseBranchHasNeverB { // *809eaa7 in the future(HEAD -> develop) // *46e2cb8 in the future - // |\ + // |\ // | *08bd8ff in the future // | *9b741de in the future // * | 13206fd in the future @@ -732,9 +733,9 @@ public void ShouldTreatTheMergeFromReleaseToDevelopLikeTheReleaseBranchHasNeverB public void ShouldOnlyTrackTheCommitsOnDevelopBranchForNextReleaseWhenReleaseHasBeenShippedToProduction() { // *9afb0ca in the future(HEAD -> develop) - // |\ + // |\ // | *90c96f2 in the future(tag: 1.0.0, main) - // | |\ + // | |\ // | | *7de3d63 in the future // | | *2ccf33b in the future // * | | e050757 in the future @@ -821,9 +822,9 @@ public void ShouldOnlyTrackTheCommitsOnDevelopBranchForNextReleaseWhenReleaseHas public void ShouldNotConsiderTheMergeCommitFromReleaseToMainWhenCommitHasNotBeenTagged() { // *457e0cd in the future(HEAD -> develop) - // |\ + // |\ // | *d9da657 in the future(tag: 1.0.0, main) - // | |\ + // | |\ // | | *026a6cd in the future // | | *7f5de6e in the future // * | | 3db6e6f in the future diff --git a/src/GitVersion.Core.Tests/IntegrationTests/DevelopScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/DevelopScenarios.cs index 7b3908a2dc..826fcdbfe6 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/DevelopScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/DevelopScenarios.cs @@ -1,9 +1,9 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; +using GitVersion.Testing.Extensions; using GitVersion.VersionCalculation; using LibGit2Sharp; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; [TestFixture] public class DevelopScenarios : TestBase @@ -210,7 +210,7 @@ public void TagOnHotfixShouldNotAffectDevelop() } [Test] - public void CommitsSinceVersionSourceShouldNotGoDownUponGitFlowReleaseFinish() + public void VersionSourceDistanceShouldNotGoDownUponGitFlowReleaseFinish() { var configuration = GitFlowConfigurationBuilder.New .WithBranch("main", builder => builder.WithDeploymentMode(DeploymentMode.ContinuousDelivery)) @@ -252,7 +252,7 @@ public void CommitsSinceVersionSourceShouldNotGoDownUponGitFlowReleaseFinish() } [Test] - public void CommitsSinceVersionSourceShouldNotGoDownUponMergingFeatureOnlyToDevelop() + public void VersionSourceDistanceShouldNotGoDownUponMergingFeatureOnlyToDevelop() { var configuration = GitFlowConfigurationBuilder.New .WithBranch("main", builder => builder.WithDeploymentMode(DeploymentMode.ContinuousDelivery)) @@ -301,7 +301,7 @@ public void PreviousPreReleaseTagShouldBeRespectedWhenCountingCommits() } [Test] - public void WhenPreventIncrementOfMergedBranchVersionIsSetToFalseForDevelopCommitsSinceVersionSourceShouldNotGoDownWhenMergingReleaseToDevelop() + public void WhenPreventIncrementOfMergedBranchVersionIsSetToFalseForDevelopVersionSourceDistanceShouldNotGoDownWhenMergingReleaseToDevelop() { var configuration = GitFlowConfigurationBuilder.New .WithBranch("main", builder => builder.WithDeploymentMode(DeploymentMode.ContinuousDelivery)) @@ -346,7 +346,7 @@ public void WhenPreventIncrementOfMergedBranchVersionIsSetToFalseForDevelopCommi } [Test] - public void WhenPreventIncrementOfMergedBranchVersionIsSetToTrueForDevelopCommitsSinceVersionSourceShouldNotGoDownWhenMergingReleaseToDevelop() + public void WhenPreventIncrementOfMergedBranchVersionIsSetToTrueForDevelopVersionSourceDistanceShouldNotGoDownWhenMergingReleaseToDevelop() { var configuration = GitFlowConfigurationBuilder.New .WithDeploymentMode(DeploymentMode.ContinuousDelivery) @@ -387,7 +387,7 @@ public void WhenPreventIncrementOfMergedBranchVersionIsSetToTrueForDevelopCommit } [Test] - public void WhenPreventIncrementOfMergedBranchVersionIsSetToFalseForDevelopCommitsSinceVersionSourceShouldNotGoDownWhenMergingHotfixToDevelop() + public void WhenPreventIncrementOfMergedBranchVersionIsSetToFalseForDevelopVersionSourceDistanceShouldNotGoDownWhenMergingHotfixToDevelop() { var configuration = GitFlowConfigurationBuilder.New .WithBranch("develop", builder => builder @@ -553,4 +553,27 @@ public void PreventDecrementationOfVersionsOnTheMainBranch() // ✅ succeeds as expected fixture.AssertFullSemver("1.0.0", configurationBuilder.Build()); } + + /// <summary> + /// "track-merge-target: false" reads tag from other branch #4795 + /// (see https://github.com/GitTools/GitVersion/issues/4795) + /// </summary> + [Test] + public void TaggedVersionFromTheMainBranchShouldBeConsideredEvenIfItIsNewer() + { + using var fixture = new EmptyRepositoryFixture("main"); + + var configurationBuilder = GitFlowConfigurationBuilder.New; + + fixture.MakeATaggedCommit("1.1.1"); + fixture.BranchTo("develop"); + fixture.MakeACommit(); + fixture.MergeNoFF("main"); + fixture.ApplyTag("9.9.9"); + fixture.Checkout("develop"); + fixture.MakeACommit(); + + // ✅ succeeds as expected + fixture.AssertFullSemver("9.10.0-alpha.1", configurationBuilder.Build()); + } } diff --git a/src/GitVersion.Core.Tests/IntegrationTests/DocumentationSamples.cs b/src/GitVersion.Core.Tests/IntegrationTests/DocumentationSamples.cs index 71160f3a31..f12cca9ab3 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/DocumentationSamples.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/DocumentationSamples.cs @@ -1,6 +1,6 @@ -using GitVersion.Core.Tests.Helpers; +using GitVersion.Testing.Extensions; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; [TestFixture] public class DocumentationSamples : TestBase @@ -378,9 +378,12 @@ public void GitHubFlowMajorRelease() fixture.ApplyTag("2.0.0-beta.1"); fixture.AssertFullSemver("2.0.0-beta.2+0"); - // test that the CommitsSinceVersionSource should still return commit count + // test that the VersionSourceDistance should still return the commit count var version = fixture.GetVersion(); +#pragma warning disable CS0618 version.CommitsSinceVersionSource.ShouldBe("0"); +#pragma warning restore CS0618 + version.VersionSourceDistance.ShouldBe("0"); // Make a commit after a tag should bump up the beta fixture.MakeACommit(); diff --git a/src/GitVersion.Core.Tests/IntegrationTests/DocumentationSamplesForGitFlow.cs b/src/GitVersion.Core.Tests/IntegrationTests/DocumentationSamplesForGitFlow.cs index 1fc0cd9df7..634a201ac4 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/DocumentationSamplesForGitFlow.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/DocumentationSamplesForGitFlow.cs @@ -1,8 +1,9 @@ using GitVersion.Configuration; +using GitVersion.Testing.Extensions; using GitVersion.VersionCalculation; using LibGit2Sharp; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; [TestFixture] public class DocumentationSamplesForGitFlow diff --git a/src/GitVersion.Core.Tests/IntegrationTests/DocumentationSamplesForGitHubFlow.cs b/src/GitVersion.Core.Tests/IntegrationTests/DocumentationSamplesForGitHubFlow.cs index cba4301309..642c68c12e 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/DocumentationSamplesForGitHubFlow.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/DocumentationSamplesForGitHubFlow.cs @@ -1,8 +1,9 @@ using GitVersion.Configuration; +using GitVersion.Testing.Extensions; using GitVersion.VersionCalculation; using LibGit2Sharp; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; [TestFixture] public class DocumentationSamplesForGitHubFlow diff --git a/src/GitVersion.Core.Tests/IntegrationTests/FallbackVersionStrategyScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/FallbackVersionStrategyScenarios.cs index 9076c18b5c..2a0b999bda 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/FallbackVersionStrategyScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/FallbackVersionStrategyScenarios.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; [TestFixture] public class FallbackVersionStrategyScenarios : TestBase diff --git a/src/GitVersion.Core.Tests/IntegrationTests/FeatureBranchScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/FeatureBranchScenarios.cs index 05cd9a46cb..2dd69830da 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/FeatureBranchScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/FeatureBranchScenarios.cs @@ -1,9 +1,9 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; +using GitVersion.Testing.Extensions; using GitVersion.VersionCalculation; using LibGit2Sharp; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; [TestFixture] public class FeatureBranchScenarios : TestBase diff --git a/src/GitVersion.Core.Tests/IntegrationTests/GitflowScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/GitflowScenarios.cs index a466855b43..ec2cdf9325 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/GitflowScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/GitflowScenarios.cs @@ -1,6 +1,4 @@ -using GitVersion.Core.Tests.Helpers; - -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; [TestFixture] public class GitflowScenarios : TestBase diff --git a/src/GitVersion.Core.Tests/IntegrationTests/HotfixBranchScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/HotfixBranchScenarios.cs index 8bd468453a..f334ced802 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/HotfixBranchScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/HotfixBranchScenarios.cs @@ -1,8 +1,8 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; +using GitVersion.Testing.Extensions; using LibGit2Sharp; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; [TestFixture] public class HotfixBranchScenarios : TestBase diff --git a/src/GitVersion.Core.Tests/IntegrationTests/IgnoreCommitScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/IgnoreCommitScenarios.cs index a789867705..8fa98f7b06 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/IgnoreCommitScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/IgnoreCommitScenarios.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; +using GitVersion.Testing.Extensions; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; [TestFixture] public class IgnoreCommitScenarios : TestBase diff --git a/src/GitVersion.Core.Tests/IntegrationTests/MainScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/MainScenarios.cs index 86f6280cd8..7e12383aaa 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/MainScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/MainScenarios.cs @@ -1,9 +1,9 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; +using GitVersion.Testing.Extensions; using GitVersion.VersionCalculation; using LibGit2Sharp; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; [TestFixture] public class MainScenarios : TestBase diff --git a/src/GitVersion.Core.Tests/IntegrationTests/MainlineDevelopmentScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/MainlineDevelopmentScenarios.cs index 2ac097c7c9..65063680b6 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/MainlineDevelopmentScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/MainlineDevelopmentScenarios.cs @@ -1,8 +1,8 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; +using GitVersion.Testing.Extensions; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; public class MainlineDevelopmentScenarios : TestBase { @@ -530,7 +530,7 @@ public void GivenARemoteGitRepositoryWithCommitsThenClonedLocalDevelopShouldMatc fixture.BranchTo("develop"); fixture.AssertFullSemver("0.1.0-alpha.0", configuration); fixture.Repository.DumpGraph(); - var local = fixture.CloneRepository(); + using var local = fixture.CloneRepository(); fixture.AssertFullSemver("0.1.0-alpha.0", configuration, repository: local.Repository); local.Repository.DumpGraph(); } diff --git a/src/GitVersion.Core.Tests/IntegrationTests/OtherBranchScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/OtherBranchScenarios.cs index 8412d0b015..f54fc69fe8 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/OtherBranchScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/OtherBranchScenarios.cs @@ -1,9 +1,9 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; +using GitVersion.Testing.Extensions; using GitVersion.VersionCalculation; using LibGit2Sharp; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; [TestFixture] public class OtherBranchScenarios : TestBase diff --git a/src/GitVersion.Core.Tests/IntegrationTests/OtherScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/OtherScenarios.cs index 39c2c3ba45..02bdf51742 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/OtherScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/OtherScenarios.cs @@ -1,14 +1,13 @@ using System.Globalization; using System.IO.Abstractions; using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using GitVersion.Extensions; using GitVersion.Helpers; +using GitVersion.Testing.Extensions; using GitVersion.VersionCalculation; using LibGit2Sharp; -using Microsoft.Extensions.DependencyInjection; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; [TestFixture] public class OtherScenarios : TestBase diff --git a/src/GitVersion.Core.Tests/IntegrationTests/PerformanceScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/PerformanceScenarios.cs index cb92616ac8..3fc792c54f 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/PerformanceScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/PerformanceScenarios.cs @@ -1,7 +1,6 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; public class PerformanceScenarios : TestBase { diff --git a/src/GitVersion.Core.Tests/IntegrationTests/PullRequestScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/PullRequestScenarios.cs index 683d3dbec7..bdb2749544 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/PullRequestScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/PullRequestScenarios.cs @@ -1,8 +1,8 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; +using GitVersion.Testing.Extensions; using LibGit2Sharp; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; [TestFixture] public class PullRequestScenarios : TestBase diff --git a/src/GitVersion.Core.Tests/IntegrationTests/ReleaseBranchScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/ReleaseBranchScenarios.cs index 8437c3fd33..f05a915d82 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/ReleaseBranchScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/ReleaseBranchScenarios.cs @@ -1,8 +1,8 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; +using GitVersion.Testing.Extensions; using LibGit2Sharp; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; [TestFixture] public class ReleaseBranchScenarios : TestBase diff --git a/src/GitVersion.Core.Tests/IntegrationTests/RemoteRepositoryScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/RemoteRepositoryScenarios.cs index af76ec7acd..ac1e4b4150 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/RemoteRepositoryScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/RemoteRepositoryScenarios.cs @@ -1,10 +1,8 @@ using GitVersion.Agents; -using GitVersion.Core.Tests.Helpers; +using GitVersion.Testing.Extensions; using LibGit2Sharp; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Options; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; [TestFixture] public class RemoteRepositoryScenarios : TestBase diff --git a/src/GitVersion.Core.Tests/IntegrationTests/RepositoryFixtureExtensions.cs b/src/GitVersion.Core.Tests/IntegrationTests/RepositoryFixtureExtensions.cs deleted file mode 100644 index 79706e422a..0000000000 --- a/src/GitVersion.Core.Tests/IntegrationTests/RepositoryFixtureExtensions.cs +++ /dev/null @@ -1,40 +0,0 @@ -using GitVersion.Extensions; - -namespace GitVersion.Core.Tests.IntegrationTests; - -internal static class RepositoryFixtureExtensions -{ - public static void MakeACommit(this RepositoryFixtureBase fixture, string commitMsg) - { - fixture.Repository.MakeACommit(commitMsg); - var diagramBuilder = (StringBuilder?)typeof(SequenceDiagram) - .GetField("diagramBuilder", BindingFlags.Instance | BindingFlags.NonPublic) - ?.GetValue(fixture.SequenceDiagram); - - var participant = GetParticipant(fixture.Repository.Head.FriendlyName); - if (participant != null) - { - AddTheCommitMessage(fixture, commitMsg, diagramBuilder, participant); - } - - string? GetParticipant(string participantName) => - (string?)typeof(SequenceDiagram).GetMethod("GetParticipant", BindingFlags.Instance | BindingFlags.NonPublic) - ?.Invoke(fixture.SequenceDiagram, - [ - participantName - ]); - } - - private static void AddTheCommitMessage(RepositoryFixtureBase fixture, string commitMsg, StringBuilder? diagramBuilder, string participant) - { - if (commitMsg.Length < 40) - { - diagramBuilder?.AppendLineFormat("{0} -> {0}: Commit '{1}'", participant, commitMsg); - } - else - { - var formattedCommitMsg = string.Join(System.Environment.NewLine, $"Commit '{commitMsg}'".SplitIntoLines(60)); - fixture.SequenceDiagram.NoteOver(formattedCommitMsg, participant); - } - } -} diff --git a/src/GitVersion.Core.Tests/IntegrationTests/SemVerOfAFeatureBranchStartedFromAReleaseBranchGetsDecrementedScenario.cs b/src/GitVersion.Core.Tests/IntegrationTests/SemVerOfAFeatureBranchStartedFromAReleaseBranchGetsDecrementedScenario.cs index b150e366b6..aad1785d23 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/SemVerOfAFeatureBranchStartedFromAReleaseBranchGetsDecrementedScenario.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/SemVerOfAFeatureBranchStartedFromAReleaseBranchGetsDecrementedScenario.cs @@ -1,4 +1,4 @@ -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; /// <summary> /// [Bug] SemVer of a feature branch started from a release branch gets decremented #3151 diff --git a/src/GitVersion.Core.Tests/IntegrationTests/SupportBranchScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/SupportBranchScenarios.cs index 284077f656..4ea353009f 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/SupportBranchScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/SupportBranchScenarios.cs @@ -1,8 +1,8 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; +using GitVersion.Testing.Extensions; using LibGit2Sharp; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; [TestFixture] public class SupportBranchScenarios : TestBase diff --git a/src/GitVersion.Core.Tests/IntegrationTests/SwitchingToGitFlowScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/SwitchingToGitFlowScenarios.cs index 8a5cb57179..71da44d23d 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/SwitchingToGitFlowScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/SwitchingToGitFlowScenarios.cs @@ -1,7 +1,7 @@ -using GitVersion.Core.Tests.Helpers; +using GitVersion.Testing.Extensions; using LibGit2Sharp; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; [TestFixture] public class SwitchingToGitFlowScenarios : TestBase diff --git a/src/GitVersion.Core.Tests/IntegrationTests/TagCheckoutScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/TagCheckoutScenarios.cs index fbb56eb558..34af0e7459 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/TagCheckoutScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/TagCheckoutScenarios.cs @@ -1,6 +1,6 @@ -using GitVersion.Core.Tests.Helpers; +using GitVersion.Testing.Extensions; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; [TestFixture] public class TagCheckoutScenarios diff --git a/src/GitVersion.Core.Tests/IntegrationTests/VersionBumpingScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/VersionBumpingScenarios.cs index 459fc5ef80..cb26b5441c 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/VersionBumpingScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/VersionBumpingScenarios.cs @@ -1,9 +1,9 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; +using GitVersion.Testing.Extensions; using GitVersion.VersionCalculation; using LibGit2Sharp; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; [TestFixture] public class VersionBumpingScenarios : TestBase diff --git a/src/GitVersion.Core.Tests/IntegrationTests/VersionInCurrentBranchNameScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/VersionInCurrentBranchNameScenarios.cs index 387559ff4e..bd286b7f4b 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/VersionInCurrentBranchNameScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/VersionInCurrentBranchNameScenarios.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using LibGit2Sharp; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; [TestFixture] public class VersionInCurrentBranchNameScenarios : TestBase diff --git a/src/GitVersion.Core.Tests/IntegrationTests/VersionInMergedBranchNameScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/VersionInMergedBranchNameScenarios.cs index 8da8e0ce2c..90830d7144 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/VersionInMergedBranchNameScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/VersionInMergedBranchNameScenarios.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using LibGit2Sharp; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; [TestFixture] public class VersionInMergedBranchNameScenarios : TestBase @@ -84,11 +83,14 @@ public void DoesNotTakeVersionFromNameOfRemoteReleaseBranchInCustomRemote() internal static class BaseGitFlowRepositoryFixtureExtensions { - public static void CreateAndMergeBranchIntoDevelop(this BaseGitFlowRepositoryFixture fixture, string branchName) + extension(BaseGitFlowRepositoryFixture fixture) { - fixture.BranchTo(branchName); - fixture.MakeACommit(); - fixture.Checkout("develop"); - fixture.MergeNoFF(branchName); + public void CreateAndMergeBranchIntoDevelop(string branchName) + { + fixture.BranchTo(branchName); + fixture.MakeACommit(); + fixture.Checkout("develop"); + fixture.MergeNoFF(branchName); + } } } diff --git a/src/GitVersion.Core.Tests/IntegrationTests/VersionInTagScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/VersionInTagScenarios.cs index f03603c417..a6fcd7b6e5 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/VersionInTagScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/VersionInTagScenarios.cs @@ -1,7 +1,6 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; [TestFixture] internal class VersionInTagScenarios diff --git a/src/GitVersion.Core.Tests/IntegrationTests/WorktreeScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/WorktreeScenarios.cs index 89cfd4c2ce..81e4d58816 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/WorktreeScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/WorktreeScenarios.cs @@ -1,10 +1,9 @@ using System.IO.Abstractions; -using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; +using GitVersion.Testing.Extensions; using LibGit2Sharp; -using Microsoft.Extensions.DependencyInjection; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; [TestFixture] public class WorktreeScenarios : TestBase diff --git a/src/GitVersion.Core.Tests/Logging/LoggerTest.cs b/src/GitVersion.Core.Tests/Logging/LoggerTest.cs index 25fd83ab0a..567f0db4e8 100644 --- a/src/GitVersion.Core.Tests/Logging/LoggerTest.cs +++ b/src/GitVersion.Core.Tests/Logging/LoggerTest.cs @@ -1,7 +1,6 @@ -using GitVersion.Core.Tests.Helpers; using GitVersion.Logging; -namespace GitVersion.Core.Tests; +namespace GitVersion.Tests; [TestFixture] public class LoggerTest : TestBase diff --git a/src/GitVersion.Core.Tests/Logging/LoggingTests.cs b/src/GitVersion.Core.Tests/Logging/LoggingTests.cs index 9a8b45ab8a..b2e6f32133 100644 --- a/src/GitVersion.Core.Tests/Logging/LoggingTests.cs +++ b/src/GitVersion.Core.Tests/Logging/LoggingTests.cs @@ -1,6 +1,6 @@ using GitVersion.Logging; -namespace GitVersion.Core.Tests.Logging; +namespace GitVersion.Tests.Logging; [TestFixture] public class LoggingTests diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitFlow+GivenADevelopBranchWithOneCommitMergedToMainWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitFlow+GivenADevelopBranchWithOneCommitMergedToMainWhen.cs index dd9618f778..b5eaf14dc0 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitFlow+GivenADevelopBranchWithOneCommitMergedToMainWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitFlow+GivenADevelopBranchWithOneCommitMergedToMainWhen.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitFlow { @@ -26,16 +24,16 @@ public void OneTimeSetUp() // |/ // * 58 minutes ago - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.BranchTo("develop"); - fixture.MakeACommit("B"); - fixture.MergeTo("main"); + this.fixture.MakeACommit("A"); + this.fixture.BranchTo("develop"); + this.fixture.MakeACommit("B"); + this.fixture.MergeTo("main"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, ExpectedResult = "0.0.0-alpha.1+2")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, ExpectedResult = "0.0.1-alpha.1+2")] @@ -63,7 +61,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("develop", b => b.WithIncrement(increment)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, ExpectedResult = "0.0.0-2+2")] @@ -92,7 +90,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("develop", b => b.WithIncrement(increment)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitFlow+GivenADevelopBranchWithOneCommitMergedToMainWhenMergedCommitTaggedAsStable.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitFlow+GivenADevelopBranchWithOneCommitMergedToMainWhenMergedCommitTaggedAsStable.cs index 6e560d4fcd..db57dd4558 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitFlow+GivenADevelopBranchWithOneCommitMergedToMainWhenMergedCommitTaggedAsStable.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitFlow+GivenADevelopBranchWithOneCommitMergedToMainWhenMergedCommitTaggedAsStable.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitFlow { @@ -26,18 +24,18 @@ public void OneTimeSetUp() // |/ // * 58 minutes ago - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.BranchTo("develop"); - fixture.MakeACommit("B"); - fixture.MergeTo("main"); - fixture.ApplyTag("1.0.0"); - fixture.Checkout("develop"); + this.fixture.MakeACommit("A"); + this.fixture.BranchTo("develop"); + this.fixture.MakeACommit("B"); + this.fixture.MergeTo("main"); + this.fixture.ApplyTag("1.0.0"); + this.fixture.Checkout("develop"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, ExpectedResult = "1.0.0-alpha.1+0")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, ExpectedResult = "1.0.1-alpha.1+0")] @@ -65,7 +63,7 @@ public string GetVersionWithTrackMergeTargetOnDevelop(IncrementStrategy incremen .WithBranch("develop", b => b.WithIncrement(increment).WithTrackMergeTarget(true)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, ExpectedResult = "0.0.0-alpha.1+1")] @@ -94,7 +92,7 @@ public string GetVersionWithNoTrackMergeTargetOnDevelop(IncrementStrategy increm .WithBranch("develop", b => b.WithIncrement(increment).WithTrackMergeTarget(false)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithAMergeCommitFromMainMergedBackToMainWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithAMergeCommitFromMainMergedBackToMainWhen.cs index 94aa15cd6d..aa8cd60725 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithAMergeCommitFromMainMergedBackToMainWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithAMergeCommitFromMainMergedBackToMainWhen.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitFlow { @@ -33,20 +31,20 @@ public void OneTimeSetUp() // |/ // A 58 minutes ago - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.BranchTo("feature/foo"); - fixture.MakeACommit("B"); - fixture.Checkout("main"); - fixture.MakeACommit("C"); - fixture.Checkout("main"); - fixture.MergeTo("feature/foo"); - fixture.MergeTo("main", removeBranchAfterMerging: true); + this.fixture.MakeACommit("A"); + this.fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("B"); + this.fixture.Checkout("main"); + this.fixture.MakeACommit("C"); + this.fixture.Checkout("main"); + this.fixture.MergeTo("feature/foo"); + this.fixture.MergeTo("main", removeBranchAfterMerging: true); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.1+3")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.1-foo.1+3")] @@ -138,7 +136,7 @@ public string GetVersion(IncrementStrategy increment, IncrementStrategy incremen .WithBranch("feature", b => b.WithIncrement(incrementOnFeature)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.1+3")] @@ -232,7 +230,7 @@ public string GetVersionWithPreventIncrementOfMergedBranchVersionFalseOnMain( .WithBranch("feature", b => b.WithIncrement(incrementOnFeature)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithAMergeCommitFromMainWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithAMergeCommitFromMainWhen.cs index 40cd7b368e..a967b3dc53 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithAMergeCommitFromMainWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithAMergeCommitFromMainWhen.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -29,18 +27,18 @@ public void OneTimeSetUp() // |/ // A 58 minutes ago - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.BranchTo("feature/foo"); - fixture.MakeACommit("B"); - fixture.Checkout("main"); - fixture.MakeACommit("C"); - fixture.MergeTo("feature/foo"); + this.fixture.MakeACommit("A"); + this.fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("B"); + this.fixture.Checkout("main"); + this.fixture.MakeACommit("C"); + this.fixture.MergeTo("feature/foo"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, ExpectedResult = "0.0.0-foo.1+2")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, ExpectedResult = "0.0.1-foo.1+2")] @@ -72,7 +70,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, ExpectedResult = "0.0.0-foo.1+2")] @@ -105,7 +103,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, ExpectedResult = "0.0.0-foo.3+2")] @@ -138,7 +136,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, ExpectedResult = "0.0.0-foo.1+2")] @@ -171,7 +169,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhen.cs index 1e04bf98ff..927a68eca9 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhen.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -25,15 +23,15 @@ public void OneTimeSetUp() // B 47 minutes ago (HEAD -> feature/foo) // A 51 minutes ago (main) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.BranchTo("feature/foo"); - fixture.MakeACommit("B"); + this.fixture.MakeACommit("A"); + this.fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("B"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.1-1+1")] @@ -145,7 +143,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -258,7 +256,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+1")] @@ -371,7 +369,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+1")] @@ -484,7 +482,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessageMajor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessageMajor.cs index d50c5f70c7..fe63aab9ba 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessageMajor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessageMajor.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -25,15 +23,15 @@ public void OneTimeSetUp() // B 47 minutes ago (HEAD -> feature/foo) // A 51 minutes ago (main) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A +semver: major"); - fixture.BranchTo("feature/foo"); - fixture.MakeACommit("B"); + this.fixture.MakeACommit("A +semver: major"); + this.fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("B"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "1.0.0-2+1")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "1.0.1-1+1")] @@ -145,7 +143,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -260,7 +258,7 @@ public string GetVersionWithNoLabelAndDisabledMessageIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -375,7 +373,7 @@ public string GetVersionWithNoLabelAndMergeMessageOnlyIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "1.0.0-2+1")] @@ -489,7 +487,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -604,7 +602,7 @@ public string GetVersionWithEmptyLabelAndDisabledMessageIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -719,7 +717,7 @@ public string GetVersionWithEmptyLabelAndMergeMessageOnlyIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "1.0.0-foo.2+1")] @@ -832,7 +830,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+1")] @@ -947,7 +945,7 @@ public string GetVersionWithLabelFooAndDisabledMergeMessageIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+1")] @@ -1062,7 +1060,7 @@ public string GetVersionWithLabelFooAndMergeMessageOnlyIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "1.0.0-bar.2+1")] @@ -1175,7 +1173,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+1")] @@ -1290,7 +1288,7 @@ public string GetVersionWithLabelBarAndDisabledMergeMessageIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+1")] @@ -1405,7 +1403,7 @@ public string GetVersionWithLabelBarAndMergeMessageOnlyIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessageMinor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessageMinor.cs index a00d17cd06..cf1369f461 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessageMinor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessageMinor.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -25,15 +23,15 @@ public void OneTimeSetUp() // B 47 minutes ago (HEAD -> feature/foo) // A 51 minutes ago (main) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A +semver: minor"); - fixture.BranchTo("feature/foo"); - fixture.MakeACommit("B"); + this.fixture.MakeACommit("A +semver: minor"); + this.fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("B"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.1.0-2+1")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.1.1-1+1")] @@ -145,7 +143,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -260,7 +258,7 @@ public string GetVersionWithNoLabelAndDisabledMessageIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -375,7 +373,7 @@ public string GetVersionWithNoLabelAndMergeMessageOnlyIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.1.0-2+1")] @@ -489,7 +487,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -604,7 +602,7 @@ public string GetVersionWithEmptyLabelAndDisabledMessageIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -719,7 +717,7 @@ public string GetVersionWithEmptyLabelAndMergeMessageOnlyIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.1.0-foo.2+1")] @@ -832,7 +830,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+1")] @@ -947,7 +945,7 @@ public string GetVersionWithLabelFooAndDisabledMergeMessageIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+1")] @@ -1062,7 +1060,7 @@ public string GetVersionWithLabelFooAndMergeMessageOnlyIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.1.0-bar.2+1")] @@ -1175,7 +1173,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+1")] @@ -1290,7 +1288,7 @@ public string GetVersionWithLabelBarAndDisabledMergeMessageIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+1")] @@ -1405,7 +1403,7 @@ public string GetVersionWithLabelBarAndMergeMessageOnlyIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessagePatch.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessagePatch.cs index 0ad6e69527..aaa242751b 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessagePatch.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessagePatch.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -25,15 +23,15 @@ public void OneTimeSetUp() // B 47 minutes ago (HEAD -> feature/foo) // A 51 minutes ago (main) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A +semver: patch"); - fixture.BranchTo("feature/foo"); - fixture.MakeACommit("B"); + this.fixture.MakeACommit("A +semver: patch"); + this.fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("B"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.1-2+1")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.2-1+1")] @@ -145,7 +143,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -260,7 +258,7 @@ public string GetVersionWithNoLabelAndDisabledMessageIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -375,7 +373,7 @@ public string GetVersionWithNoLabelAndMergeMessageOnlyIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.1-2+1")] @@ -488,7 +486,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -603,7 +601,7 @@ public string GetVersionWithEmptyLabelAndDisabledMessageIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -718,7 +716,7 @@ public string GetVersionWithEmptyLabelAndMergeMessageOnlyIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.1-foo.2+1")] @@ -831,7 +829,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+1")] @@ -946,7 +944,7 @@ public string GetVersionWithLabelFooAndDisabledMergeMessageIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+1")] @@ -1061,7 +1059,7 @@ public string GetVersionWithLabelFooAndMergeMessageOnlyIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.1-bar.2+1")] @@ -1174,7 +1172,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+1")] @@ -1289,7 +1287,7 @@ public string GetVersionWithLabelBarAndDisabledMergeMessageIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+1")] @@ -1404,7 +1402,7 @@ public string GetVersionWithLabelBarAndMergeMessageOnlyIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreRelease.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreRelease.cs index 219be0a0d1..34020681d8 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreRelease.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreRelease.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -25,16 +23,16 @@ public void OneTimeSetUp() // B 47 minutes ago (HEAD -> feature/foo) // A 51 minutes ago (main) (tag 0.0.0-4) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.ApplyTag("0.0.0-4"); - fixture.BranchTo("feature/foo"); - fixture.MakeACommit("B"); + this.fixture.MakeACommit("A"); + this.fixture.ApplyTag("0.0.0-4"); + this.fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("B"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-5+1")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.1-1+1")] @@ -146,7 +144,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-5+1")] @@ -259,7 +257,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+1")] @@ -372,7 +370,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+1")] @@ -485,7 +483,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreReleaseBar.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreReleaseBar.cs index 0a5374d23d..0e38cba6c5 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreReleaseBar.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreReleaseBar.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -25,16 +23,16 @@ public void OneTimeSetUp() // B 47 minutes ago (HEAD -> feature/foo) // A 51 minutes ago (main) (tag 0.0.0-bar) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.ApplyTag("0.0.0-bar"); - fixture.BranchTo("feature/foo"); - fixture.MakeACommit("B"); + this.fixture.MakeACommit("A"); + this.fixture.ApplyTag("0.0.0-bar"); + this.fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("B"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar+1")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.1-bar+1")] @@ -146,7 +144,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -259,7 +257,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+1")] @@ -372,7 +370,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar+1")] @@ -485,7 +483,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreReleaseFoo.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreReleaseFoo.cs index 7bf83c189f..3581922c2b 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreReleaseFoo.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreReleaseFoo.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -25,16 +23,16 @@ public void OneTimeSetUp() // B 47 minutes ago (HEAD -> feature/foo) // A 51 minutes ago (main) (tag 0.0.0-foo.4) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.ApplyTag("0.0.0-foo.4"); - fixture.BranchTo("feature/foo"); - fixture.MakeACommit("B"); + this.fixture.MakeACommit("A"); + this.fixture.ApplyTag("0.0.0-foo.4"); + this.fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("B"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.5+1")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.1-foo.1+1")] @@ -146,7 +144,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -259,7 +257,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.5+1")] @@ -372,7 +370,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+1")] @@ -485,7 +483,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsStable.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsStable.cs index 97efbbf7ce..a07fdd6ac6 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsStable.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsStable.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -25,16 +23,16 @@ public void OneTimeSetUp() // B 47 minutes ago (HEAD -> feature/foo) // A 51 minutes ago (main) (tag 0.0.0) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.ApplyTag("0.0.0"); - fixture.BranchTo("feature/foo"); - fixture.MakeACommit("B"); + this.fixture.MakeACommit("A"); + this.fixture.ApplyTag("0.0.0"); + this.fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("B"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+1")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.1-1+1")] @@ -147,7 +145,7 @@ public string GetVersionWithNoLabelOnMain( .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+1")] @@ -261,7 +259,7 @@ public string GetVersionWithEmptyLabelOnMain( .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+1")] @@ -375,7 +373,7 @@ public string GetVersionWithLabelFooOnMain( .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+1")] @@ -489,7 +487,7 @@ public string GetVersionWithLabelBarOnMain( .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessageMajor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessageMajor.cs index 8ebc1e8f73..7b96180482 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessageMajor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessageMajor.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -25,15 +23,15 @@ public void OneTimeSetUp() // B 47 minutes ago (HEAD -> feature/foo) // A 51 minutes ago (main) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.BranchTo("feature/foo"); - fixture.MakeACommit("B +semver: major"); + this.fixture.MakeACommit("A"); + this.fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("B +semver: major"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "1.0.0-1+1")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "1.0.0-1+1")] @@ -145,7 +143,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -261,7 +259,7 @@ public string GetVersionWithNoLabelAndDisabledMessageIncrementingOnMain( .WithCommitMessageIncrementing(CommitMessageIncrementMode.Disabled) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -377,7 +375,7 @@ public string GetVersionWithNoLabelAndMergeMessageOnlyIncrementingOnMain( .WithCommitMessageIncrementing(CommitMessageIncrementMode.MergeMessageOnly) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "1.0.0-1+1")] @@ -490,7 +488,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -606,7 +604,7 @@ public string GetVersionWithEmptyLabelAndDisabledMessageIncrementingOnMain( .WithCommitMessageIncrementing(CommitMessageIncrementMode.Disabled) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -722,7 +720,7 @@ public string GetVersionWithEmptyLabelAndMergeMessageOnlyIncrementingOnMain( .WithCommitMessageIncrementing(CommitMessageIncrementMode.MergeMessageOnly) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "1.0.0-foo.1+1")] @@ -835,7 +833,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+1")] @@ -951,7 +949,7 @@ public string GetVersionWithLabelFooAndDisabledMessageIncrementingOnMain( .WithCommitMessageIncrementing(CommitMessageIncrementMode.Disabled) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+1")] @@ -1067,7 +1065,7 @@ public string GetVersionWithLabelFooAndMergeMessageOnlyIncrementingOnMain( .WithCommitMessageIncrementing(CommitMessageIncrementMode.MergeMessageOnly) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "1.0.0-bar.1+1")] @@ -1180,7 +1178,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+1")] @@ -1296,7 +1294,7 @@ public string GetVersionWithLabelBarAndDisabledMessageIncrementingOnMain( .WithCommitMessageIncrementing(CommitMessageIncrementMode.Disabled) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+1")] @@ -1412,7 +1410,7 @@ public string GetVersionWithLabelBarAndMergeMessageOnlyIncrementingOnMain( .WithCommitMessageIncrementing(CommitMessageIncrementMode.MergeMessageOnly) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessageMinor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessageMinor.cs index 2e640520c0..5748b5a6ca 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessageMinor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessageMinor.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -25,15 +23,15 @@ public void OneTimeSetUp() // B 47 minutes ago (HEAD -> feature/foo) // A 51 minutes ago (main) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.BranchTo("feature/foo"); - fixture.MakeACommit("B +semver: minor"); + this.fixture.MakeACommit("A"); + this.fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("B +semver: minor"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.1.0-1+1")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.1.0-1+1")] @@ -145,7 +143,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -261,7 +259,7 @@ public string GetVersionWithNoLabelAndDisabledMessageIncrementingOnMain( .WithCommitMessageIncrementing(CommitMessageIncrementMode.Disabled) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -377,7 +375,7 @@ public string GetVersionWithNoLabelAndMergeMessageOnlyIncrementingOnMain( .WithCommitMessageIncrementing(CommitMessageIncrementMode.MergeMessageOnly) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.1.0-1+1")] @@ -490,7 +488,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -606,7 +604,7 @@ public string GetVersionWithEmptyLabelAndDisabledMessageIncrementingOnMain( .WithCommitMessageIncrementing(CommitMessageIncrementMode.Disabled) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -722,7 +720,7 @@ public string GetVersionWithEmptyLabelAndMergeMessageOnlyIncrementingOnMain( .WithCommitMessageIncrementing(CommitMessageIncrementMode.MergeMessageOnly) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.1.0-foo.1+1")] @@ -835,7 +833,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+1")] @@ -951,7 +949,7 @@ public string GetVersionWithLabelFooAndDisabledMessageIncrementingOnMain( .WithCommitMessageIncrementing(CommitMessageIncrementMode.Disabled) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+1")] @@ -1067,7 +1065,7 @@ public string GetVersionWithLabelFooAndMergeMessageOnlyIncrementingOnMain( .WithCommitMessageIncrementing(CommitMessageIncrementMode.MergeMessageOnly) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.1.0-bar.1+1")] @@ -1180,7 +1178,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+1")] @@ -1296,7 +1294,7 @@ public string GetVersionWithLabelBarAndDisabledMessageIncrementingOnMain( .WithCommitMessageIncrementing(CommitMessageIncrementMode.Disabled) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+1")] @@ -1412,7 +1410,7 @@ public string GetVersionWithLabelBarAndMergeMessageOnlyIncrementingOnMain( .WithCommitMessageIncrementing(CommitMessageIncrementMode.MergeMessageOnly) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessagePatch.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessagePatch.cs index 3b71db21b8..92d0406970 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessagePatch.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessagePatch.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -25,15 +23,15 @@ public void OneTimeSetUp() // B 47 minutes ago (HEAD -> feature/foo) // A 51 minutes ago (main) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.BranchTo("feature/foo"); - fixture.MakeACommit("B +semver: patch"); + this.fixture.MakeACommit("A"); + this.fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("B +semver: patch"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.1-1+1")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.1-1+1")] @@ -145,7 +143,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -261,7 +259,7 @@ public string GetVersionWithNoLabelAndDisabledMessageIncrementingOnMain( .WithCommitMessageIncrementing(CommitMessageIncrementMode.Disabled) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -377,7 +375,7 @@ public string GetVersionWithNoLabelAndMergeMessageOnlyIncrementingOnMain( .WithCommitMessageIncrementing(CommitMessageIncrementMode.MergeMessageOnly) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.1-1+1")] @@ -490,7 +488,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -606,7 +604,7 @@ public string GetVersionWithEmptyLabelAndDisabledMessageIncrementingOnMain( .WithCommitMessageIncrementing(CommitMessageIncrementMode.Disabled) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -722,7 +720,7 @@ public string GetVersionWithEmptyLabelAndMergeMessageOnlyIncrementingOnMain( .WithCommitMessageIncrementing(CommitMessageIncrementMode.MergeMessageOnly) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.1-foo.1+1")] @@ -835,7 +833,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+1")] @@ -951,7 +949,7 @@ public string GetVersionWithLabelFooAndDisabledMessageIncrementingOnMain( .WithCommitMessageIncrementing(CommitMessageIncrementMode.Disabled) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+1")] @@ -1067,7 +1065,7 @@ public string GetVersionWithLabelFooAndMergeMessageOnlyIncrementingOnMain( .WithCommitMessageIncrementing(CommitMessageIncrementMode.MergeMessageOnly) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.1-bar.1+1")] @@ -1180,7 +1178,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+1")] @@ -1296,7 +1294,7 @@ public string GetVersionWithLabelBarAndDisabledMessageIncrementingOnMain( .WithCommitMessageIncrementing(CommitMessageIncrementMode.Disabled) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+1")] @@ -1412,7 +1410,7 @@ public string GetVersionWithLabelBarAndMergeMessageOnlyIncrementingOnMain( .WithCommitMessageIncrementing(CommitMessageIncrementMode.MergeMessageOnly) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreRelease.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreRelease.cs index b249171f7b..97f042110d 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreRelease.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreRelease.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -25,16 +23,16 @@ public void OneTimeSetUp() // B 47 minutes ago (HEAD -> feature/foo) (tag 0.0.0-4) // A 51 minutes ago (main) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.BranchTo("feature/foo"); - fixture.MakeACommit("B"); - fixture.ApplyTag("0.0.0-4"); + this.fixture.MakeACommit("A"); + this.fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("B"); + this.fixture.ApplyTag("0.0.0-4"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-4")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.0-4")] @@ -146,7 +144,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-4")] @@ -259,7 +257,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-4")] @@ -372,7 +370,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-4")] @@ -485,7 +483,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreReleaseBar.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreReleaseBar.cs index eca7cd7cf8..771d58b8db 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreReleaseBar.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreReleaseBar.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -25,16 +23,16 @@ public void OneTimeSetUp() // B 47 minutes ago (HEAD -> feature/foo) (tag 0.0.0-bar) // A 51 minutes ago (main) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.BranchTo("feature/foo"); - fixture.MakeACommit("B"); - fixture.ApplyTag("0.0.0-bar"); + this.fixture.MakeACommit("A"); + this.fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("B"); + this.fixture.ApplyTag("0.0.0-bar"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.0-bar")] @@ -146,7 +144,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar")] @@ -259,7 +257,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar")] @@ -372,7 +370,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar")] @@ -485,7 +483,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreReleaseFoo.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreReleaseFoo.cs index e039a08a3b..e2b41f74e4 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreReleaseFoo.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreReleaseFoo.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -25,16 +23,16 @@ public void OneTimeSetUp() // B 47 minutes ago (HEAD -> feature/foo) (tag 0.0.0-foo.4) // A 51 minutes ago (main) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.BranchTo("feature/foo"); - fixture.MakeACommit("B"); - fixture.ApplyTag("0.0.0-foo.4"); + this.fixture.MakeACommit("A"); + this.fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("B"); + this.fixture.ApplyTag("0.0.0-foo.4"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.4")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.0-foo.4")] @@ -146,7 +144,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.4")] @@ -259,7 +257,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.4")] @@ -372,7 +370,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.4")] @@ -485,7 +483,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsStable.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsStable.cs index 2c8e51e591..6c09a2f0d1 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsStable.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsStable.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -25,16 +23,16 @@ public void OneTimeSetUp() // B 47 minutes ago (HEAD -> feature/foo) (tag 0.0.0) // A 51 minutes ago (main) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.BranchTo("feature/foo"); - fixture.MakeACommit("B"); - fixture.ApplyTag("0.0.0"); + this.fixture.MakeACommit("A"); + this.fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("B"); + this.fixture.ApplyTag("0.0.0"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.0")] @@ -147,7 +145,7 @@ public string GetVersionWithNoLabelOnMain( .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+0")] @@ -241,7 +239,7 @@ public string GetVersionWithNoLabelOnMainAndPreventIncrementWhenCurrentCommitTag .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label).WithPreventIncrementWhenCurrentCommitTagged(false)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0")] @@ -355,7 +353,7 @@ public string GetVersionWithEmptyLabelOnMain( .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+0")] @@ -449,7 +447,7 @@ public string GetVersionWithEmptyLabelOnMainAndPreventIncrementWhenCurrentCommit .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label).WithPreventIncrementWhenCurrentCommitTagged(false)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0")] @@ -563,7 +561,7 @@ public string GetVersionWithLabelFooOnMain( .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+0")] @@ -657,7 +655,7 @@ public string GetVersionWithLabelFooOnMainAndPreventIncrementWhenCurrentCommitTa .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label).WithPreventIncrementWhenCurrentCommitTagged(false)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0")] @@ -771,7 +769,7 @@ public string GetVersionWithLabelBarOnMain( .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+0")] @@ -865,7 +863,7 @@ public string GetVersionWithLabelBarOnMainAndPreventIncrementWhenCurrentCommitTa .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label).WithPreventIncrementWhenCurrentCommitTagged(false)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhen.cs index 0d4c52125e..765077f7cf 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhen.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -28,16 +26,16 @@ public void OneTimeSetUp() // |/ // A 58 minutes ago - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.BranchTo("feature/foo"); - fixture.MakeACommit("B"); - fixture.MergeTo("main"); + this.fixture.MakeACommit("A"); + this.fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("B"); + this.fixture.MergeTo("main"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+2")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.1-1+2")] @@ -150,7 +148,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+2")] @@ -265,7 +263,7 @@ public string GetVersionWithLabelNullAndPreventIncrementOfMergedBranchVersionFal .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+2")] @@ -379,7 +377,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+2")] @@ -494,7 +492,7 @@ public string GetVersionWithEmptyLabelAndPreventIncrementOfMergedBranchVersionFa .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+2")] @@ -608,7 +606,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+2")] @@ -723,7 +721,7 @@ public string GetVersionWithLabelFooAndPreventIncrementOfMergedBranchVersionFals .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+2")] @@ -837,7 +835,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+2")] @@ -952,7 +950,7 @@ public string GetVersionWithLabelBarAndPreventIncrementOfMergedBranchVersionFals .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreRelease.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreRelease.cs index d2b9587ce7..45de3d270c 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreRelease.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreRelease.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -22,7 +20,7 @@ public class GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreR [OneTimeSetUp] public void OneTimeSetUp() { - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); // * 54 minutes ago (HEAD -> main) // |\ @@ -30,15 +28,15 @@ public void OneTimeSetUp() // |/ // A 58 minutes ago - fixture.MakeACommit("A"); - fixture.BranchTo("feature/foo"); - fixture.MakeACommit("B"); - fixture.ApplyTag("0.0.0-4"); - fixture.MergeTo("main"); + this.fixture.MakeACommit("A"); + this.fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("B"); + this.fixture.ApplyTag("0.0.0-4"); + this.fixture.MergeTo("main"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-5+1")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.0-5+1")] @@ -150,7 +148,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-5+1")] @@ -264,7 +262,7 @@ public string GetVersionWithLabelNullAndPreventIncrementOfMergedBranchVersionFal .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-5+1")] @@ -377,7 +375,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-5+1")] @@ -492,7 +490,7 @@ public string GetVersionWithEmptyLabelAndPreventIncrementOfMergedBranchVersionFa .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+2")] @@ -605,7 +603,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+2")] @@ -719,7 +717,7 @@ public string GetVersionWithLabelFooAndPreventIncrementOfMergedBranchVersionFals .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+2")] @@ -832,7 +830,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+2")] @@ -946,7 +944,7 @@ public string GetVersionWithLabelBarAndPreventIncrementOfMergedBranchVersionFals .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreReleaseBar.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreReleaseBar.cs index 36d496fc6b..19b6a2d0c6 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreReleaseBar.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreReleaseBar.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -22,7 +20,7 @@ public class GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreR [OneTimeSetUp] public void OneTimeSetUp() { - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); // * 55 minutes ago (HEAD -> main) // |\ @@ -30,15 +28,15 @@ public void OneTimeSetUp() // |/ // A 58 minutes ago - fixture.MakeACommit("A"); - fixture.BranchTo("feature/foo"); - fixture.MakeACommit("B"); - fixture.ApplyTag("0.0.0-bar"); - fixture.MergeTo("main"); + this.fixture.MakeACommit("A"); + this.fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("B"); + this.fixture.ApplyTag("0.0.0-bar"); + this.fixture.MergeTo("main"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar+1")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.0-bar+1")] @@ -150,7 +148,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar+1")] @@ -264,7 +262,7 @@ public string GetVersionWithLabelNullAndPreventIncrementOfMergedBranchVersionFal .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+2")] @@ -377,7 +375,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+2")] @@ -491,7 +489,7 @@ public string GetVersionWithEmptyLabelAndPreventIncrementOfMergedBranchVersionFa .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+2")] @@ -604,7 +602,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+2")] @@ -718,7 +716,7 @@ public string GetVersionWithLabelFooAndPreventIncrementOfMergedBranchVersionFals .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar+1")] @@ -831,7 +829,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar+1")] @@ -945,7 +943,7 @@ public string GetVersionWithLabelBarAndPreventIncrementOfMergedBranchVersionFals .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreReleaseFoo.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreReleaseFoo.cs index e3a96954a6..fe9baf0599 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreReleaseFoo.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreReleaseFoo.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -22,7 +20,7 @@ public class GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreR [OneTimeSetUp] public void OneTimeSetUp() { - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); // * 55 minutes ago (HEAD -> main) // |\ @@ -30,15 +28,15 @@ public void OneTimeSetUp() // |/ // A 58 minutes ago - fixture.MakeACommit("A"); - fixture.BranchTo("feature/foo"); - fixture.MakeACommit("B"); - fixture.ApplyTag("0.0.0-foo.4"); - fixture.MergeTo("main"); + this.fixture.MakeACommit("A"); + this.fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("B"); + this.fixture.ApplyTag("0.0.0-foo.4"); + this.fixture.MergeTo("main"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.5+1")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.0-foo.5+1")] @@ -150,7 +148,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.5+1")] @@ -264,7 +262,7 @@ public string GetVersionWithLabelNullAndPreventIncrementOfMergedBranchVersionFal .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+2")] @@ -377,7 +375,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+2")] @@ -491,7 +489,7 @@ public string GetVersionWithEmptyLabelAndPreventIncrementOfMergedBranchVersionFa .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.5+1")] @@ -604,7 +602,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.5+1")] @@ -718,7 +716,7 @@ public string GetVersionWithLabelFooAndPreventIncrementOfMergedBranchVersionFals .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+2")] @@ -831,7 +829,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+2")] @@ -945,7 +943,7 @@ public string GetVersionWithLabelBarAndPreventIncrementOfMergedBranchVersionFals .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsStable.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsStable.cs index 854811f409..a27137dbd9 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsStable.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsStable.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -22,7 +20,7 @@ public class GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsStab [OneTimeSetUp] public void OneTimeSetUp() { - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); // * 55 minutes ago (HEAD -> main) // |\ @@ -30,15 +28,15 @@ public void OneTimeSetUp() // |/ // A 58 minutes ago - fixture.MakeACommit("A"); - fixture.BranchTo("feature/foo"); - fixture.MakeACommit("B"); - fixture.ApplyTag("0.0.0"); - fixture.MergeTo("main"); + this.fixture.MakeACommit("A"); + this.fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("B"); + this.fixture.ApplyTag("0.0.0"); + this.fixture.MergeTo("main"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+1")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.1-1+1")] @@ -150,7 +148,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+1")] @@ -264,7 +262,7 @@ public string GetVersionWithLabelNullAndPreventIncrementOfMergedBranchVersionFal .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+1")] @@ -377,7 +375,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+1")] @@ -491,7 +489,7 @@ public string GetVersionWithEmptyLabelAndPreventIncrementOfMergedBranchVersionFa .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.1+1")] @@ -604,7 +602,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.1+1")] @@ -718,7 +716,7 @@ public string GetVersionWithLabelFooAndPreventIncrementOfMergedBranchVersionFals .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.1+1")] @@ -831,7 +829,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.1+1")] @@ -945,7 +943,7 @@ public string GetVersionWithLabelBarAndPreventIncrementOfMergedBranchVersionFals .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWithOneCommitBranchedToFeatureWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWithOneCommitBranchedToFeatureWhen.cs index 28c9ea8f94..bebea6721b 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWithOneCommitBranchedToFeatureWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWithOneCommitBranchedToFeatureWhen.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -29,20 +27,20 @@ public void OneTimeSetUp() // |/ // A 58 minutes ago - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.BranchTo("feature/foo"); - fixture.MakeACommit("B"); - fixture.Checkout("main"); - fixture.MakeACommit("C"); - fixture.Checkout("feature/foo"); - fixture.MergeTo("main", removeBranchAfterMerging: true); - fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("A"); + this.fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("B"); + this.fixture.Checkout("main"); + this.fixture.MakeACommit("C"); + this.fixture.Checkout("feature/foo"); + this.fixture.MergeTo("main", removeBranchAfterMerging: true); + this.fixture.BranchTo("feature/foo"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-4+0")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.2-1+0")] @@ -155,7 +153,7 @@ public string GetVersionWithLabelNullOnMain(IncrementStrategy incrementOnMain, I .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-4+0")] @@ -270,7 +268,7 @@ public string GetVersionWithLabelNullAndPreventIncrementOfMergedBranchVersionFal .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-4+0")] @@ -384,7 +382,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-4+0")] @@ -499,7 +497,7 @@ public string GetVersionWithEmptyLabelAndPreventIncrementOfMergedBranchVersionFa .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.4+0")] @@ -613,7 +611,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.4+0")] @@ -728,7 +726,7 @@ public string GetVersionWithLabelFooAndPreventIncrementOfMergedBranchVersionFals .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.4+0")] @@ -842,7 +840,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.4+0")] @@ -957,7 +955,7 @@ public string GetVersionWithLabelBarAndPreventIncrementOfMergedBranchVersionFals .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhen.cs index 76c4839581..605c9a5bb7 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhen.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -21,13 +19,13 @@ public void OneTimeSetUp() { // A 59 minutes ago (HEAD -> feature/foo) - fixture = new EmptyRepositoryFixture("feature/foo"); + this.fixture = new EmptyRepositoryFixture("feature/foo"); - fixture.MakeACommit("A"); + this.fixture.MakeACommit("A"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+1")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.0.1-1+1")] @@ -54,7 +52,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessageMajor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessageMajor.cs index 25f500873d..65fad81307 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessageMajor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessageMajor.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -21,13 +19,13 @@ public void OneTimeSetUp() { // A 59 minutes ago (HEAD -> feature/foo) - fixture = new EmptyRepositoryFixture("feature/foo"); + this.fixture = new EmptyRepositoryFixture("feature/foo"); - fixture.MakeACommit("A +semver: major"); + this.fixture.MakeACommit("A +semver: major"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "1.0.0-1+1")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "1.0.0-1+1")] @@ -54,7 +52,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+1")] @@ -83,7 +81,7 @@ public string GetVersionWithDisabledMessageIncrementing(IncrementStrategy increm .WithCommitMessageIncrementing(CommitMessageIncrementMode.Disabled) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+1")] @@ -112,7 +110,7 @@ public string GetVersionWithMergeMessageOnlyIncrementing(IncrementStrategy incre .WithCommitMessageIncrementing(CommitMessageIncrementMode.MergeMessageOnly) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessageMinor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessageMinor.cs index aa346a999a..93aa14d723 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessageMinor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessageMinor.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -21,13 +19,13 @@ public void OneTimeSetUp() { // A 59 minutes ago (HEAD -> feature/foo) - fixture = new EmptyRepositoryFixture("feature/foo"); + this.fixture = new EmptyRepositoryFixture("feature/foo"); - fixture.MakeACommit("A +semver: minor"); + this.fixture.MakeACommit("A +semver: minor"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.1.0-1+1")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.1.0-1+1")] @@ -54,7 +52,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+1")] @@ -83,7 +81,7 @@ public string GetVersionWithDisabledMessageIncrementing(IncrementStrategy increm .WithCommitMessageIncrementing(CommitMessageIncrementMode.Disabled) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+1")] @@ -112,7 +110,7 @@ public string GetVersionWithMergeMessageOnlyIncrementing(IncrementStrategy incre .WithCommitMessageIncrementing(CommitMessageIncrementMode.MergeMessageOnly) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessagePatch.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessagePatch.cs index ccdf753b23..3099211ba2 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessagePatch.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessagePatch.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -21,13 +19,13 @@ public void OneTimeSetUp() { // A 59 minutes ago (HEAD -> feature/foo) - fixture = new EmptyRepositoryFixture("feature/foo"); + this.fixture = new EmptyRepositoryFixture("feature/foo"); - fixture.MakeACommit("A +semver: patch"); + this.fixture.MakeACommit("A +semver: patch"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.1-1+1")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.0.1-1+1")] @@ -54,7 +52,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+1")] @@ -83,7 +81,7 @@ public string GetVersionWithDisabledMessageIncrementing(IncrementStrategy increm .WithCommitMessageIncrementing(CommitMessageIncrementMode.Disabled) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+1")] @@ -112,7 +110,7 @@ public string GetVersionWithMergeMessageOnlyIncrementing(IncrementStrategy incre .WithCommitMessageIncrementing(CommitMessageIncrementMode.MergeMessageOnly) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreRelease.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreRelease.cs index 17c7fddc99..765b92d30c 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreRelease.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreRelease.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -23,14 +21,14 @@ public void OneTimeSetUp() { // A 59 minutes ago (HEAD -> feature/foo) (tag 0.0.0-4) - fixture = new EmptyRepositoryFixture("feature/foo"); + this.fixture = new EmptyRepositoryFixture("feature/foo"); - fixture.MakeACommit("A"); - fixture.ApplyTag("0.0.0-4"); + this.fixture.MakeACommit("A"); + this.fixture.ApplyTag("0.0.0-4"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-4")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.0.0-4")] @@ -57,7 +55,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-5+0")] @@ -85,7 +83,7 @@ public string GetVersionWithPreventIncrementWhenCurrentCommitTaggedFalse(Increme .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label).WithPreventIncrementWhenCurrentCommitTagged(false)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreReleaseBar.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreReleaseBar.cs index 0ef713c59c..2f155fbdb2 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreReleaseBar.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreReleaseBar.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -23,14 +21,14 @@ public void OneTimeSetUp() { // A 59 minutes ago (HEAD -> feature/foo) (tag 0.0.0-bar) - fixture = new EmptyRepositoryFixture("feature/foo"); + this.fixture = new EmptyRepositoryFixture("feature/foo"); - fixture.MakeACommit("A"); - fixture.ApplyTag("0.0.0-bar"); + this.fixture.MakeACommit("A"); + this.fixture.ApplyTag("0.0.0-bar"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.0.0-bar")] @@ -57,7 +55,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar+0")] @@ -85,7 +83,7 @@ public string GetVersionWithPreventIncrementWhenCurrentCommitTaggedFalse(Increme .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label).WithPreventIncrementWhenCurrentCommitTagged(false)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreReleaseFoo.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreReleaseFoo.cs index 1765d86cad..f657e55cfd 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreReleaseFoo.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreReleaseFoo.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -23,14 +21,14 @@ public void OneTimeSetUp() { // A 59 minutes ago (HEAD -> feature/foo) (tag 0.0.0-foo.4) - fixture = new EmptyRepositoryFixture("feature/foo"); + this.fixture = new EmptyRepositoryFixture("feature/foo"); - fixture.MakeACommit("A"); - fixture.ApplyTag("0.0.0-foo.4"); + this.fixture.MakeACommit("A"); + this.fixture.ApplyTag("0.0.0-foo.4"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.4")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.0.0-foo.4")] @@ -57,7 +55,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.5+0")] @@ -85,7 +83,7 @@ public string GetVersionWithPreventIncrementWhenCurrentCommitTaggedFalse(Increme .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label).WithPreventIncrementWhenCurrentCommitTagged(false)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsStable.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsStable.cs index b9f5b03937..81cbe0c9f1 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsStable.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsStable.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -23,14 +21,14 @@ public void OneTimeSetUp() { // A 59 minutes ago (HEAD -> feature/foo) (tag 0.0.0) - fixture = new EmptyRepositoryFixture("feature/foo"); + this.fixture = new EmptyRepositoryFixture("feature/foo"); - fixture.MakeACommit("A"); - fixture.ApplyTag("0.0.0"); + this.fixture.MakeACommit("A"); + this.fixture.ApplyTag("0.0.0"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.0.0")] @@ -57,7 +55,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+0")] @@ -85,7 +83,7 @@ public string GetVersionWithPreventIncrementWhenCurrentCommitTaggedFalse(Increme .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label).WithPreventIncrementWhenCurrentCommitTagged(false)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsBranchedFromMainWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsBranchedFromMainWhen.cs index 7883bb8bd2..558eff193a 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsBranchedFromMainWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsBranchedFromMainWhen.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -27,17 +25,17 @@ public void OneTimeSetUp() // B 47 minutes ago // A 51 minutes ago (main) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.BranchTo("feature/foo"); - fixture.MakeACommit("B"); - fixture.MakeACommit("C"); - fixture.MakeACommit("D"); + this.fixture.MakeACommit("A"); + this.fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("B"); + this.fixture.MakeACommit("C"); + this.fixture.MakeACommit("D"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+3")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.1-1+3")] @@ -129,7 +127,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+3")] @@ -222,7 +220,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+3")] @@ -315,7 +313,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsMergedToMainWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsMergedToMainWhen.cs index 2b190b7282..dec395e15e 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsMergedToMainWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsMergedToMainWhen.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -30,18 +28,18 @@ public void OneTimeSetUp() // |/ // A 58 minutes ago - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.BranchTo("feature/foo"); - fixture.MakeACommit("B"); - fixture.MakeACommit("C"); - fixture.MakeACommit("D"); - fixture.MergeTo("main"); + this.fixture.MakeACommit("A"); + this.fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("B"); + this.fixture.MakeACommit("C"); + this.fixture.MakeACommit("D"); + this.fixture.MergeTo("main"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+4")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.1-1+4")] @@ -154,7 +152,7 @@ public string GetVersionWithLabelNullOnMain(IncrementStrategy incrementOnMain, I .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+4")] @@ -269,7 +267,7 @@ public string GetVersionWithLabelNullAndPreventIncrementOfMergedBranchVersionFal .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+4")] @@ -383,7 +381,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+4")] @@ -498,7 +496,7 @@ public string GetVersionWithEmptyLabelAndPreventIncrementOfMergedBranchVersionFa .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+4")] @@ -612,7 +610,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+4")] @@ -727,7 +725,7 @@ public string GetVersionWithLabelFooAndPreventIncrementOfMergedBranchVersionFals .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+4")] @@ -841,7 +839,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+4")] @@ -956,7 +954,7 @@ public string GetVersionWithLabelBarAndPreventIncrementOfMergedBranchVersionFals .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsWhen.cs index 540bde6834..20c68e6c94 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsWhen.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -25,15 +23,15 @@ public void OneTimeSetUp() // B 58 minutes ago // A 59 minutes ago - fixture = new EmptyRepositoryFixture("feature/foo"); + this.fixture = new EmptyRepositoryFixture("feature/foo"); - fixture.MakeACommit("A"); - fixture.MakeACommit("B"); - fixture.MakeACommit("C"); + this.fixture.MakeACommit("A"); + this.fixture.MakeACommit("B"); + this.fixture.MakeACommit("C"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+3")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.0.1-1+3")] @@ -60,7 +58,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsBranchedFromMainWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsBranchedFromMainWhen.cs index d7887d9be8..583414c706 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsBranchedFromMainWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsBranchedFromMainWhen.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -26,16 +24,16 @@ public void OneTimeSetUp() // B 47 minutes ago // A 51 minutes ago (main) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.BranchTo("feature/foo"); - fixture.MakeACommit("B"); - fixture.MakeACommit("C"); + this.fixture.MakeACommit("A"); + this.fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("B"); + this.fixture.MakeACommit("C"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+2")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.1-1+2")] @@ -127,7 +125,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+2")] @@ -220,7 +218,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+2")] @@ -313,7 +311,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsMergedToMainWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsMergedToMainWhen.cs index 18458da0f6..769c575a5a 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsMergedToMainWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsMergedToMainWhen.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -29,17 +27,17 @@ public void OneTimeSetUp() // |/ // A 58 minutes ago - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.BranchTo("feature/foo"); - fixture.MakeACommit("B"); - fixture.MakeACommit("C"); - fixture.MergeTo("main"); + this.fixture.MakeACommit("A"); + this.fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("B"); + this.fixture.MakeACommit("C"); + this.fixture.MergeTo("main"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+3")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.1-1+3")] @@ -152,7 +150,7 @@ public string GetVersionWithLabelNullOnMain(IncrementStrategy incrementOnMain, I .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+3")] @@ -267,7 +265,7 @@ public string GetVersionWithLabelNullAndPreventIncrementOfMergedBranchVersionFal .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+3")] @@ -381,7 +379,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+3")] @@ -496,7 +494,7 @@ public string GetVersionWithEmptyLabelAndPreventIncrementOfMergedBranchVersionFa .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+3")] @@ -610,7 +608,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+3")] @@ -725,7 +723,7 @@ public string GetVersionWithLabelFooAndPreventIncrementOfMergedBranchVersionFals .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+3")] @@ -839,7 +837,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+3")] @@ -954,7 +952,7 @@ public string GetVersionWithLabelBarAndPreventIncrementOfMergedBranchVersionFals .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreRelease.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreRelease.cs index e1b1807167..4f756fe8b7 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreRelease.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreRelease.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -24,15 +22,15 @@ public void OneTimeSetUp() // B 58 minutes ago (HEAD -> feature/foo) // A 59 minutes ago (tag 0.0.3-4) - fixture = new EmptyRepositoryFixture("feature/foo"); + this.fixture = new EmptyRepositoryFixture("feature/foo"); - fixture.MakeACommit("A"); - fixture.ApplyTag("0.0.3-4"); - fixture.MakeACommit("B"); + this.fixture.MakeACommit("A"); + this.fixture.ApplyTag("0.0.3-4"); + this.fixture.MakeACommit("B"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.3-5+1")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.0.3-5+1")] @@ -59,7 +57,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseBar.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseBar.cs index d83467f733..3896721234 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseBar.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseBar.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -24,15 +22,15 @@ public void OneTimeSetUp() // B 58 minutes ago (HEAD -> feature/foo) // A 59 minutes ago (tag 0.0.3-bar) - fixture = new EmptyRepositoryFixture("feature/foo"); + this.fixture = new EmptyRepositoryFixture("feature/foo"); - fixture.MakeACommit("A"); - fixture.ApplyTag("0.0.3-bar"); - fixture.MakeACommit("B"); + this.fixture.MakeACommit("A"); + this.fixture.ApplyTag("0.0.3-bar"); + this.fixture.MakeACommit("B"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.3-bar+1")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.0.3-bar+1")] @@ -59,7 +57,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseFoo.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseFoo.cs index 29ddbb46a8..4881852676 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseFoo.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseFoo.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -24,15 +22,15 @@ public void OneTimeSetUp() // B 58 minutes ago (HEAD -> feature/foo) // A 59 minutes ago (tag 0.0.3-foo.4) - fixture = new EmptyRepositoryFixture("feature/foo"); + this.fixture = new EmptyRepositoryFixture("feature/foo"); - fixture.MakeACommit("A"); - fixture.ApplyTag("0.0.3-foo.4"); - fixture.MakeACommit("B"); + this.fixture.MakeACommit("A"); + this.fixture.ApplyTag("0.0.3-foo.4"); + this.fixture.MakeACommit("B"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.3-foo.5+1")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.0.3-foo.5+1")] @@ -59,7 +57,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhen.cs index 812e314d6d..6a9f41728f 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhen.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -24,14 +22,14 @@ public void OneTimeSetUp() { // A 58 minutes ago (HEAD -> feature/foo, main) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("A"); + this.fixture.BranchTo("feature/foo"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+0")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.1-1+0")] @@ -143,7 +141,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+0")] @@ -257,7 +255,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+0")] @@ -370,7 +368,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+0")] @@ -483,7 +481,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessageMajor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessageMajor.cs index fbc2b8d54d..0a8260842a 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessageMajor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessageMajor.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -24,14 +22,14 @@ public void OneTimeSetUp() { // A 58 minutes ago (HEAD -> feature/foo, main) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A +semver: major"); - fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("A +semver: major"); + this.fixture.BranchTo("feature/foo"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "1.0.0-2+0")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "1.0.1-1+0")] @@ -143,7 +141,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+0")] @@ -258,7 +256,7 @@ public string GetVersionWithNoLabelAndDisabledMessageIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+0")] @@ -373,7 +371,7 @@ public string GetVersionWithNoLabelAndMergeMessageOnlyIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "1.0.0-2+0")] @@ -487,7 +485,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+0")] @@ -602,7 +600,7 @@ public string GetVersionWithEmptyLabelAndDisabledMessageIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+0")] @@ -717,7 +715,7 @@ public string GetVersionWithEmptyLabelAndMergeMessageOnlyIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "1.0.0-foo.2+0")] @@ -830,7 +828,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+0")] @@ -945,7 +943,7 @@ public string GetVersionWithLabelFooAndDisabledMergeMessageIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+0")] @@ -1060,7 +1058,7 @@ public string GetVersionWithLabelFooAndMergeMessageOnlyIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "1.0.0-bar.2+0")] @@ -1173,7 +1171,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+0")] @@ -1288,7 +1286,7 @@ public string GetVersionWithLabelBarAndDisabledMergeMessageIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+0")] @@ -1403,7 +1401,7 @@ public string GetVersionWithLabelBarAndMergeMessageOnlyIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessageMinor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessageMinor.cs index f8fa228bd1..96417a0028 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessageMinor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessageMinor.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -24,14 +22,14 @@ public void OneTimeSetUp() { // A 58 minutes ago (HEAD -> feature/foo, main) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A +semver: minor"); - fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("A +semver: minor"); + this.fixture.BranchTo("feature/foo"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.1.0-2+0")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.1.1-1+0")] @@ -143,7 +141,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+0")] @@ -258,7 +256,7 @@ public string GetVersionWithNoLabelAndDisabledMessageIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+0")] @@ -373,7 +371,7 @@ public string GetVersionWithNoLabelAndMergeMessageOnlyIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.1.0-2+0")] @@ -487,7 +485,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+0")] @@ -602,7 +600,7 @@ public string GetVersionWithEmptyLabelAndDisabledMessageIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+0")] @@ -717,7 +715,7 @@ public string GetVersionWithEmptyLabelAndMergeMessageOnlyIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.1.0-foo.2+0")] @@ -830,7 +828,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+0")] @@ -945,7 +943,7 @@ public string GetVersionWithLabelFooAndDisabledMergeMessageIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+0")] @@ -1060,7 +1058,7 @@ public string GetVersionWithLabelFooAndMergeMessageOnlyIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.1.0-bar.2+0")] @@ -1173,7 +1171,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+0")] @@ -1288,7 +1286,7 @@ public string GetVersionWithLabelBarAndDisabledMergeMessageIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+0")] @@ -1403,7 +1401,7 @@ public string GetVersionWithLabelBarAndMergeMessageOnlyIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessagePatch.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessagePatch.cs index a174d7294b..d7afc7840b 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessagePatch.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessagePatch.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -24,14 +22,14 @@ public void OneTimeSetUp() { // A 58 minutes ago (HEAD -> feature/foo, main) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A +semver: patch"); - fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("A +semver: patch"); + this.fixture.BranchTo("feature/foo"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.1-2+0")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.2-1+0")] @@ -143,7 +141,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+0")] @@ -258,7 +256,7 @@ public string GetVersionWithNoLabelAndDisabledMessageIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+0")] @@ -373,7 +371,7 @@ public string GetVersionWithNoLabelAndMergeMessageOnlyIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.1-2+0")] @@ -486,7 +484,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+0")] @@ -601,7 +599,7 @@ public string GetVersionWithEmptyLabelAndDisabledMessageIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+0")] @@ -716,7 +714,7 @@ public string GetVersionWithEmptyLabelAndMergeMessageOnlyIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.1-foo.2+0")] @@ -829,7 +827,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+0")] @@ -944,7 +942,7 @@ public string GetVersionWithLabelFooAndDisabledMergeMessageIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+0")] @@ -1059,7 +1057,7 @@ public string GetVersionWithLabelFooAndMergeMessageOnlyIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.1-bar.2+0")] @@ -1172,7 +1170,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+0")] @@ -1287,7 +1285,7 @@ public string GetVersionWithLabelBarAndDisabledMergeMessageIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+0")] @@ -1402,7 +1400,7 @@ public string GetVersionWithLabelBarAndMergeMessageOnlyIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreRelease.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreRelease.cs index 0007496360..12ee049cd0 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreRelease.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreRelease.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -24,15 +22,15 @@ public void OneTimeSetUp() { // A 58 minutes ago (HEAD -> feature/foo, main) (tag 0.0.0-4) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.ApplyTag("0.0.0-4"); - fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("A"); + this.fixture.ApplyTag("0.0.0-4"); + this.fixture.BranchTo("feature/foo"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-4")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.0-4")] @@ -144,7 +142,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-5+0")] @@ -258,7 +256,7 @@ public string GetVersionWithNoLabelOnMainAndPreventIncrementWhenCurrentCommitTag .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label).WithPreventIncrementWhenCurrentCommitTagged(false)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-4")] @@ -371,7 +369,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-5+0")] @@ -485,7 +483,7 @@ public string GetVersionWithEmptyLabelOnMainAndPreventIncrementWhenCurrentCommit .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label).WithPreventIncrementWhenCurrentCommitTagged(false)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-4")] @@ -598,7 +596,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+0")] @@ -712,7 +710,7 @@ public string GetVersionWithLabelFooOnMainAndPreventIncrementWhenCurrentCommitTa .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label).WithPreventIncrementWhenCurrentCommitTagged(false)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-4")] @@ -825,7 +823,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+0")] @@ -939,7 +937,7 @@ public string GetVersionWithLabelBarOnMainAndPreventIncrementWhenCurrentCommitTa .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label).WithPreventIncrementWhenCurrentCommitTagged(false)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreReleaseBar.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreReleaseBar.cs index 2abdb7b357..f0221c5b10 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreReleaseBar.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreReleaseBar.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -24,15 +22,15 @@ public void OneTimeSetUp() { // A 58 minutes ago (HEAD -> feature/foo, main) (tag 0.0.0-bar) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.ApplyTag("0.0.0-bar"); - fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("A"); + this.fixture.ApplyTag("0.0.0-bar"); + this.fixture.BranchTo("feature/foo"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.0-bar")] @@ -144,7 +142,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar+0")] @@ -258,7 +256,7 @@ public string GetVersionWithNoLabelOnMainAndPreventIncrementWhenCurrentCommitTag .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label).WithPreventIncrementWhenCurrentCommitTagged(false)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar")] @@ -371,7 +369,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+0")] @@ -485,7 +483,7 @@ public string GetVersionWithEmptyLabelOnMainAndPreventIncrementWhenCurrentCommit .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label).WithPreventIncrementWhenCurrentCommitTagged(false)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar")] @@ -598,7 +596,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+0")] @@ -712,7 +710,7 @@ public string GetVersionWithLabelFooOnMainAndPreventIncrementWhenCurrentCommitTa .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label).WithPreventIncrementWhenCurrentCommitTagged(false)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar")] @@ -825,7 +823,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar+0")] @@ -939,7 +937,7 @@ public string GetVersionWithLabelBarOnMainAndPreventIncrementWhenCurrentCommitTa .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label).WithPreventIncrementWhenCurrentCommitTagged(false)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreReleaseFoo.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreReleaseFoo.cs index 7ceb1328e3..94db35d2b1 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreReleaseFoo.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreReleaseFoo.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -24,15 +22,15 @@ public void OneTimeSetUp() { // A 58 minutes ago (HEAD -> feature/foo, main) (tag 0.0.0-foo.4) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.ApplyTag("0.0.0-foo.4"); - fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("A"); + this.fixture.ApplyTag("0.0.0-foo.4"); + this.fixture.BranchTo("feature/foo"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.4")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.0-foo.4")] @@ -144,7 +142,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.5+0")] @@ -258,7 +256,7 @@ public string GetVersionWithNoLabelOnMainAndPreventIncrementWhenCurrentCommitTag .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label).WithPreventIncrementWhenCurrentCommitTagged(false)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.4")] @@ -371,7 +369,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+0")] @@ -485,7 +483,7 @@ public string GetVersionWithEmptyLabelOnMainAndPreventIncrementWhenCurrentCommit .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label).WithPreventIncrementWhenCurrentCommitTagged(false)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.4")] @@ -598,7 +596,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.5+0")] @@ -712,7 +710,7 @@ public string GetVersionWithLabelFooOnMainAndPreventIncrementWhenCurrentCommitTa .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label).WithPreventIncrementWhenCurrentCommitTagged(false)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.4")] @@ -825,7 +823,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+0")] @@ -939,7 +937,7 @@ public string GetVersionWithLabelBarOnMainAndPreventIncrementWhenCurrentCommitTa .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label).WithPreventIncrementWhenCurrentCommitTagged(false)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsStable.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsStable.cs index 470c506735..648c010763 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsStable.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsStable.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -24,15 +22,15 @@ public void OneTimeSetUp() { // A 58 minutes ago (HEAD -> feature/foo, main) (tag 0.0.0) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.ApplyTag("0.0.0"); - fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("A"); + this.fixture.ApplyTag("0.0.0"); + this.fixture.BranchTo("feature/foo"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.0")] @@ -144,7 +142,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+0")] @@ -258,7 +256,7 @@ public string GetVersionWithNoLabelOnMainAndPreventIncrementWhenCurrentCommitTag .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label).WithPreventIncrementWhenCurrentCommitTagged(false)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0")] @@ -371,7 +369,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+0")] @@ -485,7 +483,7 @@ public string GetVersionWithEmptyLabelOnMainAndPreventIncrementWhenCurrentCommit .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label).WithPreventIncrementWhenCurrentCommitTagged(false)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0")] @@ -598,7 +596,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.1+0")] @@ -712,7 +710,7 @@ public string GetVersionWithLabelFooOnMainAndPreventIncrementWhenCurrentCommitTa .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label).WithPreventIncrementWhenCurrentCommitTagged(false)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0")] @@ -825,7 +823,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.1+0")] @@ -939,7 +937,7 @@ public string GetVersionWithLabelBarOnMainAndPreventIncrementWhenCurrentCommitTa .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label).WithPreventIncrementWhenCurrentCommitTagged(false)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhen.cs index d9e4e761f9..1db4a02fca 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhen.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -21,13 +19,13 @@ public void OneTimeSetUp() { // A 59 minutes ago (HEAD -> main) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); + this.fixture.MakeACommit("A"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+1")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.0.1-1+1")] @@ -54,7 +52,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("main", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessageMajor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessageMajor.cs index fe2a983797..f7fe644668 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessageMajor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessageMajor.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -21,13 +19,13 @@ public void OneTimeSetUp() { // A 59 minutes ago (HEAD -> main) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A +semver: major"); + this.fixture.MakeACommit("A +semver: major"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "1.0.0-1+1")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "1.0.0-1+1")] @@ -54,7 +52,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("main", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+1")] @@ -83,7 +81,7 @@ public string GetVersionWithDisabledMessageIncrementing(IncrementStrategy increm .WithCommitMessageIncrementing(CommitMessageIncrementMode.Disabled) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+1")] @@ -112,7 +110,7 @@ public string GetVersionWithMergeMessageOnlyIncrementing(IncrementStrategy incre .WithCommitMessageIncrementing(CommitMessageIncrementMode.MergeMessageOnly) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessageMinor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessageMinor.cs index c138a0a3e2..1f7a84197e 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessageMinor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessageMinor.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -21,13 +19,13 @@ public void OneTimeSetUp() { // A 59 minutes ago (HEAD -> main) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A +semver: minor"); + this.fixture.MakeACommit("A +semver: minor"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.1.0-1+1")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.1.0-1+1")] @@ -54,7 +52,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("main", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+1")] @@ -83,7 +81,7 @@ public string GetVersionWithDisabledMessageIncrementing(IncrementStrategy increm .WithCommitMessageIncrementing(CommitMessageIncrementMode.Disabled) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+1")] @@ -112,7 +110,7 @@ public string GetVersionWithMergeMessageOnlyIncrementing(IncrementStrategy incre .WithCommitMessageIncrementing(CommitMessageIncrementMode.MergeMessageOnly) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessagePatch.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessagePatch.cs index ff12dbe0ef..095d7fca39 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessagePatch.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessagePatch.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -21,13 +19,13 @@ public void OneTimeSetUp() { // A 59 minutes ago (HEAD -> main) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A +semver: patch"); + this.fixture.MakeACommit("A +semver: patch"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.1-1+1")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.0.1-1+1")] @@ -54,7 +52,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("main", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+1")] @@ -83,7 +81,7 @@ public string GetVersionWithDisabledMessageIncrementing(IncrementStrategy increm .WithCommitMessageIncrementing(CommitMessageIncrementMode.Disabled) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+1")] @@ -112,7 +110,7 @@ public string GetVersionWithMergeMessageOnlyIncrementing(IncrementStrategy incre .WithCommitMessageIncrementing(CommitMessageIncrementMode.MergeMessageOnly) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreRelease.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreRelease.cs index 31fbbf6d25..9ef8d7c561 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreRelease.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreRelease.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -21,14 +19,14 @@ public void OneTimeSetUp() { // A 59 minutes ago (HEAD -> main) (tag 0.0.0-4) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.ApplyTag("0.0.0-4"); + this.fixture.MakeACommit("A"); + this.fixture.ApplyTag("0.0.0-4"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-4")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.0.0-4")] @@ -55,7 +53,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("main", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreReleaseBar.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreReleaseBar.cs index 293eee070a..8c50e81998 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreReleaseBar.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreReleaseBar.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -21,14 +19,14 @@ public void OneTimeSetUp() { // A 59 minutes ago (HEAD -> main) (tag 0.0.0-bar) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.ApplyTag("0.0.0-bar"); + this.fixture.MakeACommit("A"); + this.fixture.ApplyTag("0.0.0-bar"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.0.0-bar")] @@ -55,7 +53,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("main", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreReleaseFoo.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreReleaseFoo.cs index 34ac29009d..539742c239 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreReleaseFoo.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreReleaseFoo.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -21,14 +19,14 @@ public void OneTimeSetUp() { // A 59 minutes ago (HEAD -> main) (tag 0.0.0-foo.4) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.ApplyTag("0.0.0-foo.4"); + this.fixture.MakeACommit("A"); + this.fixture.ApplyTag("0.0.0-foo.4"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.4")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.0.0-foo.4")] @@ -55,7 +53,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("main", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsStable.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsStable.cs index 15e889503c..d9dc4fe9bc 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsStable.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsStable.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -21,14 +19,14 @@ public void OneTimeSetUp() { // A 59 minutes ago (HEAD -> main) (tag 0.0.0) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.ApplyTag("0.0.0"); + this.fixture.MakeACommit("A"); + this.fixture.ApplyTag("0.0.0"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.0.0")] @@ -55,7 +53,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("main", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithThreeCommitsWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithThreeCommitsWhen.cs index a5d6560d08..50c8a16464 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithThreeCommitsWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithThreeCommitsWhen.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -23,15 +21,15 @@ public void OneTimeSetUp() // B 58 minutes ago // A 59 minutes ago - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.MakeACommit("B"); - fixture.MakeACommit("C"); + this.fixture.MakeACommit("A"); + this.fixture.MakeACommit("B"); + this.fixture.MakeACommit("C"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-3+1")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.0.3-1+1")] @@ -58,7 +56,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("main", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhen.cs index fdfc174ffe..e32ee19e4e 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhen.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -25,15 +23,15 @@ public void OneTimeSetUp() // B 54 minutes ago (main) (HEAD -> feature/foo) // A 56 minutes ago - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.MakeACommit("B"); - fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("A"); + this.fixture.MakeACommit("B"); + this.fixture.BranchTo("feature/foo"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-3+0")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.1-1+0")] @@ -145,7 +143,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-3+0")] @@ -258,7 +256,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.3+0")] @@ -371,7 +369,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.3+0")] @@ -484,7 +482,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessageMajor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessageMajor.cs index c193e8470f..f43c099d58 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessageMajor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessageMajor.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -25,15 +23,15 @@ public void OneTimeSetUp() // B 54 minutes ago (main) (HEAD -> feature/foo) // A 56 minutes ago - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A +semver: major"); - fixture.MakeACommit("B"); - fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("A +semver: major"); + this.fixture.MakeACommit("B"); + this.fixture.BranchTo("feature/foo"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "1.0.0-3+0")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "1.0.1-1+0")] @@ -145,7 +143,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-3+0")] @@ -259,7 +257,7 @@ public string GetVersionWithNoLabelAndDisabledMessageIncrementingOnMain(Incremen ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-3+0")] @@ -373,7 +371,7 @@ public string GetVersionWithNoLabelAndMergeMessageOnlyIncrementingOnMain(Increme ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "1.0.0-3+0")] @@ -486,7 +484,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-3+0")] @@ -602,7 +600,7 @@ public string GetVersionWithEmptyLabelAndDisabledMessageIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-3+0")] @@ -718,7 +716,7 @@ public string GetVersionWithEmptyLabelAndMergeMessageOnlyIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "1.0.0-foo.3+0")] @@ -831,7 +829,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.3+0")] @@ -946,7 +944,7 @@ public string GetVersionWithLabelFooAndDisabledMessageIncrementModeOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.3+0")] @@ -1062,7 +1060,7 @@ public string GetVersionWithLabelFooAndMergeMessageOnlyIncrementModeOnMain( .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "1.0.0-bar.3+0")] @@ -1175,7 +1173,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.3+0")] @@ -1290,7 +1288,7 @@ public string GetVersionWithLabelBarAndDisabledMessageIncrementModeOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.3+0")] @@ -1405,7 +1403,7 @@ public string GetVersionWithLabelBarAndMergeMessageOnlyIncrementModeOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessageMinor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessageMinor.cs index a657a8dfc3..58ebfe5819 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessageMinor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessageMinor.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -25,15 +23,15 @@ public void OneTimeSetUp() // B 54 minutes ago (main) (HEAD -> feature/foo) // A 56 minutes ago - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A +semver: minor"); - fixture.MakeACommit("B"); - fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("A +semver: minor"); + this.fixture.MakeACommit("B"); + this.fixture.BranchTo("feature/foo"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.1.0-3+0")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.1.1-1+0")] @@ -145,7 +143,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-3+0")] @@ -259,7 +257,7 @@ public string GetVersionWithNoLabelAndDisabledMessageIncrementingOnMain(Incremen ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-3+0")] @@ -373,7 +371,7 @@ public string GetVersionWithNoLabelAndMergeMessageOnlyIncrementingOnMain(Increme ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.1.0-3+0")] @@ -486,7 +484,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-3+0")] @@ -602,7 +600,7 @@ public string GetVersionWithEmptyLabelAndDisabledMessageIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-3+0")] @@ -718,7 +716,7 @@ public string GetVersionWithEmptyLabelAndMergeMessageOnlyIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.1.0-foo.3+0")] @@ -831,7 +829,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.3+0")] @@ -946,7 +944,7 @@ public string GetVersionWithLabelFooAndDisabledMessageIncrementModeOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.3+0")] @@ -1062,7 +1060,7 @@ public string GetVersionWithLabelFooAndMergeMessageOnlyIncrementModeOnMain( .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.1.0-bar.3+0")] @@ -1175,7 +1173,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.3+0")] @@ -1290,7 +1288,7 @@ public string GetVersionWithLabelBarAndDisabledMessageIncrementModeOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.3+0")] @@ -1405,7 +1403,7 @@ public string GetVersionWithLabelBarAndMergeMessageOnlyIncrementModeOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessagePatch.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessagePatch.cs index a5afd1e6aa..b3a89c7d14 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessagePatch.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessagePatch.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -25,15 +23,15 @@ public void OneTimeSetUp() // B 54 minutes ago (main) (HEAD -> feature/foo) // A 56 minutes ago - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A +semver: patch"); - fixture.MakeACommit("B"); - fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("A +semver: patch"); + this.fixture.MakeACommit("B"); + this.fixture.BranchTo("feature/foo"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.1-3+0")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.2-1+0")] @@ -145,7 +143,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-3+0")] @@ -259,7 +257,7 @@ public string GetVersionWithNoLabelAndDisabledMessageIncrementingOnMain(Incremen ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-3+0")] @@ -373,7 +371,7 @@ public string GetVersionWithNoLabelAndMergeMessageOnlyIncrementingOnMain(Increme ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.1-3+0")] @@ -486,7 +484,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-3+0")] @@ -602,7 +600,7 @@ public string GetVersionWithEmptyLabelAndDisabledMessageIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-3+0")] @@ -718,7 +716,7 @@ public string GetVersionWithEmptyLabelAndMergeMessageOnlyIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.1-foo.3+0")] @@ -831,7 +829,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.3+0")] @@ -946,7 +944,7 @@ public string GetVersionWithLabelFooAndDisabledMessageIncrementModeOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.3+0")] @@ -1062,7 +1060,7 @@ public string GetVersionWithLabelFooAndMergeMessageOnlyIncrementModeOnMain( .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.1-bar.3+0")] @@ -1175,7 +1173,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.3+0")] @@ -1290,7 +1288,7 @@ public string GetVersionWithLabelBarAndDisabledMessageIncrementModeOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.3+0")] @@ -1405,7 +1403,7 @@ public string GetVersionWithLabelBarAndMergeMessageOnlyIncrementModeOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreRelease.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreRelease.cs index c72d4ad348..f6a0b67a76 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreRelease.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreRelease.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -25,16 +23,16 @@ public void OneTimeSetUp() // B 54 minutes ago (main) (HEAD -> feature/foo) // A 56 minutes ago (0.0.3-4) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.ApplyTag("0.0.3-4"); - fixture.MakeACommit("B"); - fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("A"); + this.fixture.ApplyTag("0.0.3-4"); + this.fixture.MakeACommit("B"); + this.fixture.BranchTo("feature/foo"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.3-6+0")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.4-1+0")] @@ -146,7 +144,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.3-6+0")] @@ -259,7 +257,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.3-foo.3+0")] @@ -372,7 +370,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.3-bar.3+0")] @@ -485,7 +483,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreReleaseBar.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreReleaseBar.cs index 81acd1b342..b1876d9b9d 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreReleaseBar.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreReleaseBar.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -25,16 +23,16 @@ public void OneTimeSetUp() // B 54 minutes ago (main) (HEAD -> feature/foo) // A 56 minutes ago (0.0.3-bar) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.ApplyTag("0.0.3-bar"); - fixture.MakeACommit("B"); - fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("A"); + this.fixture.ApplyTag("0.0.3-bar"); + this.fixture.MakeACommit("B"); + this.fixture.BranchTo("feature/foo"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.3-bar+0")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.4-bar+0")] @@ -146,7 +144,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.3-3+0")] @@ -259,7 +257,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.3-foo.3+0")] @@ -372,7 +370,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.3-bar+0")] @@ -485,7 +483,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreReleaseFoo.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreReleaseFoo.cs index 40dafb7ea0..4d820bf442 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreReleaseFoo.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreReleaseFoo.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -25,16 +23,16 @@ public void OneTimeSetUp() // B 54 minutes ago (main) (HEAD -> feature/foo) // A 56 minutes ago (0.0.3-foo.4) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.ApplyTag("0.0.3-foo.4"); - fixture.MakeACommit("B"); - fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("A"); + this.fixture.ApplyTag("0.0.3-foo.4"); + this.fixture.MakeACommit("B"); + this.fixture.BranchTo("feature/foo"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.3-foo.6+0")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.4-foo.1+0")] @@ -146,7 +144,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.3-3+0")] @@ -259,7 +257,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.3-foo.6+0")] @@ -372,7 +370,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.3-bar.3+0")] @@ -485,7 +483,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsStable.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsStable.cs index 54cb6d6552..6c12f9a315 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsStable.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsStable.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -25,16 +23,16 @@ public void OneTimeSetUp() // B 54 minutes ago (main) (HEAD -> feature/foo) // A 56 minutes ago (0.0.3) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.ApplyTag("0.0.3"); - fixture.MakeACommit("B"); - fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("A"); + this.fixture.ApplyTag("0.0.3"); + this.fixture.MakeACommit("B"); + this.fixture.BranchTo("feature/foo"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.3-2+0")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.4-1+0")] @@ -146,7 +144,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.3-2+0")] @@ -259,7 +257,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.3-foo.2+0")] @@ -372,7 +370,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.3-bar.2+0")] @@ -485,7 +483,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhen.cs index f4966a63cb..c6cfb92147 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhen.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -22,14 +20,14 @@ public void OneTimeSetUp() // B 58 minutes ago (HEAD -> main) // A 59 minutes ago - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.MakeACommit("B"); + this.fixture.MakeACommit("A"); + this.fixture.MakeACommit("B"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.0.2-1+1")] @@ -56,7 +54,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("main", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessageMajor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessageMajor.cs index 11e2e54c8e..ed79997963 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessageMajor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessageMajor.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -22,14 +20,14 @@ public void OneTimeSetUp() // B 58 minutes ago (HEAD -> main) // A 59 minutes ago - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A +semver: major"); - fixture.MakeACommit("B"); + this.fixture.MakeACommit("A +semver: major"); + this.fixture.MakeACommit("B"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "1.0.0-2+1")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "1.0.1-1+1")] @@ -56,7 +54,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("main", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -85,7 +83,7 @@ public string GetVersionWithDisabledMessageIncrementing(IncrementStrategy increm .WithCommitMessageIncrementing(CommitMessageIncrementMode.Disabled) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -114,7 +112,7 @@ public string GetVersionWithMergeMessageOnlyIncrementing(IncrementStrategy incre .WithCommitMessageIncrementing(CommitMessageIncrementMode.MergeMessageOnly) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessageMinor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessageMinor.cs index 9227937fae..52d0f82df3 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessageMinor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessageMinor.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -22,14 +20,14 @@ public void OneTimeSetUp() // B 58 minutes ago (HEAD -> main) // A 59 minutes ago - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A +semver: minor"); - fixture.MakeACommit("B"); + this.fixture.MakeACommit("A +semver: minor"); + this.fixture.MakeACommit("B"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.1.0-2+1")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.1.1-1+1")] @@ -56,7 +54,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("main", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -85,7 +83,7 @@ public string GetVersionWithDisabledMessageIncrementing(IncrementStrategy increm .WithCommitMessageIncrementing(CommitMessageIncrementMode.Disabled) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -114,7 +112,7 @@ public string GetVersionWithMergeMessageOnlyIncrementing(IncrementStrategy incre .WithCommitMessageIncrementing(CommitMessageIncrementMode.MergeMessageOnly) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessagePatch.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessagePatch.cs index fcc8754ec1..9d8c5cb5e4 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessagePatch.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessagePatch.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -22,14 +20,14 @@ public void OneTimeSetUp() // B 58 minutes ago (HEAD -> main) // A 59 minutes ago - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A +semver: patch"); - fixture.MakeACommit("B"); + this.fixture.MakeACommit("A +semver: patch"); + this.fixture.MakeACommit("B"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.1-2+1")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.0.2-1+1")] @@ -56,7 +54,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("main", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -85,7 +83,7 @@ public string GetVersionWithDisabledMessageIncrementing(IncrementStrategy increm .WithCommitMessageIncrementing(CommitMessageIncrementMode.Disabled) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -114,7 +112,7 @@ public string GetVersionWithMergeMessageOnlyIncrementing(IncrementStrategy incre .WithCommitMessageIncrementing(CommitMessageIncrementMode.MergeMessageOnly) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreRelease.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreRelease.cs index d0e8154163..fe8f1372da 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreRelease.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreRelease.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -22,15 +20,15 @@ public void OneTimeSetUp() // B 58 minutes ago (HEAD -> main) // A 59 minutes ago (tag 0.0.3-4) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.ApplyTag("0.0.3-4"); - fixture.MakeACommit("B"); + this.fixture.MakeACommit("A"); + this.fixture.ApplyTag("0.0.3-4"); + this.fixture.MakeACommit("B"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.3-5+1")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.0.4-1+1")] @@ -57,7 +55,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("main", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseBar.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseBar.cs index 54e2b24c67..27a59e7ea3 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseBar.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseBar.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -22,15 +20,15 @@ public void OneTimeSetUp() // B 58 minutes ago (HEAD -> main) // A 59 minutes ago (tag 0.0.3-bar) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.ApplyTag("0.0.3-bar"); - fixture.MakeACommit("B"); + this.fixture.MakeACommit("A"); + this.fixture.ApplyTag("0.0.3-bar"); + this.fixture.MakeACommit("B"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.3-bar+1")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.0.4-bar+1")] @@ -57,7 +55,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("main", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseFoo.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseFoo.cs index 55cb336422..32e03f49ab 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseFoo.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseFoo.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -22,15 +20,15 @@ public void OneTimeSetUp() // B 58 minutes ago (HEAD -> main) // A 59 minutes ago (tag 0.0.3-foo.4) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.ApplyTag("0.0.3-foo.4"); - fixture.MakeACommit("B"); + this.fixture.MakeACommit("A"); + this.fixture.ApplyTag("0.0.3-foo.4"); + this.fixture.MakeACommit("B"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.3-foo.5+1")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.0.4-foo.1+1")] @@ -57,7 +55,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("main", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsStable.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsStable.cs index 086d5638ec..02767d57f0 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsStable.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsStable.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -22,15 +20,15 @@ public void OneTimeSetUp() // B 58 minutes ago (HEAD -> main) // A 59 minutes ago (tag 0.0.3) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.ApplyTag("0.0.3"); - fixture.MakeACommit("B"); + this.fixture.MakeACommit("A"); + this.fixture.ApplyTag("0.0.3"); + this.fixture.MakeACommit("B"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.3-1+1")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.0.4-1+1")] @@ -57,7 +55,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("main", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessageMajor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessageMajor.cs index 6e0626b22c..e0585a602c 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessageMajor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessageMajor.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -22,14 +20,14 @@ public void OneTimeSetUp() // B 58 minutes ago (HEAD -> main) // A 59 minutes ago - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.MakeACommit("B +semver: major"); + this.fixture.MakeACommit("A"); + this.fixture.MakeACommit("B +semver: major"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "1.0.0-1+1")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "1.0.0-1+1")] @@ -56,7 +54,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("main", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -85,7 +83,7 @@ public string GetVersionWithDisabledMessageIncrementing(IncrementStrategy increm .WithCommitMessageIncrementing(CommitMessageIncrementMode.Disabled) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -114,7 +112,7 @@ public string GetVersionWithMergeMessageOnlyIncrementing(IncrementStrategy incre .WithCommitMessageIncrementing(CommitMessageIncrementMode.MergeMessageOnly) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessageMinor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessageMinor.cs index b3f51bfa51..426887aaa1 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessageMinor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessageMinor.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -22,14 +20,14 @@ public void OneTimeSetUp() // B 58 minutes ago (HEAD -> main) // A 59 minutes ago - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.MakeACommit("B +semver: minor"); + this.fixture.MakeACommit("A"); + this.fixture.MakeACommit("B +semver: minor"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.1.0-1+1")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.1.0-1+1")] @@ -56,7 +54,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("main", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -85,7 +83,7 @@ public string GetVersionWithDisabledMessageIncrementing(IncrementStrategy increm .WithCommitMessageIncrementing(CommitMessageIncrementMode.Disabled) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -114,7 +112,7 @@ public string GetVersionWithMergeMessageOnlyIncrementing(IncrementStrategy incre .WithCommitMessageIncrementing(CommitMessageIncrementMode.MergeMessageOnly) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessagePatch.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessagePatch.cs index 1406795ae2..9d75d815c6 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessagePatch.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessagePatch.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -22,14 +20,14 @@ public void OneTimeSetUp() // B 58 minutes ago (HEAD -> main) // A 59 minutes ago - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.MakeACommit("B +semver: patch"); + this.fixture.MakeACommit("A"); + this.fixture.MakeACommit("B +semver: patch"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.1-1+1")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.0.2-1+1")] @@ -56,7 +54,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("main", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -85,7 +83,7 @@ public string GetVersionWithDisabledMessageIncrementing(IncrementStrategy increm .WithCommitMessageIncrementing(CommitMessageIncrementMode.Disabled) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -114,7 +112,7 @@ public string GetVersionWithMergeMessageOnlyIncrementing(IncrementStrategy incre .WithCommitMessageIncrementing(CommitMessageIncrementMode.MergeMessageOnly) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreRelease.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreRelease.cs index e1cea97f72..8034031997 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreRelease.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreRelease.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -22,15 +20,15 @@ public void OneTimeSetUp() // B 58 minutes ago (HEAD -> main) (tag 0.2.0-4) // A 59 minutes ago - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.MakeACommit("B"); - fixture.ApplyTag("0.2.0-4"); + this.fixture.MakeACommit("A"); + this.fixture.MakeACommit("B"); + this.fixture.ApplyTag("0.2.0-4"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.2.0-4")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.2.0-4")] @@ -57,7 +55,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("main", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreReleaseBar.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreReleaseBar.cs index c07bcc22e4..cc3a49943c 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreReleaseBar.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreReleaseBar.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -22,15 +20,15 @@ public void OneTimeSetUp() // B 58 minutes ago (HEAD -> main) (tag 0.2.0-bar) // A 59 minutes ago - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.MakeACommit("B"); - fixture.ApplyTag("0.2.0-bar"); + this.fixture.MakeACommit("A"); + this.fixture.MakeACommit("B"); + this.fixture.ApplyTag("0.2.0-bar"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.2.0-bar")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.2.0-bar")] @@ -57,7 +55,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("main", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreReleaseFoo.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreReleaseFoo.cs index c64ad215be..76c3365db9 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreReleaseFoo.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreReleaseFoo.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -22,15 +20,15 @@ public void OneTimeSetUp() // B 58 minutes ago (HEAD -> main) (tag 0.2.0-foo.4) // A 59 minutes ago - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.MakeACommit("B"); - fixture.ApplyTag("0.2.0-foo.4"); + this.fixture.MakeACommit("A"); + this.fixture.MakeACommit("B"); + this.fixture.ApplyTag("0.2.0-foo.4"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.2.0-foo.4")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.2.0-foo.4")] @@ -57,7 +55,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("main", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsStable.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsStable.cs index 3be1bc7ecc..fbec5045c5 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsStable.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsStable.cs @@ -1,9 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { @@ -22,15 +20,15 @@ public void OneTimeSetUp() // B 58 minutes ago (HEAD -> main) (tag 0.2.0) // A 59 minutes ago - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.MakeACommit("B"); - fixture.ApplyTag("0.2.0"); + this.fixture.MakeACommit("A"); + this.fixture.MakeACommit("B"); + this.fixture.ApplyTag("0.2.0"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.2.0")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.2.0")] @@ -57,7 +55,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("main", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/MergeMessageTests.cs b/src/GitVersion.Core.Tests/MergeMessageTests.cs index 7cf016e0be..c071e76c6e 100644 --- a/src/GitVersion.Core.Tests/MergeMessageTests.cs +++ b/src/GitVersion.Core.Tests/MergeMessageTests.cs @@ -1,7 +1,6 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; -namespace GitVersion.Core.Tests; +namespace GitVersion.Tests; [TestFixture] public class MergeMessageTests : TestBase @@ -35,10 +34,10 @@ public void EmptyTagPrefix(string? prefix) { // Arrange const string message = "Updated some code."; - var configuration = GitHubFlowConfigurationBuilder.New.WithTagPrefixPattern(prefix).Build(); + var configBuilder = GitHubFlowConfigurationBuilder.New.WithTagPrefixPattern(prefix); // Act - var sut = new MergeMessage(message, configuration); + var sut = new MergeMessage(message, configBuilder.Build()); // Assert sut.TargetBranch.ShouldBeNull(); diff --git a/src/GitVersion.Core.Tests/VersionCalculation/Approved/JsonVersionBuilderTests.Json.approved.txt b/src/GitVersion.Core.Tests/VersionCalculation/Approved/JsonVersionBuilderTests.Json.approved.txt index 24061d9bfe..f3be02dec5 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/Approved/JsonVersionBuilderTests.Json.approved.txt +++ b/src/GitVersion.Core.Tests/VersionCalculation/Approved/JsonVersionBuilderTests.Json.approved.txt @@ -22,6 +22,9 @@ "Sha": "commitSha", "ShortSha": "commitShortSha", "UncommittedChanges": 0, + "VersionSourceDistance": 5, + "VersionSourceIncrement": "Minor", + "VersionSourceSemVer": "1.1.2", "VersionSourceSha": "versionSourceSha", "WeightedPreReleaseNumber": 4 } \ No newline at end of file diff --git a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForFeatureBranch.approved.txt b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForFeatureBranch.approved.txt index 2656e2afe4..9099d56669 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForFeatureBranch.approved.txt +++ b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForFeatureBranch.approved.txt @@ -22,6 +22,9 @@ "Sha": "commitSha", "ShortSha": "commitShortSha", "UncommittedChanges": 0, + "VersionSourceDistance": 5, + "VersionSourceIncrement": "None", + "VersionSourceSemVer": "", "VersionSourceSha": "versionSourceSha", "WeightedPreReleaseNumber": 0 } \ No newline at end of file diff --git a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForFeatureBranchWithCustomAssemblyInfoFormat.approved.txt b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForFeatureBranchWithCustomAssemblyInfoFormat.approved.txt index 55166aebe6..5ade547ffd 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForFeatureBranchWithCustomAssemblyInfoFormat.approved.txt +++ b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForFeatureBranchWithCustomAssemblyInfoFormat.approved.txt @@ -22,6 +22,9 @@ "Sha": "commitSha", "ShortSha": "commitShortSha", "UncommittedChanges": 0, + "VersionSourceDistance": 5, + "VersionSourceIncrement": "None", + "VersionSourceSemVer": "", "VersionSourceSha": "versionSourceSha", "WeightedPreReleaseNumber": 0 } \ No newline at end of file diff --git a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForPreRelease.approved.txt b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForPreRelease.approved.txt index 4cc8738920..c2223c76e4 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForPreRelease.approved.txt +++ b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForPreRelease.approved.txt @@ -22,6 +22,9 @@ "Sha": "commitSha", "ShortSha": "commitShortSha", "UncommittedChanges": 0, + "VersionSourceDistance": 5, + "VersionSourceIncrement": "None", + "VersionSourceSemVer": "", "VersionSourceSha": "versionSourceSha", "WeightedPreReleaseNumber": 4 } \ No newline at end of file diff --git a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForStable.approved.txt b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForStable.approved.txt index 0b9c98e18a..2a04e2f8ea 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForStable.approved.txt +++ b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForStable.approved.txt @@ -22,6 +22,9 @@ "Sha": "commitSha", "ShortSha": "commitShortSha", "UncommittedChanges": 0, + "VersionSourceDistance": 5, + "VersionSourceIncrement": "None", + "VersionSourceSemVer": "", "VersionSourceSha": "versionSourceSha", "WeightedPreReleaseNumber": 0 } \ No newline at end of file diff --git a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForMainBranchWithEmptyLabel.approved.txt b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForMainBranchWithEmptyLabel.approved.txt index f6bd57ef8f..842c7a575e 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForMainBranchWithEmptyLabel.approved.txt +++ b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForMainBranchWithEmptyLabel.approved.txt @@ -22,6 +22,9 @@ "Sha": "commitSha", "ShortSha": "commitShortSha", "UncommittedChanges": 0, + "VersionSourceDistance": 5, + "VersionSourceIncrement": "None", + "VersionSourceSemVer": "", "VersionSourceSha": "versionSourceSha", "WeightedPreReleaseNumber": 55009 } \ No newline at end of file diff --git a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForPreRelease.approved.txt b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForPreRelease.approved.txt index 34ec2c613b..21cdc0addd 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForPreRelease.approved.txt +++ b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForPreRelease.approved.txt @@ -22,6 +22,9 @@ "Sha": "commitSha", "ShortSha": "commitShortSha", "UncommittedChanges": 0, + "VersionSourceDistance": 5, + "VersionSourceIncrement": "None", + "VersionSourceSemVer": "", "VersionSourceSha": "versionSourceSha", "WeightedPreReleaseNumber": 8 } \ No newline at end of file diff --git a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForStable.approved.txt b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForStable.approved.txt index de207b299c..68f060df9c 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForStable.approved.txt +++ b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForStable.approved.txt @@ -22,6 +22,9 @@ "Sha": "commitSha", "ShortSha": "commitShortSha", "UncommittedChanges": 0, + "VersionSourceDistance": 5, + "VersionSourceIncrement": "None", + "VersionSourceSemVer": "", "VersionSourceSha": "versionSourceSha", "WeightedPreReleaseNumber": 5 } \ No newline at end of file diff --git a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForStableWhenCurrentCommitIsTagged.approved.txt b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForStableWhenCurrentCommitIsTagged.approved.txt index 330accf021..a62fe0a46b 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForStableWhenCurrentCommitIsTagged.approved.txt +++ b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForStableWhenCurrentCommitIsTagged.approved.txt @@ -22,6 +22,9 @@ "Sha": "commitSha", "ShortSha": "commitShortSha", "UncommittedChanges": 0, + "VersionSourceDistance": 5, + "VersionSourceIncrement": "None", + "VersionSourceSemVer": "", "VersionSourceSha": "versionSourceSha", "WeightedPreReleaseNumber": 0 } \ No newline at end of file diff --git a/src/GitVersion.Core.Tests/VersionCalculation/EffectiveBranchConfigurationFinderTests.cs b/src/GitVersion.Core.Tests/VersionCalculation/EffectiveBranchConfigurationFinderTests.cs index ba682c3543..bcb18b4694 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/EffectiveBranchConfigurationFinderTests.cs +++ b/src/GitVersion.Core.Tests/VersionCalculation/EffectiveBranchConfigurationFinderTests.cs @@ -1,10 +1,9 @@ -using GitVersion.Common; using GitVersion.Configuration; using GitVersion.Git; using GitVersion.Logging; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.VersionCalculation; +namespace GitVersion.Tests.VersionCalculation; [TestFixture] public class EffectiveBranchConfigurationFinderTests diff --git a/src/GitVersion.Core.Tests/VersionCalculation/JsonVersionBuilderTests.cs b/src/GitVersion.Core.Tests/VersionCalculation/JsonVersionBuilderTests.cs index 3db950eb62..d81f84a5ee 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/JsonVersionBuilderTests.cs +++ b/src/GitVersion.Core.Tests/VersionCalculation/JsonVersionBuilderTests.cs @@ -1,9 +1,8 @@ +using System.Globalization; using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using GitVersion.VersionCalculation; -using Microsoft.Extensions.DependencyInjection; -namespace GitVersion.Core.Tests; +namespace GitVersion.Tests; [TestFixture] public class JsonVersionBuilderTests : TestBase @@ -14,13 +13,23 @@ public class JsonVersionBuilderTests : TestBase [Test] public void Json() { + var versionSourceSemVer = new SemanticVersion(1, 1, 2); var semanticVersion = new SemanticVersion { Major = 1, Minor = 2, Patch = 0, PreReleaseTag = "unstable4", - BuildMetaData = new("versionSourceSha", 5, "feature1", "commitSha", "commitShortSha", DateTimeOffset.Parse("2014-03-06 23:59:59Z"), 0) + BuildMetaData = new( + versionSourceSemVer, + "versionSourceSha", + 5, + "feature1", + "commitSha", + "commitShortSha", + DateTimeOffset.Parse("2014-03-06 23:59:59Z", CultureInfo.InvariantCulture), + 0, + VersionField.Minor) }; var serviceProvider = ConfigureServices(); diff --git a/src/GitVersion.Core.Tests/VersionCalculation/MainlineIterationTests.cs b/src/GitVersion.Core.Tests/VersionCalculation/MainlineIterationTests.cs new file mode 100644 index 0000000000..966e7a73e8 --- /dev/null +++ b/src/GitVersion.Core.Tests/VersionCalculation/MainlineIterationTests.cs @@ -0,0 +1,19 @@ +using GitVersion.Configuration; +using GitVersion.VersionCalculation.Mainline; + +namespace GitVersion.Tests.VersionCalculation; + +[TestFixture] +public class MainlineIterationTests +{ + [Test] + public void ChildIsDeeperThanParent() + { + var configuration = new BranchConfiguration(); + var parent = new MainlineIteration("id0", new("canonical0"), configuration, null, null); + var child = new MainlineIteration("id1", new("canonical1"), configuration, parent, null); + + parent.Depth.ShouldBe(1); + child.Depth.ShouldBe(2); + } +} diff --git a/src/GitVersion.Core.Tests/VersionCalculation/MinDateVersionFilterTests.cs b/src/GitVersion.Core.Tests/VersionCalculation/MinDateVersionFilterTests.cs index 909c77e094..facf4ab722 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/MinDateVersionFilterTests.cs +++ b/src/GitVersion.Core.Tests/VersionCalculation/MinDateVersionFilterTests.cs @@ -1,7 +1,6 @@ -using GitVersion.Core.Tests.Helpers; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests; +namespace GitVersion.Tests; [TestFixture] public class MinDateVersionFilterTests : TestBase diff --git a/src/GitVersion.Core.Tests/VersionCalculation/NextVersionCalculatorTests.cs b/src/GitVersion.Core.Tests/VersionCalculation/NextVersionCalculatorTests.cs index eb6340389b..949999cc7e 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/NextVersionCalculatorTests.cs +++ b/src/GitVersion.Core.Tests/VersionCalculation/NextVersionCalculatorTests.cs @@ -1,11 +1,8 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; using LibGit2Sharp; -using Microsoft.Extensions.DependencyInjection; -namespace GitVersion.Core.Tests.VersionCalculation; +namespace GitVersion.Tests.VersionCalculation; public class NextVersionCalculatorTests : TestBase { @@ -120,6 +117,22 @@ public void MergeIntoMainline() fixture.AssertFullSemver("1.0.0", configuration); } + [Test] + public void MergeSelfIntoMainline() + { + var configuration = TrunkBasedConfigurationBuilder.New.Build(); + + using var fixture = new EmptyRepositoryFixture(); + fixture.MakeACommit(); + fixture.CreateBranch("foo"); + fixture.MakeACommit(); + fixture.MergeTo("foo"); + fixture.Checkout(MainBranch); + fixture.Repository.Merge("foo", Generate.SignatureNow()); + + fixture.AssertFullSemver("0.0.3", configuration); + } + [Test] public void MergeFeatureIntoMainline() { diff --git a/src/GitVersion.Core.Tests/VersionCalculation/PathFilterTests.cs b/src/GitVersion.Core.Tests/VersionCalculation/PathFilterTests.cs index efffb84e18..75d118c221 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/PathFilterTests.cs +++ b/src/GitVersion.Core.Tests/VersionCalculation/PathFilterTests.cs @@ -1,7 +1,6 @@ -using GitVersion.Core.Tests.Helpers; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests; +namespace GitVersion.Tests; [TestFixture] public class PathFilterTests : TestBase diff --git a/src/GitVersion.Core.Tests/VersionCalculation/SemanticVersionTests.cs b/src/GitVersion.Core.Tests/VersionCalculation/SemanticVersionTests.cs index 2d0279a15c..6e0432b5e2 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/SemanticVersionTests.cs +++ b/src/GitVersion.Core.Tests/VersionCalculation/SemanticVersionTests.cs @@ -1,6 +1,4 @@ -using GitVersion.Core.Tests.Helpers; - -namespace GitVersion.Core.Tests; +namespace GitVersion.Tests; [TestFixture] public class SemanticVersionTests : TestBase diff --git a/src/GitVersion.Core.Tests/VersionCalculation/ShaVersionFilterTests.cs b/src/GitVersion.Core.Tests/VersionCalculation/ShaVersionFilterTests.cs index e4d4b219f1..5a6a0a0af7 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/ShaVersionFilterTests.cs +++ b/src/GitVersion.Core.Tests/VersionCalculation/ShaVersionFilterTests.cs @@ -1,7 +1,6 @@ -using GitVersion.Core.Tests.Helpers; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests; +namespace GitVersion.Tests; [TestFixture] public class ShaVersionFilterTests : TestBase diff --git a/src/GitVersion.Core.Tests/VersionCalculation/Strategies/ConfiguredNextVersionVersionStrategyTests.cs b/src/GitVersion.Core.Tests/VersionCalculation/Strategies/ConfiguredNextVersionVersionStrategyTests.cs index bd06aceb05..053d09f7ef 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/Strategies/ConfiguredNextVersionVersionStrategyTests.cs +++ b/src/GitVersion.Core.Tests/VersionCalculation/Strategies/ConfiguredNextVersionVersionStrategyTests.cs @@ -1,10 +1,8 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using GitVersion.Extensions; using GitVersion.VersionCalculation; -using Microsoft.Extensions.DependencyInjection; -namespace GitVersion.Core.Tests.VersionCalculation.Strategies; +namespace GitVersion.Tests.VersionCalculation.Strategies; [TestFixture] public class ConfiguredNextVersionVersionStrategyTests : TestBase diff --git a/src/GitVersion.Core.Tests/VersionCalculation/Strategies/MergeMessageBaseVersionStrategyTests.cs b/src/GitVersion.Core.Tests/VersionCalculation/Strategies/MergeMessageBaseVersionStrategyTests.cs index d38ae71969..69588f6e53 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/Strategies/MergeMessageBaseVersionStrategyTests.cs +++ b/src/GitVersion.Core.Tests/VersionCalculation/Strategies/MergeMessageBaseVersionStrategyTests.cs @@ -1,11 +1,9 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using GitVersion.Extensions; using GitVersion.Git; using GitVersion.VersionCalculation; -using Microsoft.Extensions.DependencyInjection; -namespace GitVersion.Core.Tests.VersionCalculation.Strategies; +namespace GitVersion.Tests.VersionCalculation.Strategies; [TestFixture] public class MergeMessageBaseVersionStrategyTests : TestBase @@ -202,6 +200,7 @@ private class MockCommit : ICommit public IObjectId Id => throw new NotImplementedException(); public string Sha => throw new NotImplementedException(); public IReadOnlyList<ICommit> Parents => throw new NotImplementedException(); + public bool IsMergeCommit => throw new NotImplementedException(); public IReadOnlyList<string> DiffPaths => throw new NotImplementedException(); public DateTimeOffset When => throw new NotImplementedException(); public string Message => throw new NotImplementedException(); diff --git a/src/GitVersion.Core.Tests/VersionCalculation/Strategies/VersionInBranchNameBaseVersionStrategyTests.cs b/src/GitVersion.Core.Tests/VersionCalculation/Strategies/VersionInBranchNameBaseVersionStrategyTests.cs index 868baca593..1b66fed42b 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/Strategies/VersionInBranchNameBaseVersionStrategyTests.cs +++ b/src/GitVersion.Core.Tests/VersionCalculation/Strategies/VersionInBranchNameBaseVersionStrategyTests.cs @@ -1,10 +1,9 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using GitVersion.Extensions; using GitVersion.Git; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.VersionCalculation.Strategies; +namespace GitVersion.Tests.VersionCalculation.Strategies; [TestFixture] public class VersionInBranchNameBaseVersionStrategyTests : TestBase diff --git a/src/GitVersion.Core.Tests/VersionCalculation/VariableProviderTests.cs b/src/GitVersion.Core.Tests/VersionCalculation/VariableProviderTests.cs index cc27fb1b24..f46fb3af8a 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/VariableProviderTests.cs +++ b/src/GitVersion.Core.Tests/VersionCalculation/VariableProviderTests.cs @@ -1,18 +1,16 @@ using System.Globalization; using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using GitVersion.Git; using GitVersion.Logging; using GitVersion.VersionCalculation; -using Microsoft.Extensions.DependencyInjection; -namespace GitVersion.Core.Tests; +namespace GitVersion.Tests; [TestFixture] public class VariableProviderTests : TestBase { - private IVariableProvider variableProvider; - private List<string> logMessages; + private IVariableProvider variableProvider = null!; + private List<string> logMessages = null!; [SetUp] public void Setup() @@ -69,7 +67,7 @@ public void ProvidesVariablesInContinuousDeploymentModeForPreRelease() VersionSourceSha = "versionSourceSha", Sha = "commitSha", ShortSha = "commitShortSha", - CommitsSinceVersionSource = 5, + VersionSourceDistance = 5, CommitDate = DateTimeOffset.Parse("2014-03-06 23:59:59Z") } }; @@ -119,7 +117,7 @@ public void ProvidesVariablesInContinuousDeploymentModeForStable() VersionSourceSha = "versionSourceSha", Sha = "commitSha", ShortSha = "commitShortSha", - CommitsSinceVersionSource = 5, + VersionSourceDistance = 5, CommitDate = DateTimeOffset.Parse("2014-03-06 23:59:59Z") } }; @@ -143,7 +141,7 @@ public void ProvidesVariablesInContinuousDeploymentModeForStableWhenCurrentCommi { VersionSourceSha = "versionSourceSha", CommitsSinceTag = 5, - CommitsSinceVersionSource = 5, + VersionSourceDistance = 5, Sha = "commitSha", ShortSha = "commitShortSha", CommitDate = DateTimeOffset.Parse("2014-03-06 23:59:59Z") @@ -251,12 +249,20 @@ public void ProvidesVariablesInContinuousDeliveryModeForFeatureBranchWithCustomA }; var configuration = GitFlowConfigurationBuilder.New.WithTagPreReleaseWeight(0) - .WithAssemblyInformationalFormat("{Major}.{Minor}.{Patch}+{CommitsSinceVersionSource}.Branch.{BranchName}.Sha.{ShortSha}") + .WithAssemblyInformationalFormat("{Major}.{Minor}.{Patch}+{VersionSourceDistance}.Branch.{BranchName}.Sha.{ShortSha}") .Build(); var preReleaseWeight = configuration.GetEffectiveConfiguration(ReferenceName.FromBranchName("develop")).PreReleaseWeight; var variables = this.variableProvider.GetVariablesFor(semanticVersion, configuration, preReleaseWeight); variables.ToJson().ShouldMatchApproved(c => c.SubFolder("Approved")); + + configuration = GitFlowConfigurationBuilder.New.WithTagPreReleaseWeight(0) + .WithAssemblyInformationalFormat("{Major}.{Minor}.{Patch}+{CommitsSinceVersionSource}.Branch.{BranchName}.Sha.{ShortSha}") + .Build(); + preReleaseWeight = configuration.GetEffectiveConfiguration(ReferenceName.FromBranchName("develop")).PreReleaseWeight; + variables = this.variableProvider.GetVariablesFor(semanticVersion, configuration, preReleaseWeight); + + variables.ToJson().ShouldMatchApproved(c => c.SubFolder("Approved")); } [Test] @@ -274,7 +280,7 @@ public void ProvidesVariablesInContinuousDeploymentModeForMainBranchWithEmptyLab VersionSourceSha = "versionSourceSha", Sha = "commitSha", ShortSha = "commitShortSha", - CommitsSinceVersionSource = 5, + VersionSourceDistance = 5, CommitDate = DateTimeOffset.Parse("2014-03-06 23:59:59Z") } }; @@ -301,18 +307,27 @@ public void Format_Allows_CSharp_FormatStrings() VersionSourceSha = "versionSourceSha", Sha = "commitSha", ShortSha = "commitShortSha", - CommitsSinceVersionSource = 42, + VersionSourceDistance = 42, CommitDate = DateTimeOffset.Parse("2014-03-06 23:59:59Z", CultureInfo.InvariantCulture) } }; var configuration = GitFlowConfigurationBuilder.New .WithTagPreReleaseWeight(0) - .WithAssemblyInformationalFormat("{Major}.{Minor}.{Patch}-{CommitsSinceVersionSource:0000}") + .WithAssemblyInformationalFormat("{Major}.{Minor}.{Patch}-{VersionSourceDistance:0000}") .Build(); var preReleaseWeight = configuration.GetEffectiveConfiguration(ReferenceName.FromBranchName("develop")).PreReleaseWeight; var variables = this.variableProvider.GetVariablesFor(semanticVersion, configuration, preReleaseWeight); variables.InformationalVersion.ShouldBe("1.2.3-0042"); + + configuration = GitFlowConfigurationBuilder.New + .WithTagPreReleaseWeight(0) + .WithAssemblyInformationalFormat("{Major}.{Minor}.{Patch}-{CommitsSinceVersionSource:0000}") + .Build(); + preReleaseWeight = configuration.GetEffectiveConfiguration(ReferenceName.FromBranchName("develop")).PreReleaseWeight; + variables = this.variableProvider.GetVariablesFor(semanticVersion, configuration, preReleaseWeight); + + variables.InformationalVersion.ShouldBe("1.2.3-0042"); } } diff --git a/src/GitVersion.Core.Tests/VersionCalculation/VersionSourceTests.cs b/src/GitVersion.Core.Tests/VersionCalculation/VersionSourceTests.cs index f4618e6d40..f78d87089b 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/VersionSourceTests.cs +++ b/src/GitVersion.Core.Tests/VersionCalculation/VersionSourceTests.cs @@ -1,9 +1,7 @@ -using GitVersion.Core.Tests.Helpers; using GitVersion.Git; using GitVersion.VersionCalculation; -using Microsoft.Extensions.DependencyInjection; -namespace GitVersion.Core.Tests; +namespace GitVersion.Tests; [TestFixture] public class VersionSourceTests : TestBase @@ -25,6 +23,7 @@ public void VersionSourceSha() semanticVersion.BuildMetaData.VersionSourceSha.ShouldBeNull(); semanticVersion.BuildMetaData.CommitsSinceVersionSource.ShouldBe(3); + semanticVersion.BuildMetaData.VersionSourceDistance.ShouldBe(3); } [Test] @@ -40,6 +39,7 @@ public void VersionSourceShaOneCommit() semanticVersion.BuildMetaData.VersionSourceSha.ShouldBeNull(); semanticVersion.BuildMetaData.CommitsSinceVersionSource.ShouldBe(1); + semanticVersion.BuildMetaData.VersionSourceDistance.ShouldBe(1); } [Test] @@ -59,6 +59,7 @@ public void VersionSourceShaUsingTag() semanticVersion.BuildMetaData.VersionSourceSha.ShouldBe(secondCommitSha); semanticVersion.BuildMetaData.CommitsSinceVersionSource.ShouldBe(1); + semanticVersion.BuildMetaData.VersionSourceDistance.ShouldBe(1); } private static INextVersionCalculator GetNextVersionCalculator(IGitRepository repository) diff --git a/src/GitVersion.Core/Agents/BuildAgentBase.cs b/src/GitVersion.Core/Agents/BuildAgentBase.cs index 776e1f4efc..05fd1d0ad3 100644 --- a/src/GitVersion.Core/Agents/BuildAgentBase.cs +++ b/src/GitVersion.Core/Agents/BuildAgentBase.cs @@ -8,15 +8,15 @@ namespace GitVersion.Agents; internal abstract class BuildAgentBase(IEnvironment environment, ILog log, IFileSystem fileSystem) : ICurrentBuildAgent { protected readonly ILog Log = log.NotNull(); - protected readonly IEnvironment Environment = environment.NotNull(); - protected readonly IFileSystem FileSystem = fileSystem.NotNull(); + protected readonly IEnvironment environment = environment.NotNull(); + protected readonly IFileSystem fileSystem = fileSystem.NotNull(); protected abstract string EnvironmentVariable { get; } public abstract string? SetBuildNumber(GitVersionVariables variables); public abstract string[] SetOutputVariables(string name, string? value); - public virtual bool CanApplyToCurrentContext() => !Environment.GetEnvironmentVariable(EnvironmentVariable).IsNullOrEmpty(); + public virtual bool CanApplyToCurrentContext() => !this.environment.GetEnvironmentVariable(EnvironmentVariable).IsNullOrEmpty(); public virtual string? GetCurrentBranch(bool usingDynamicRepos) => null; diff --git a/src/GitVersion.Core/Agents/IBuildAgent.cs b/src/GitVersion.Core/Agents/IBuildAgent.cs index b6f7b36725..caf301dfa1 100644 --- a/src/GitVersion.Core/Agents/IBuildAgent.cs +++ b/src/GitVersion.Core/Agents/IBuildAgent.cs @@ -2,16 +2,29 @@ namespace GitVersion.Agents; +/// <summary> +/// Represents a CI/CD build agent integration that GitVersion can write version information to. +/// </summary> public interface IBuildAgent { + /// <summary>Gets a value indicating whether this agent is the default fallback when no specific agent is detected.</summary> bool IsDefault { get; } + /// <summary>Determines whether this build agent is active in the current execution context.</summary> bool CanApplyToCurrentContext(); + + /// <summary>Returns the name of the current branch as reported by the build agent environment.</summary> string? GetCurrentBranch(bool usingDynamicRepos); + + /// <summary>Indicates whether fetching from the remote should be suppressed in this build agent environment.</summary> bool PreventFetch(); + + /// <summary>Indicates whether remote tracking branches should be cleaned up after fetching.</summary> bool ShouldCleanUpRemotes(); + /// <summary>Writes the computed version variables to the build agent's integration output (e.g. environment variables or build properties).</summary> void WriteIntegration(Action<string?> writer, GitVersionVariables variables, bool updateBuildNumber = true); } +/// <summary>Marker interface for the build agent that is active in the current execution context.</summary> public interface ICurrentBuildAgent : IBuildAgent; diff --git a/src/GitVersion.Core/Configuration/AssemblyFileVersioningScheme.cs b/src/GitVersion.Core/Configuration/AssemblyFileVersioningScheme.cs index 1593116fba..e187e734d5 100644 --- a/src/GitVersion.Core/Configuration/AssemblyFileVersioningScheme.cs +++ b/src/GitVersion.Core/Configuration/AssemblyFileVersioningScheme.cs @@ -1,10 +1,20 @@ namespace GitVersion.Configuration; +/// <summary>Determines which version components are included in the assembly file version (<c>AssemblyFileVersionAttribute</c>).</summary> public enum AssemblyFileVersioningScheme { + /// <summary>Uses Major.Minor.Patch.PreReleaseNumber as the assembly file version.</summary> MajorMinorPatchTag, + + /// <summary>Uses Major.Minor.Patch.0 as the assembly file version.</summary> MajorMinorPatch, + + /// <summary>Uses Major.Minor.0.0 as the assembly file version.</summary> MajorMinor, + + /// <summary>Uses Major.0.0.0 as the assembly file version.</summary> Major, + + /// <summary>Does not set the assembly file version.</summary> None } diff --git a/src/GitVersion.Core/Configuration/AssemblyVersioningScheme.cs b/src/GitVersion.Core/Configuration/AssemblyVersioningScheme.cs index 596decd681..839af73813 100644 --- a/src/GitVersion.Core/Configuration/AssemblyVersioningScheme.cs +++ b/src/GitVersion.Core/Configuration/AssemblyVersioningScheme.cs @@ -1,10 +1,20 @@ namespace GitVersion.Configuration; +/// <summary>Determines which version components are included in the assembly version (<c>AssemblyVersionAttribute</c>).</summary> public enum AssemblyVersioningScheme { + /// <summary>Uses Major.Minor.Patch.PreReleaseNumber as the assembly version.</summary> MajorMinorPatchTag, + + /// <summary>Uses Major.Minor.Patch.0 as the assembly version.</summary> MajorMinorPatch, + + /// <summary>Uses Major.Minor.0.0 as the assembly version.</summary> MajorMinor, + + /// <summary>Uses Major.0.0.0 as the assembly version.</summary> Major, + + /// <summary>Does not set the assembly version.</summary> None } diff --git a/src/GitVersion.Core/Configuration/EffectiveBranchConfiguration.cs b/src/GitVersion.Core/Configuration/EffectiveBranchConfiguration.cs index 1ad5c523b1..542e493927 100644 --- a/src/GitVersion.Core/Configuration/EffectiveBranchConfiguration.cs +++ b/src/GitVersion.Core/Configuration/EffectiveBranchConfiguration.cs @@ -3,9 +3,12 @@ namespace GitVersion.Configuration; +/// <summary>Associates an <see cref="EffectiveConfiguration"/> with the branch it was resolved for.</summary> public record EffectiveBranchConfiguration(EffectiveConfiguration Value, IBranch Branch) { + /// <summary>Gets the branch this configuration applies to.</summary> public IBranch Branch { get; } = Branch.NotNull(); + /// <summary>Gets the resolved effective configuration for this branch.</summary> public EffectiveConfiguration Value { get; } = Value.NotNull(); } diff --git a/src/GitVersion.Core/Configuration/EffectiveConfiguration.cs b/src/GitVersion.Core/Configuration/EffectiveConfiguration.cs index 8d09e6ca4a..4d0344a171 100644 --- a/src/GitVersion.Core/Configuration/EffectiveConfiguration.cs +++ b/src/GitVersion.Core/Configuration/EffectiveConfiguration.cs @@ -10,6 +10,7 @@ namespace GitVersion.Configuration; /// </summary> public record EffectiveConfiguration { + /// <summary>Initializes a new <see cref="EffectiveConfiguration"/> by merging global and branch-level configuration values.</summary> public EffectiveConfiguration( IGitVersionConfiguration configuration, IBranchConfiguration branchConfiguration, @@ -52,7 +53,7 @@ public EffectiveConfiguration( AssemblyVersioningFormat = configuration.AssemblyVersioningFormat; AssemblyFileVersioningFormat = configuration.AssemblyFileVersioningFormat; DeploymentMode = branchConfiguration.DeploymentMode.Value; - TagPrefix = configuration.TagPrefixPattern; + TagPrefixPattern = configuration.TagPrefixPattern; VersionInBranchPattern = configuration.VersionInBranchPattern; Label = branchConfiguration.Label; NextVersion = configuration.NextVersion; @@ -80,60 +81,100 @@ public EffectiveConfiguration( TagPreReleaseWeight = configuration.TagPreReleaseWeight.Value; } + /// <summary>Gets a value indicating whether this branch tracks release branches.</summary> public bool TracksReleaseBranches { get; } + + /// <summary>Gets a value indicating whether this branch is a release branch.</summary> public bool IsReleaseBranch { get; } + + /// <summary>Gets a value indicating whether this branch is a main/trunk branch.</summary> public bool IsMainBranch { get; } + + /// <summary>Gets the deployment mode used to calculate the next version.</summary> public DeploymentMode DeploymentMode { get; } + + /// <summary>Gets the scheme used to compute the <c>AssemblyVersionAttribute</c> value.</summary> public AssemblyVersioningScheme AssemblyVersioningScheme { get; } + + /// <summary>Gets the scheme used to compute the <c>AssemblyFileVersionAttribute</c> value.</summary> public AssemblyFileVersioningScheme AssemblyFileVersioningScheme { get; } + + /// <summary>Gets the format string used to compute the <c>AssemblyInformationalVersionAttribute</c> value.</summary> public string? AssemblyInformationalFormat { get; } + + /// <summary>Gets the format string used to compute the assembly version.</summary> public string? AssemblyVersioningFormat { get; } + + /// <summary>Gets the format string used to compute the assembly file version.</summary> public string? AssemblyFileVersioningFormat { get; } - public string? TagPrefix { get; } + /// <summary>Gets the regex pattern that identifies tag prefixes to strip when parsing version tags.</summary> + public string? TagPrefixPattern { get; } + /// <summary>Gets the regex pattern used to extract a semantic version from a branch name.</summary> public string? VersionInBranchPattern { get; } + /// <summary>Gets the pre-release label applied to versions on this branch.</summary> public string? Label { get; } + /// <summary>Gets the manually configured next version, overriding automatic calculation.</summary> public string? NextVersion { get; } + /// <summary>Gets the version field incremented when creating a new release from this branch.</summary> public IncrementStrategy Increment { get; } + /// <summary>Gets the regular expression that matches branch names eligible for this configuration.</summary> [StringSyntax(StringSyntaxAttribute.Regex)] public string? RegularExpression { get; } + /// <summary>Gets a value indicating whether incrementing the version of a merged branch is prevented.</summary> public bool PreventIncrementOfMergedBranch { get; } + /// <summary>Gets a value indicating whether incrementing when the branch itself is merged is prevented.</summary> public bool PreventIncrementWhenBranchMerged { get; } + /// <summary>Gets a value indicating whether incrementing is prevented when the current commit is already tagged.</summary> public bool PreventIncrementWhenCurrentCommitTagged { get; } + /// <summary>Gets a value indicating whether to track the merge target branch for version calculation.</summary> public bool TrackMergeTarget { get; } + /// <summary>Gets a value indicating whether merge commit messages are used to determine version increments.</summary> public bool TrackMergeMessage { get; } + /// <summary>Gets the commit message pattern that triggers a major version bump.</summary> public string? MajorVersionBumpMessage { get; } + /// <summary>Gets the commit message pattern that triggers a minor version bump.</summary> public string? MinorVersionBumpMessage { get; } + /// <summary>Gets the commit message pattern that triggers a patch version bump.</summary> public string? PatchVersionBumpMessage { get; } + /// <summary>Gets the commit message pattern that suppresses any version bump.</summary> public string? NoBumpMessage { get; } + /// <summary>Gets the mode that controls how commit messages are used to determine version increments.</summary> public CommitMessageIncrementMode CommitMessageIncrementing { get; } + /// <summary>Gets the configuration that controls which commits and time ranges are ignored during version calculation.</summary> public IIgnoreConfiguration Ignore { get; } + /// <summary>Gets the format string used when rendering the commit date in version output.</summary> public string? CommitDateFormat { get; } + /// <summary>Gets a value indicating whether the build number in the CI system should be updated.</summary> public bool UpdateBuildNumber { get; } + /// <summary>Gets the semantic version format (strict or loose) used when parsing version strings.</summary> public SemanticVersionFormat SemanticVersionFormat { get; } + /// <summary>Gets the set of version strategies enabled for this configuration.</summary> public VersionStrategies VersionStrategy { get; } + /// <summary>Gets the numeric weight applied to the pre-release tag number to produce a weighted pre-release number.</summary> public int PreReleaseWeight { get; } + /// <summary>Gets the pre-release weight applied to tagged commits when calculating the weighted pre-release number.</summary> public int TagPreReleaseWeight { get; } } diff --git a/src/GitVersion.Core/Configuration/IBranchConfiguration.cs b/src/GitVersion.Core/Configuration/IBranchConfiguration.cs index f3e6730ac2..fb16bc580a 100644 --- a/src/GitVersion.Core/Configuration/IBranchConfiguration.cs +++ b/src/GitVersion.Core/Configuration/IBranchConfiguration.cs @@ -1,28 +1,37 @@ using System.Diagnostics.CodeAnalysis; -using GitVersion.Core; using GitVersion.VersionCalculation; namespace GitVersion.Configuration; +/// <summary>Represents the version-related configuration for a specific branch or branch pattern.</summary> public interface IBranchConfiguration { + /// <summary>Gets the deployment mode used to compute versions on this branch.</summary> DeploymentMode? DeploymentMode { get; } + /// <summary>Gets the pre-release label applied to versions produced on this branch.</summary> string? Label { get; } + /// <summary>Gets the version field that is incremented when creating a new release from this branch.</summary> IncrementStrategy Increment { get; } + /// <summary>Gets the configuration that controls under what conditions automatic version increments are suppressed.</summary> IPreventIncrementConfiguration PreventIncrement { get; } + /// <summary>Gets a value indicating whether to track the merge target branch for version calculation.</summary> bool? TrackMergeTarget { get; } + /// <summary>Gets a value indicating whether merge commit messages are considered when determining version increments.</summary> bool? TrackMergeMessage { get; } + /// <summary>Gets the mode that controls how commit messages drive version increments.</summary> CommitMessageIncrementMode? CommitMessageIncrementing { get; } + /// <summary>Gets the regular expression that matches branch names eligible for this configuration.</summary> [StringSyntax(StringSyntaxAttribute.Regex)] string? RegularExpression { get; } + /// <summary>Returns whether the given branch name matches the <see cref="RegularExpression"/> for this configuration.</summary> bool IsMatch(string branchName) { if (string.IsNullOrWhiteSpace(RegularExpression)) @@ -34,19 +43,27 @@ bool IsMatch(string branchName) return regex.IsMatch(branchName); } + /// <summary>Gets the names of branches that this branch may be branched from.</summary> IReadOnlyCollection<string> SourceBranches { get; } + /// <summary>Gets the names of branches for which this branch may act as a source.</summary> IReadOnlyCollection<string> IsSourceBranchFor { get; } + /// <summary>Gets a value indicating whether this branch tracks release branches.</summary> bool? TracksReleaseBranches { get; } + /// <summary>Gets a value indicating whether this branch is a release branch.</summary> bool? IsReleaseBranch { get; } + /// <summary>Gets a value indicating whether this branch is treated as a main/trunk branch.</summary> bool? IsMainBranch { get; } + /// <summary>Gets the numeric weight applied to the pre-release tag number to produce a weighted pre-release number.</summary> int? PreReleaseWeight { get; } + /// <summary>Returns a new configuration that inherits unset values from <paramref name="configuration"/>.</summary> IBranchConfiguration Inherit(IBranchConfiguration configuration); + /// <summary>Returns a new configuration that inherits unset values from the given effective configuration.</summary> IBranchConfiguration Inherit(EffectiveConfiguration configuration); } diff --git a/src/GitVersion.Core/Configuration/IConfigurationBuilder.cs b/src/GitVersion.Core/Configuration/IConfigurationBuilder.cs index e6827f7a0a..f341b0c87b 100644 --- a/src/GitVersion.Core/Configuration/IConfigurationBuilder.cs +++ b/src/GitVersion.Core/Configuration/IConfigurationBuilder.cs @@ -1,8 +1,11 @@ namespace GitVersion.Configuration; +/// <summary>Builds an <see cref="IGitVersionConfiguration"/> instance, optionally merging override values.</summary> public interface IConfigurationBuilder { + /// <summary>Merges the supplied key/value pairs into the configuration, overriding any existing values.</summary> void AddOverride(IReadOnlyDictionary<object, object?> value); + /// <summary>Produces the fully resolved <see cref="IGitVersionConfiguration"/>.</summary> IGitVersionConfiguration Build(); } diff --git a/src/GitVersion.Core/Configuration/IConfigurationFileLocator.cs b/src/GitVersion.Core/Configuration/IConfigurationFileLocator.cs index 24ff54d935..2e34cdcc20 100644 --- a/src/GitVersion.Core/Configuration/IConfigurationFileLocator.cs +++ b/src/GitVersion.Core/Configuration/IConfigurationFileLocator.cs @@ -1,7 +1,11 @@ namespace GitVersion.Configuration; +/// <summary>Locates and validates the GitVersion configuration file on the file system.</summary> public interface IConfigurationFileLocator { + /// <summary>Validates that at most one configuration file exists across the working and project root directories.</summary> void Verify(string? workingDirectory, string? projectRootDirectory); + + /// <summary>Returns the full path of the configuration file found in <paramref name="directoryPath"/>, or <see langword="null"/> if none exists.</summary> string? GetConfigurationFile(string? directoryPath); } diff --git a/src/GitVersion.Core/Configuration/IConfigurationProvider.cs b/src/GitVersion.Core/Configuration/IConfigurationProvider.cs index 14a4731776..c4510bee91 100644 --- a/src/GitVersion.Core/Configuration/IConfigurationProvider.cs +++ b/src/GitVersion.Core/Configuration/IConfigurationProvider.cs @@ -1,6 +1,8 @@ namespace GitVersion.Configuration; +/// <summary>Loads and provides the <see cref="IGitVersionConfiguration"/> for the current repository.</summary> public interface IConfigurationProvider { + /// <summary>Returns the resolved configuration, optionally applying the supplied override values.</summary> IGitVersionConfiguration Provide(IReadOnlyDictionary<object, object?>? overrideConfiguration = null); } diff --git a/src/GitVersion.Core/Configuration/IGitVersionConfiguration.cs b/src/GitVersion.Core/Configuration/IGitVersionConfiguration.cs index 1461d38034..b47dc96d3a 100644 --- a/src/GitVersion.Core/Configuration/IGitVersionConfiguration.cs +++ b/src/GitVersion.Core/Configuration/IGitVersionConfiguration.cs @@ -2,49 +2,72 @@ namespace GitVersion.Configuration; +/// <summary>Represents the top-level GitVersion configuration, extending branch-level configuration with global settings.</summary> public interface IGitVersionConfiguration : IBranchConfiguration { + /// <summary>Gets the name of the workflow preset (e.g. <c>GitFlow/v1</c> or <c>GitHubFlow/v1</c>) used as a base configuration.</summary> string? Workflow { get; } + /// <summary>Gets the scheme used to compute the <c>AssemblyVersionAttribute</c> value.</summary> AssemblyVersioningScheme? AssemblyVersioningScheme { get; } + /// <summary>Gets the scheme used to compute the <c>AssemblyFileVersionAttribute</c> value.</summary> AssemblyFileVersioningScheme? AssemblyFileVersioningScheme { get; } + /// <summary>Gets the format string used to compute the <c>AssemblyInformationalVersionAttribute</c> value.</summary> string? AssemblyInformationalFormat { get; } + /// <summary>Gets the format string used to compute the assembly version.</summary> string? AssemblyVersioningFormat { get; } + /// <summary>Gets the format string used to compute the assembly file version.</summary> string? AssemblyFileVersioningFormat { get; } + /// <summary>Gets the regex pattern that identifies tag prefixes to strip when parsing version tags.</summary> string? TagPrefixPattern { get; } + /// <summary>Gets the regex pattern used to extract a semantic version from a branch name.</summary> string? VersionInBranchPattern { get; } + /// <summary>Gets the manually configured next version, overriding automatic calculation.</summary> string? NextVersion { get; } + /// <summary>Gets the commit message pattern that triggers a major version bump.</summary> string? MajorVersionBumpMessage { get; } + /// <summary>Gets the commit message pattern that triggers a minor version bump.</summary> string? MinorVersionBumpMessage { get; } + /// <summary>Gets the commit message pattern that triggers a patch version bump.</summary> string? PatchVersionBumpMessage { get; } + /// <summary>Gets the commit message pattern that suppresses any version bump.</summary> string? NoBumpMessage { get; } + /// <summary>Gets the pre-release weight applied to tagged commits when calculating the weighted pre-release number.</summary> int? TagPreReleaseWeight { get; } + /// <summary>Gets the format string used when rendering commit dates in version output.</summary> string? CommitDateFormat { get; } + /// <summary>Gets a dictionary of named regex patterns for recognising merge commit message formats.</summary> IReadOnlyDictionary<string, string> MergeMessageFormats { get; } + /// <summary>Gets a value indicating whether the build number in the CI system should be updated.</summary> bool UpdateBuildNumber { get; } + /// <summary>Gets the semantic version format (strict or loose) used when parsing version strings.</summary> SemanticVersionFormat SemanticVersionFormat { get; } + /// <summary>Gets the set of version strategies enabled for this configuration.</summary> VersionStrategies VersionStrategy { get; } + /// <summary>Gets the per-branch configuration map, keyed by branch name pattern.</summary> IReadOnlyDictionary<string, IBranchConfiguration> Branches { get; } + /// <summary>Gets the configuration that controls which commits and time ranges are ignored during version calculation.</summary> IIgnoreConfiguration Ignore { get; } + /// <summary>Returns an empty branch configuration that carries no values.</summary> IBranchConfiguration GetEmptyBranchConfiguration(); } diff --git a/src/GitVersion.Core/Configuration/IIgnoreConfiguration.cs b/src/GitVersion.Core/Configuration/IIgnoreConfiguration.cs index ea19f6d746..0e6fc39d4f 100644 --- a/src/GitVersion.Core/Configuration/IIgnoreConfiguration.cs +++ b/src/GitVersion.Core/Configuration/IIgnoreConfiguration.cs @@ -1,12 +1,17 @@ namespace GitVersion.Configuration; +/// <summary>Specifies which commits or time ranges should be excluded from version calculation.</summary> public interface IIgnoreConfiguration { + /// <summary>Gets the cut-off date before which commits are ignored; <see langword="null"/> means no date filter is applied.</summary> DateTimeOffset? Before { get; } + /// <summary>Gets the set of commit SHAs that should be excluded from version calculation.</summary> IReadOnlySet<string> Shas { get; } - IReadOnlyCollection<string> Paths { get; } + /// <summary>Gets the set of file paths whose changes should be ignored during version calculation.</summary> + IReadOnlySet<string> Paths { get; } + /// <summary>Gets a value indicating whether this configuration contains no ignore rules.</summary> bool IsEmpty { get; } } diff --git a/src/GitVersion.Core/Configuration/IPreventIncrementConfiguration.cs b/src/GitVersion.Core/Configuration/IPreventIncrementConfiguration.cs index bc8c1b9460..4ce5effa65 100644 --- a/src/GitVersion.Core/Configuration/IPreventIncrementConfiguration.cs +++ b/src/GitVersion.Core/Configuration/IPreventIncrementConfiguration.cs @@ -1,10 +1,14 @@ namespace GitVersion.Configuration; +/// <summary>Controls under what circumstances automatic version increments should be suppressed.</summary> public interface IPreventIncrementConfiguration { + /// <summary>Gets a value indicating whether version increment is prevented when this branch is itself the result of a merge.</summary> bool? OfMergedBranch { get; } + /// <summary>Gets a value indicating whether version increment is prevented at the point when this branch is merged into another.</summary> bool? WhenBranchMerged { get; } + /// <summary>Gets a value indicating whether version increment is prevented when the current commit is already tagged.</summary> bool? WhenCurrentCommitTagged { get; } } diff --git a/src/GitVersion.Core/Configuration/IgnoreConfigurationExtensions.cs b/src/GitVersion.Core/Configuration/IgnoreConfigurationExtensions.cs deleted file mode 100644 index d58cd9be89..0000000000 --- a/src/GitVersion.Core/Configuration/IgnoreConfigurationExtensions.cs +++ /dev/null @@ -1,26 +0,0 @@ -using GitVersion.Extensions; -using GitVersion.Git; - -namespace GitVersion.Configuration; - -internal static class IgnoreConfigurationExtensions -{ - public static IEnumerable<ITag> Filter(this IIgnoreConfiguration ignore, ITag[] source) - { - ignore.NotNull(); - source.NotNull(); - - return !ignore.IsEmpty ? source.Where(element => ShouldBeIgnored(element.Commit, ignore)) : source; - } - - public static IEnumerable<ICommit> Filter(this IIgnoreConfiguration ignore, ICommit[] source) - { - ignore.NotNull(); - source.NotNull(); - - return !ignore.IsEmpty ? source.Where(element => ShouldBeIgnored(element, ignore)) : source; - } - - private static bool ShouldBeIgnored(ICommit commit, IIgnoreConfiguration ignore) - => !ignore.ToFilters().Any(filter => filter.Exclude(commit, out _)); -} diff --git a/src/GitVersion.Core/Configuration/ReferenceNameExtensions.cs b/src/GitVersion.Core/Configuration/ReferenceNameExtensions.cs deleted file mode 100644 index 9dda4c2521..0000000000 --- a/src/GitVersion.Core/Configuration/ReferenceNameExtensions.cs +++ /dev/null @@ -1,54 +0,0 @@ -using GitVersion.Core; -using GitVersion.Extensions; -using GitVersion.Git; - -namespace GitVersion.Configuration; - -public static class ReferenceNameExtensions -{ - public static bool TryGetSemanticVersion(this ReferenceName source, out (SemanticVersion Value, string? Name) result, EffectiveConfiguration configuration) - => source.TryGetSemanticVersion(out result, configuration.VersionInBranchPattern, configuration.TagPrefix, configuration.SemanticVersionFormat); - - public static bool TryGetSemanticVersion(this ReferenceName source, out (SemanticVersion Value, string? Name) result, IGitVersionConfiguration configuration) - => source.TryGetSemanticVersion(out result, configuration.VersionInBranchPattern, configuration.TagPrefixPattern, configuration.SemanticVersionFormat); - - private static bool TryGetSemanticVersion(this ReferenceName referenceName, out (SemanticVersion Value, string? Name) result, - string? versionPatternPattern, - string? tagPrefix, - SemanticVersionFormat format) - { - var versionPatternRegex = RegexPatterns.Cache.GetOrAdd(GetVersionInBranchPattern(versionPatternPattern)); - result = default; - - var length = 0; - foreach (var branchPart in referenceName.WithoutOrigin.Split(GetBranchSeparator())) - { - if (string.IsNullOrEmpty(branchPart)) return false; - - var match = versionPatternRegex.Match(branchPart); - if (match.Success) - { - var versionPart = match.Groups["version"].Value; - if (SemanticVersion.TryParse(versionPart, tagPrefix, out var semanticVersion, format)) - { - length += versionPart.Length; - var name = referenceName.WithoutOrigin[length..].Trim('-'); - result = new(semanticVersion, name.Length == 0 ? null : name); - return true; - } - } - - length += branchPart.Length + 1; - } - - return false; - - char GetBranchSeparator() => referenceName.WithoutOrigin.Contains('/') || !referenceName.WithoutOrigin.Contains('-') ? '/' : '-'; - - static string GetVersionInBranchPattern(string? versionInBranchPattern) - { - if (versionInBranchPattern.IsNullOrEmpty()) versionInBranchPattern = RegexPatterns.Configuration.DefaultVersionInBranchRegexPattern; - return $"^{versionInBranchPattern.TrimStart('^')}"; - } - } -} diff --git a/src/GitVersion.Core/Core/Abstractions/IEnvironment.cs b/src/GitVersion.Core/Core/Abstractions/IEnvironment.cs index be2dc06d31..6bd37f78de 100644 --- a/src/GitVersion.Core/Core/Abstractions/IEnvironment.cs +++ b/src/GitVersion.Core/Core/Abstractions/IEnvironment.cs @@ -1,7 +1,11 @@ namespace GitVersion; +/// <summary>Provides access to environment variables in the current process.</summary> public interface IEnvironment { + /// <summary>Returns the value of the named environment variable, or <see langword="null"/> if it is not set.</summary> string? GetEnvironmentVariable(string variableName); + + /// <summary>Sets the named environment variable to the given value, or removes it when <paramref name="value"/> is <see langword="null"/>.</summary> void SetEnvironmentVariable(string variableName, string? value); } diff --git a/src/GitVersion.Core/Core/Abstractions/IGitPreparer.cs b/src/GitVersion.Core/Core/Abstractions/IGitPreparer.cs index 8e47f43328..52a16c9915 100644 --- a/src/GitVersion.Core/Core/Abstractions/IGitPreparer.cs +++ b/src/GitVersion.Core/Core/Abstractions/IGitPreparer.cs @@ -2,8 +2,12 @@ namespace GitVersion; +/// <summary>Prepares the Git repository so that GitVersion can calculate the version (fetches, clones, and normalises refs as needed).</summary> public interface IGitPreparer { + /// <summary>Performs all preparation steps required before version calculation (fetch, clone, normalise).</summary> void Prepare(); + + /// <summary>Ensures a local branch exists that tracks the supplied <paramref name="currentBranch"/> on the given <paramref name="remote"/>.</summary> void EnsureLocalBranchExistsForCurrentBranch(IRemote remote, string currentBranch); } diff --git a/src/GitVersion.Core/Core/Abstractions/IGitVersionCalculateTool.cs b/src/GitVersion.Core/Core/Abstractions/IGitVersionCalculateTool.cs index 24c86e9428..682fe7ca75 100644 --- a/src/GitVersion.Core/Core/Abstractions/IGitVersionCalculateTool.cs +++ b/src/GitVersion.Core/Core/Abstractions/IGitVersionCalculateTool.cs @@ -2,7 +2,9 @@ namespace GitVersion; +/// <summary>Orchestrates the end-to-end version calculation and returns the resulting version variables.</summary> public interface IGitVersionCalculateTool { + /// <summary>Calculates all version variables for the current repository state.</summary> GitVersionVariables CalculateVersionVariables(); } diff --git a/src/GitVersion.Core/Core/Abstractions/IGitVersionContextFactory.cs b/src/GitVersion.Core/Core/Abstractions/IGitVersionContextFactory.cs index 0704022818..ae004c0d6d 100644 --- a/src/GitVersion.Core/Core/Abstractions/IGitVersionContextFactory.cs +++ b/src/GitVersion.Core/Core/Abstractions/IGitVersionContextFactory.cs @@ -1,6 +1,8 @@ namespace GitVersion; +/// <summary>Creates a <see cref="GitVersionContext"/> for the current repository and branch.</summary> public interface IGitVersionContextFactory { + /// <summary>Builds and returns the <see cref="GitVersionContext"/> for the current execution.</summary> GitVersionContext Create(); } diff --git a/src/GitVersion.Core/Core/Abstractions/IGitVersionModule.cs b/src/GitVersion.Core/Core/Abstractions/IGitVersionModule.cs index 0d8e217a35..0c9fd847ca 100644 --- a/src/GitVersion.Core/Core/Abstractions/IGitVersionModule.cs +++ b/src/GitVersion.Core/Core/Abstractions/IGitVersionModule.cs @@ -1,12 +1,14 @@ using GitVersion.Extensions; -using Microsoft.Extensions.DependencyInjection; namespace GitVersion; +/// <summary>Represents a self-contained IoC registration module that adds a cohesive set of services to the DI container.</summary> public interface IGitVersionModule { + /// <summary>Registers the services provided by this module into <paramref name="services"/>.</summary> void RegisterTypes(IServiceCollection services); + /// <summary>Returns all concrete types in <paramref name="assembly"/> that are assignable to <typeparamref name="T"/>.</summary> static IEnumerable<Type> FindAllDerivedTypes<T>(Assembly? assembly) { assembly.NotNull(); diff --git a/src/GitVersion.Core/Core/Abstractions/IRepositoryStore.cs b/src/GitVersion.Core/Core/Abstractions/IRepositoryStore.cs index 18fc7edd92..5e897e1f93 100644 --- a/src/GitVersion.Core/Core/Abstractions/IRepositoryStore.cs +++ b/src/GitVersion.Core/Core/Abstractions/IRepositoryStore.cs @@ -1,13 +1,21 @@ using GitVersion.Configuration; using GitVersion.Git; -namespace GitVersion.Common; +namespace GitVersion; +/// <summary>Provides high-level read access to a Git repository, exposing the objects and queries needed for version calculation.</summary> public interface IRepositoryStore { + /// <summary>Gets the number of files that have been modified but not yet committed.</summary> int UncommittedChangesCount { get; } + + /// <summary>Gets the currently checked-out branch.</summary> IBranch Head { get; } + + /// <summary>Gets the collection of all branches in the repository.</summary> IBranchCollection Branches { get; } + + /// <summary>Gets the collection of all tags in the repository.</summary> ITagCollection Tags { get; } /// <summary> @@ -15,26 +23,45 @@ public interface IRepositoryStore /// </summary> ICommit? FindMergeBase(IBranch? branch, IBranch? otherBranch); + /// <summary>Finds the best common ancestor between <paramref name="commit"/> and <paramref name="mainlineTip"/>.</summary> ICommit? FindMergeBase(ICommit commit, ICommit mainlineTip); + /// <summary>Returns the commit that should be treated as the current HEAD for version calculation, applying ignore rules.</summary> ICommit? GetCurrentCommit(IBranch currentBranch, string? commitId, IIgnoreConfiguration ignore); + + /// <summary>Returns the commit that represents a forward merge from <paramref name="commitToFindCommonBase"/> relative to <paramref name="findMergeBase"/>.</summary> ICommit? GetForwardMerge(ICommit? commitToFindCommonBase, ICommit? findMergeBase); + /// <summary>Returns the commits reachable between <paramref name="baseVersionSource"/> and <paramref name="currentCommit"/>, respecting ignore rules.</summary> IReadOnlyList<ICommit> GetCommitLog(ICommit? baseVersionSource, ICommit currentCommit, IIgnoreConfiguration ignore); + + /// <summary>Returns all commits reachable from the HEAD commit, respecting ignore rules.</summary> IReadOnlyList<ICommit> GetCommitsReacheableFromHead(ICommit? headCommit, IIgnoreConfiguration ignore); + + /// <summary>Returns all commits reachable from <paramref name="commit"/> that are also on <paramref name="branch"/>.</summary> IReadOnlyList<ICommit> GetCommitsReacheableFrom(ICommit commit, IBranch branch); + /// <summary>Resolves and returns the branch that matches <paramref name="targetBranchName"/>, creating a local branch if necessary.</summary> IBranch GetTargetBranch(string? targetBranchName); + + /// <summary>Finds and returns the branch with the given <paramref name="branchName"/>, or <see langword="null"/> if not found.</summary> IBranch? FindBranch(ReferenceName branchName); + /// <summary>Returns all branches except those in <paramref name="branchesToExclude"/>.</summary> IEnumerable<IBranch> ExcludingBranches(IEnumerable<IBranch> branchesToExclude); + + /// <summary>Returns branches that contain the given <paramref name="commit"/> in their history.</summary> IEnumerable<IBranch> GetBranchesContainingCommit(ICommit commit, IEnumerable<IBranch>? branches = null, bool onlyTrackedBranches = false); + /// <summary>Returns the commits and their originating branches that branched from <paramref name="branch"/>, excluding <paramref name="excludedBranches"/>.</summary> IEnumerable<BranchCommit> FindCommitBranchesBranchedFrom(IBranch branch, IGitVersionConfiguration configuration, params IBranch[] excludedBranches); + /// <summary>Returns the branches that <paramref name="branch"/> was directly branched from, excluding <paramref name="excludedBranches"/>.</summary> IEnumerable<IBranch> GetSourceBranches(IBranch branch, IGitVersionConfiguration configuration, params IBranch[] excludedBranches); + /// <summary>Returns the branches that <paramref name="branch"/> was directly branched from, excluding the given collection of branches.</summary> IEnumerable<IBranch> GetSourceBranches(IBranch branch, IGitVersionConfiguration configuration, IEnumerable<IBranch> excludedBranches); + /// <summary>Returns <see langword="true"/> if <paramref name="baseVersionSource"/> is an ancestor of <paramref name="firstMatchingCommit"/> on <paramref name="branch"/>.</summary> bool IsCommitOnBranch(ICommit? baseVersionSource, IBranch branch, ICommit firstMatchingCommit); } diff --git a/src/GitVersion.Core/Core/BranchRepository.cs b/src/GitVersion.Core/Core/BranchRepository.cs index 6d54eafe53..9f467f63a9 100644 --- a/src/GitVersion.Core/Core/BranchRepository.cs +++ b/src/GitVersion.Core/Core/BranchRepository.cs @@ -1,9 +1,8 @@ -using GitVersion.Common; using GitVersion.Configuration; using GitVersion.Extensions; using GitVersion.Git; -namespace GitVersion.Core; +namespace GitVersion; internal sealed class BranchRepository(IRepositoryStore repositoryStore) : IBranchRepository { diff --git a/src/GitVersion.Core/Core/BranchesContainingCommitFinder.cs b/src/GitVersion.Core/Core/BranchesContainingCommitFinder.cs index d078714e98..07997c99e1 100644 --- a/src/GitVersion.Core/Core/BranchesContainingCommitFinder.cs +++ b/src/GitVersion.Core/Core/BranchesContainingCommitFinder.cs @@ -1,4 +1,3 @@ -using GitVersion.Common; using GitVersion.Extensions; using GitVersion.Git; using GitVersion.Logging; @@ -23,16 +22,16 @@ public IEnumerable<IBranch> GetBranchesContainingCommit(ICommit commit, IEnumera private IEnumerable<IBranch> InnerGetBranchesContainingCommit(ICommit commit, IEnumerable<IBranch> branches, bool onlyTrackedBranches) { - using (log.IndentLog($"Getting branches containing the commit '{commit.Id}'.")) + using (this.log.IndentLog($"Getting branches containing the commit '{commit.Id}'.")) { var directBranchHasBeenFound = false; - log.Info("Trying to find direct branches."); + this.log.Info("Trying to find direct branches."); // TODO: It looks wasteful looping through the branches twice. Can't these loops be merged somehow? @asbjornu var branchList = branches.ToList(); foreach (var branch in branchList.Where(branch => BranchTipIsNullOrCommit(branch, commit) && !IncludeTrackedBranches(branch, onlyTrackedBranches))) { directBranchHasBeenFound = true; - log.Info($"Direct branch found: '{branch}'."); + this.log.Info($"Direct branch found: '{branch}'."); yield return branch; } @@ -41,20 +40,20 @@ private IEnumerable<IBranch> InnerGetBranchesContainingCommit(ICommit commit, IE yield break; } - log.Info($"No direct branches found, searching through {(onlyTrackedBranches ? "tracked" : "all")} branches."); + this.log.Info($"No direct branches found, searching through {(onlyTrackedBranches ? "tracked" : "all")} branches."); foreach (var branch in branchList.Where(b => IncludeTrackedBranches(b, onlyTrackedBranches))) { - log.Info($"Searching for commits reachable from '{branch}'."); + this.log.Info($"Searching for commits reachable from '{branch}'."); var commits = this.repositoryStore.GetCommitsReacheableFrom(commit, branch); if (!commits.Any()) { - log.Info($"The branch '{branch}' has no matching commits."); + this.log.Info($"The branch '{branch}' has no matching commits."); continue; } - log.Info($"The branch '{branch}' has a matching commit."); + this.log.Info($"The branch '{branch}' has a matching commit."); yield return branch; } } diff --git a/src/GitVersion.Core/Core/EffectiveConfigurationExtensions.cs b/src/GitVersion.Core/Core/EffectiveConfigurationExtensions.cs deleted file mode 100644 index 0916dc11d3..0000000000 --- a/src/GitVersion.Core/Core/EffectiveConfigurationExtensions.cs +++ /dev/null @@ -1,30 +0,0 @@ -using GitVersion.Configuration; -using GitVersion.Extensions; - -namespace GitVersion.Core; - -internal static class EffectiveConfigurationExtensions -{ - public static TaggedSemanticVersions GetTaggedSemanticVersion(this EffectiveConfiguration effectiveConfiguration) - { - effectiveConfiguration.NotNull(); - - var taggedSemanticVersion = TaggedSemanticVersions.OfBranch; - - if (effectiveConfiguration.TrackMergeTarget) - { - taggedSemanticVersion |= TaggedSemanticVersions.OfMergeTargets; - } - - if (effectiveConfiguration.TracksReleaseBranches) - { - taggedSemanticVersion |= TaggedSemanticVersions.OfReleaseBranches; - } - - if (effectiveConfiguration is { IsMainBranch: false, IsReleaseBranch: false }) - { - taggedSemanticVersion |= TaggedSemanticVersions.OfMainBranches; - } - return taggedSemanticVersion; - } -} diff --git a/src/GitVersion.Core/Core/Exceptions/BugException.cs b/src/GitVersion.Core/Core/Exceptions/BugException.cs index ba231b96eb..acc6e9bfc2 100644 --- a/src/GitVersion.Core/Core/Exceptions/BugException.cs +++ b/src/GitVersion.Core/Core/Exceptions/BugException.cs @@ -1,15 +1,19 @@ namespace GitVersion; +/// <summary>Indicates an internal logic error that should never occur in normal usage; represents a bug in GitVersion itself.</summary> public class BugException : Exception { + /// <summary>Initializes a new instance with the given error message.</summary> public BugException(string message) : base(message) { } + /// <summary>Initializes a new instance with no message.</summary> public BugException() { } + /// <summary>Initializes a new instance with the given message and inner exception.</summary> public BugException(string? message, Exception? innerException) : base(message, innerException) { } diff --git a/src/GitVersion.Core/Core/Exceptions/GitVersionException.cs b/src/GitVersion.Core/Core/Exceptions/GitVersionException.cs index 3fc07f140b..303d22a4f9 100644 --- a/src/GitVersion.Core/Core/Exceptions/GitVersionException.cs +++ b/src/GitVersion.Core/Core/Exceptions/GitVersionException.cs @@ -1,22 +1,27 @@ namespace GitVersion; +/// <summary>Base exception type for errors raised by GitVersion during normal operation.</summary> [Serializable] public class GitVersionException : Exception { + /// <summary>Initializes a new instance with no message.</summary> public GitVersionException() { } + /// <summary>Initializes a new instance with the given error message.</summary> public GitVersionException(string message) : base(message) { } + /// <summary>Initializes a new instance with the given message and inner exception.</summary> public GitVersionException(string message, Exception innerException) : base(message, innerException) { } + /// <summary>Initializes a new instance using the formatted message string.</summary> public GitVersionException(string messageFormat, params object[] args) : base(string.Format(messageFormat, args)) { } diff --git a/src/GitVersion.Core/Core/Exceptions/LockedFileException.cs b/src/GitVersion.Core/Core/Exceptions/LockedFileException.cs index 3cef30a364..52a6d91af2 100644 --- a/src/GitVersion.Core/Core/Exceptions/LockedFileException.cs +++ b/src/GitVersion.Core/Core/Exceptions/LockedFileException.cs @@ -1,19 +1,24 @@ namespace GitVersion; +/// <summary>Raised when a file cannot be accessed because it is locked by another process.</summary> public class LockedFileException : Exception { + /// <summary>Initializes a new instance wrapping the given inner exception and using its message.</summary> public LockedFileException(Exception inner) : base(inner.Message, inner) { } + /// <summary>Initializes a new instance with no message.</summary> public LockedFileException() { } + /// <summary>Initializes a new instance with the given error message.</summary> public LockedFileException(string? message) : base(message) { } + /// <summary>Initializes a new instance with the given message and inner exception.</summary> public LockedFileException(string? message, Exception? innerException) : base(message, innerException) { } diff --git a/src/GitVersion.Core/Core/Exceptions/WarningException.cs b/src/GitVersion.Core/Core/Exceptions/WarningException.cs index eae03f9071..91129ec385 100644 --- a/src/GitVersion.Core/Core/Exceptions/WarningException.cs +++ b/src/GitVersion.Core/Core/Exceptions/WarningException.cs @@ -1,17 +1,21 @@ namespace GitVersion; +/// <summary>Raised to report a recoverable warning condition that should be presented to the user rather than treated as a hard error.</summary> [Serializable] public class WarningException : Exception { + /// <summary>Initializes a new instance with the given warning message.</summary> public WarningException(string message) : base(message) { } + /// <summary>Initializes a new instance with no message.</summary> public WarningException() { } + /// <summary>Initializes a new instance with the given message and inner exception.</summary> public WarningException(string? message, Exception? innerException) : base(message, innerException) { } diff --git a/src/GitVersion.Core/Core/GitPreparer.cs b/src/GitVersion.Core/Core/GitPreparer.cs index 52281942de..2258d4ef0c 100644 --- a/src/GitVersion.Core/Core/GitPreparer.cs +++ b/src/GitVersion.Core/Core/GitPreparer.cs @@ -5,7 +5,6 @@ using GitVersion.Git; using GitVersion.Helpers; using GitVersion.Logging; -using Microsoft.Extensions.Options; namespace GitVersion; diff --git a/src/GitVersion.Core/Core/GitVersionCalculateTool.cs b/src/GitVersion.Core/Core/GitVersionCalculateTool.cs index 72703484ec..88f9d70f4d 100644 --- a/src/GitVersion.Core/Core/GitVersionCalculateTool.cs +++ b/src/GitVersion.Core/Core/GitVersionCalculateTool.cs @@ -5,7 +5,6 @@ using GitVersion.OutputVariables; using GitVersion.VersionCalculation; using GitVersion.VersionCalculation.Caching; -using Microsoft.Extensions.Options; namespace GitVersion; diff --git a/src/GitVersion.Core/Core/GitVersionContextFactory.cs b/src/GitVersion.Core/Core/GitVersionContextFactory.cs index 999da28fbc..acf1e4ba16 100644 --- a/src/GitVersion.Core/Core/GitVersionContextFactory.cs +++ b/src/GitVersion.Core/Core/GitVersionContextFactory.cs @@ -1,8 +1,5 @@ -using GitVersion.Common; using GitVersion.Configuration; -using GitVersion.Core; using GitVersion.Extensions; -using Microsoft.Extensions.Options; namespace GitVersion; diff --git a/src/GitVersion.Core/Core/IBranchRepository.cs b/src/GitVersion.Core/Core/IBranchRepository.cs index a58e603988..7a4e94213f 100644 --- a/src/GitVersion.Core/Core/IBranchRepository.cs +++ b/src/GitVersion.Core/Core/IBranchRepository.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.Git; -namespace GitVersion.Core; +namespace GitVersion; internal interface IBranchRepository { diff --git a/src/GitVersion.Core/Core/ITaggedSemanticVersionRepository.cs b/src/GitVersion.Core/Core/ITaggedSemanticVersionRepository.cs index 8177f1600d..5fc65d6eeb 100644 --- a/src/GitVersion.Core/Core/ITaggedSemanticVersionRepository.cs +++ b/src/GitVersion.Core/Core/ITaggedSemanticVersionRepository.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.Git; -namespace GitVersion.Core; +namespace GitVersion; internal interface ITaggedSemanticVersionRepository { diff --git a/src/GitVersion.Core/Core/ITaggedSemanticVersionService.cs b/src/GitVersion.Core/Core/ITaggedSemanticVersionService.cs index 8c476cc7f5..acf190d2a9 100644 --- a/src/GitVersion.Core/Core/ITaggedSemanticVersionService.cs +++ b/src/GitVersion.Core/Core/ITaggedSemanticVersionService.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.Git; -namespace GitVersion.Core; +namespace GitVersion; internal interface ITaggedSemanticVersionService { diff --git a/src/GitVersion.Core/Core/MergeBaseFinder.cs b/src/GitVersion.Core/Core/MergeBaseFinder.cs index a281a01ce7..7eb525fedc 100644 --- a/src/GitVersion.Core/Core/MergeBaseFinder.cs +++ b/src/GitVersion.Core/Core/MergeBaseFinder.cs @@ -1,4 +1,3 @@ -using GitVersion.Common; using GitVersion.Extensions; using GitVersion.Git; using GitVersion.Logging; diff --git a/src/GitVersion.Core/Core/MergeCommitFinder.cs b/src/GitVersion.Core/Core/MergeCommitFinder.cs index c38da050af..4291a2c0a5 100644 --- a/src/GitVersion.Core/Core/MergeCommitFinder.cs +++ b/src/GitVersion.Core/Core/MergeCommitFinder.cs @@ -1,4 +1,3 @@ -using GitVersion.Common; using GitVersion.Configuration; using GitVersion.Extensions; using GitVersion.Git; diff --git a/src/GitVersion.Core/Core/RegexPatterns.cs b/src/GitVersion.Core/Core/RegexPatterns.cs index a84161731d..ff33947144 100644 --- a/src/GitVersion.Core/Core/RegexPatterns.cs +++ b/src/GitVersion.Core/Core/RegexPatterns.cs @@ -3,11 +3,116 @@ using System.Diagnostics.CodeAnalysis; using System.Text.RegularExpressions; -namespace GitVersion.Core; +namespace GitVersion; internal static partial class RegexPatterns { private const RegexOptions Options = RegexOptions.IgnoreCase | RegexOptions.Compiled; + private static readonly TimeSpan DefaultTimeout = TimeSpan.FromSeconds(2); // unified timeout for non-GeneratedRegex fallbacks + + [StringSyntax(StringSyntaxAttribute.Regex)] + private const string SwitchArgumentRegexPattern = @"/\w+:"; + + [StringSyntax(StringSyntaxAttribute.Regex)] + private const string ObscurePasswordRegexPattern = "(https?://)(.+)(:.+@)"; + + [StringSyntax(StringSyntaxAttribute.Regex)] + private const string ExpandTokensRegexPattern = + """ + \{ # Opening brace + (?: # Start of either env or member expression + env:(?!env:)(?<envvar>[A-Za-z_][A-Za-z0-9_]*) # Only a single env: prefix, not followed by another env: + | # OR + (?<member>[A-Za-z_][A-Za-z0-9_]*) # member/property name + (?: # Optional format specifier + :(?<format>[A-Za-z0-9\.\-,]+) # Colon followed by format string (no spaces, ?, or }), format cannot contain colon + )? # Format is optional + ) # End group for env or member + (?: # Optional fallback group + \s*\?\?\s+ # '??' operator with optional whitespace: exactly two question marks for fallback + (?: # Fallback value alternatives: + (?<fallback>\w+) # A single word fallback + | # OR + "(?<fallback>[^"]*)" # A quoted string fallback + ) + )? # Fallback is optional + \} + """; + + /// <summary> + /// Allow alphanumeric, underscore, colon (for custom format specification), hyphen, and dot + /// </summary> + [StringSyntax(StringSyntaxAttribute.Regex, Options)] + internal const string SanitizeEnvVarNameRegexPattern = @"^[A-Za-z0-9_:\-\.]+$"; + + /// <summary> + /// Allow alphanumeric, underscore, and dot for property/field access + /// </summary> + [StringSyntax(StringSyntaxAttribute.Regex, Options)] + internal const string SanitizeMemberNameRegexPattern = @"^[A-Za-z0-9_\.]+$"; + + [StringSyntax(StringSyntaxAttribute.Regex, Options)] + internal const string SanitizeNameRegexPattern = "[^a-zA-Z0-9-]"; + +#if NET9_0_OR_GREATER + [GeneratedRegex(SwitchArgumentRegexPattern, Options)] + public static partial Regex SwitchArgumentRegex { get; } +#else + [GeneratedRegex(SwitchArgumentRegexPattern, Options)] + private static partial Regex SwitchArgumentRegexImpl(); + + public static Regex SwitchArgumentRegex { get; } = SwitchArgumentRegexImpl(); +#endif + +#if NET9_0_OR_GREATER + [GeneratedRegex(ObscurePasswordRegexPattern, Options)] + public static partial Regex ObscurePasswordRegex { get; } +#else + [GeneratedRegex(ObscurePasswordRegexPattern, Options)] + private static partial Regex ObscurePasswordRegexImpl(); + + public static Regex ObscurePasswordRegex { get; } = ObscurePasswordRegexImpl(); +#endif + +#if NET9_0_OR_GREATER + [GeneratedRegex(ExpandTokensRegexPattern, RegexOptions.IgnorePatternWhitespace | Options)] + public static partial Regex ExpandTokensRegex { get; } +#else + [GeneratedRegex(ExpandTokensRegexPattern, RegexOptions.IgnorePatternWhitespace | Options)] + private static partial Regex ExpandTokensRegexImpl(); + + public static Regex ExpandTokensRegex { get; } = ExpandTokensRegexImpl(); +#endif + +#if NET9_0_OR_GREATER + [GeneratedRegex(SanitizeEnvVarNameRegexPattern, Options)] + public static partial Regex SanitizeEnvVarNameRegex { get; } +#else + [GeneratedRegex(SanitizeEnvVarNameRegexPattern, Options)] + private static partial Regex SanitizeEnvVarNameRegexImpl(); + + public static Regex SanitizeEnvVarNameRegex { get; } = SanitizeEnvVarNameRegexImpl(); +#endif + +#if NET9_0_OR_GREATER + [GeneratedRegex(SanitizeMemberNameRegexPattern, Options)] + public static partial Regex SanitizeMemberNameRegex { get; } +#else + [GeneratedRegex(SanitizeMemberNameRegexPattern, Options)] + private static partial Regex SanitizeMemberNameRegexImpl(); + + public static Regex SanitizeMemberNameRegex { get; } = SanitizeMemberNameRegexImpl(); +#endif + +#if NET9_0_OR_GREATER + [GeneratedRegex(SanitizeNameRegexPattern, Options)] + public static partial Regex SanitizeNameRegex { get; } +#else + [GeneratedRegex(SanitizeNameRegexPattern, Options)] + private static partial Regex SanitizeNameRegexImpl(); + + public static Regex SanitizeNameRegex { get; } = SanitizeNameRegexImpl(); +#endif public static class Cache { @@ -18,127 +123,69 @@ public static Regex GetOrAdd([StringSyntax(StringSyntaxAttribute.Regex)] string ArgumentNullException.ThrowIfNull(pattern); return cache.GetOrAdd(pattern, key => - KnownRegexes.TryGetValue(key, out var factory) - ? factory() - : new Regex(key, Options)); + KnownRegexes.TryGetValue(key, out var regex) + ? regex + : new Regex(key, Options, DefaultTimeout)); // now uses timeout for safety } - private static readonly ImmutableDictionary<string, Func<Regex>> KnownRegexes = - new Dictionary<string, Func<Regex>> - { - [Common.SwitchArgumentRegexPattern] = Common.SwitchArgumentRegex, - [Common.ObscurePasswordRegexPattern] = Common.ObscurePasswordRegex, - [Common.ExpandTokensRegexPattern] = Common.ExpandTokensRegex, - [Common.SanitizeEnvVarNameRegexPattern] = Common.SanitizeEnvVarNameRegex, - [Common.SanitizeMemberNameRegexPattern] = Common.SanitizeMemberNameRegex, - [Common.SanitizeNameRegexPattern] = Common.SanitizeNameRegex, - [Configuration.DefaultTagPrefixRegexPattern] = Configuration.DefaultTagPrefixRegex, - [Configuration.DefaultVersionInBranchRegexPattern] = Configuration.DefaultVersionInBranchRegex, - [Configuration.MainBranchRegexPattern] = Configuration.MainBranchRegex, - [Configuration.DevelopBranchRegexPattern] = Configuration.DevelopBranchRegex, - [Configuration.ReleaseBranchRegexPattern] = Configuration.ReleaseBranchRegex, - [Configuration.FeatureBranchRegexPattern] = Configuration.FeatureBranchRegex, - [Configuration.PullRequestBranchRegexPattern] = Configuration.PullRequestBranchRegex, - [Configuration.HotfixBranchRegexPattern] = Configuration.HotfixBranchRegex, - [Configuration.SupportBranchRegexPattern] = Configuration.SupportBranchRegex, - [Configuration.UnknownBranchRegexPattern] = Configuration.UnknownBranchRegex, - [MergeMessage.DefaultMergeMessageRegexPattern] = MergeMessage.DefaultMergeMessageRegex, - [MergeMessage.SmartGitMergeMessageRegexPattern] = MergeMessage.SmartGitMergeMessageRegex, - [MergeMessage.BitBucketPullMergeMessageRegexPattern] = MergeMessage.BitBucketPullMergeMessageRegex, - [MergeMessage.BitBucketPullv7MergeMessageRegexPattern] = MergeMessage.BitBucketPullv7MergeMessageRegex, - [MergeMessage.BitBucketCloudPullMergeMessageRegexPattern] = MergeMessage.BitBucketCloudPullMergeMessageRegex, - [MergeMessage.GitHubPullMergeMessageRegexPattern] = MergeMessage.GitHubPullMergeMessageRegex, - [MergeMessage.RemoteTrackingMergeMessageRegexPattern] = MergeMessage.RemoteTrackingMergeMessageRegex, - [MergeMessage.AzureDevOpsPullMergeMessageRegexPattern] = MergeMessage.AzureDevOpsPullMergeMessageRegex, - [Output.AssemblyVersionRegexPattern] = Output.AssemblyVersionRegex, - [Output.AssemblyInfoVersionRegexPattern] = Output.AssemblyInfoVersionRegex, - [Output.AssemblyFileVersionRegexPattern] = Output.AssemblyFileVersionRegex, - [Output.SanitizeAssemblyInfoRegexPattern] = Output.SanitizeAssemblyInfoRegex, - [Output.CsharpAssemblyAttributeRegexPattern] = Output.CsharpAssemblyAttributeRegex, - [Output.FsharpAssemblyAttributeRegexPattern] = Output.FsharpAssemblyAttributeRegex, - [Output.VisualBasicAssemblyAttributeRegexPattern] = Output.VisualBasicAssemblyAttributeRegex, - [Output.SanitizeParticipantRegexPattern] = Output.SanitizeParticipantRegex, - [VersionCalculation.DefaultMajorRegexPattern] = VersionCalculation.DefaultMajorRegex, - [VersionCalculation.DefaultMinorRegexPattern] = VersionCalculation.DefaultMinorRegex, - [VersionCalculation.DefaultPatchRegexPattern] = VersionCalculation.DefaultPatchRegex, - [VersionCalculation.DefaultNoBumpRegexPattern] = VersionCalculation.DefaultNoBumpRegex, - [SemanticVersion.ParseStrictRegexPattern] = SemanticVersion.ParseStrictRegex, - [SemanticVersion.ParseLooseRegexPattern] = SemanticVersion.ParseLooseRegex, - [SemanticVersion.ParseBuildMetaDataRegexPattern] = SemanticVersion.ParseBuildMetaDataRegex, - [SemanticVersion.FormatBuildMetaDataRegexPattern] = SemanticVersion.FormatBuildMetaDataRegex, - [SemanticVersion.ParsePreReleaseTagRegexPattern] = SemanticVersion.ParsePreReleaseTagRegex, - [AssemblyVersion.CSharp.TriviaRegexPattern] = AssemblyVersion.CSharp.TriviaRegex, - [AssemblyVersion.CSharp.AttributeRegexPattern] = AssemblyVersion.CSharp.AttributeRegex, - [AssemblyVersion.FSharp.TriviaRegexPattern] = AssemblyVersion.FSharp.TriviaRegex, - // AssemblyVersion.FSharp.TriviaRegexPattern is same as C# so can't be added to the cache so C# TriviaRegex is used for F# as well. - [AssemblyVersion.FSharp.AttributeRegexPattern] = AssemblyVersion.FSharp.AttributeRegex, - [AssemblyVersion.VisualBasic.TriviaRegexPattern] = AssemblyVersion.VisualBasic.TriviaRegex, - [AssemblyVersion.VisualBasic.AttributeRegexPattern] = AssemblyVersion.VisualBasic.AttributeRegex - }.ToImmutableDictionary(); - } - - internal static partial class Common - { - [StringSyntax(StringSyntaxAttribute.Regex)] - internal const string SwitchArgumentRegexPattern = @"/\w+:"; - - [StringSyntax(StringSyntaxAttribute.Regex)] - internal const string ObscurePasswordRegexPattern = "(https?://)(.+)(:.+@)"; - - [StringSyntax(StringSyntaxAttribute.Regex)] - internal const string ExpandTokensRegexPattern = """ - \{ # Opening brace - (?: # Start of either env or member expression - env:(?!env:)(?<envvar>[A-Za-z_][A-Za-z0-9_]*) # Only a single env: prefix, not followed by another env: - | # OR - (?<member>[A-Za-z_][A-Za-z0-9_]*) # member/property name - (?: # Optional format specifier - :(?<format>[A-Za-z0-9\.\-,]+) # Colon followed by format string (no spaces, ?, or }), format cannot contain colon - )? # Format is optional - ) # End group for env or member - (?: # Optional fallback group - \s*\?\?\s+ # '??' operator with optional whitespace: exactly two question marks for fallback - (?: # Fallback value alternatives: - (?<fallback>\w+) # A single word fallback - | # OR - "(?<fallback>[^"]*)" # A quoted string fallback - ) - )? # Fallback is optional - \} - """; - - /// <summary> - /// Allow alphanumeric, underscore, colon (for custom format specification), hyphen, and dot - /// </summary> - [StringSyntax(StringSyntaxAttribute.Regex, Options)] - internal const string SanitizeEnvVarNameRegexPattern = @"^[A-Za-z0-9_:\-\.]+$"; - - /// <summary> - /// Allow alphanumeric, underscore, and dot for property/field access - /// </summary> - [StringSyntax(StringSyntaxAttribute.Regex, Options)] - internal const string SanitizeMemberNameRegexPattern = @"^[A-Za-z0-9_\.]+$"; - - [StringSyntax(StringSyntaxAttribute.Regex, Options)] - internal const string SanitizeNameRegexPattern = "[^a-zA-Z0-9-]"; - - [GeneratedRegex(SwitchArgumentRegexPattern, Options)] - public static partial Regex SwitchArgumentRegex(); - - [GeneratedRegex(ObscurePasswordRegexPattern, Options)] - public static partial Regex ObscurePasswordRegex(); - - [GeneratedRegex(ExpandTokensRegexPattern, RegexOptions.IgnorePatternWhitespace | Options)] - public static partial Regex ExpandTokensRegex(); - - [GeneratedRegex(SanitizeEnvVarNameRegexPattern, Options)] - public static partial Regex SanitizeEnvVarNameRegex(); - - [GeneratedRegex(SanitizeMemberNameRegexPattern, Options)] - public static partial Regex SanitizeMemberNameRegex(); - - [GeneratedRegex(SanitizeNameRegexPattern, Options)] - public static partial Regex SanitizeNameRegex(); + // Descriptor used to centralize pattern + compiled regex instance. Extendable with options/timeout metadata later. + private readonly record struct RegexDescriptor(string Pattern, Regex Regex); + + // Central descriptor list – single source of truth for known patterns. Order not significant. + private static readonly RegexDescriptor[] Descriptors = + [ + new(SwitchArgumentRegexPattern, SwitchArgumentRegex), + new(ObscurePasswordRegexPattern, ObscurePasswordRegex), + new(ExpandTokensRegexPattern, ExpandTokensRegex), + new(SanitizeEnvVarNameRegexPattern, SanitizeEnvVarNameRegex), + new(SanitizeMemberNameRegexPattern, SanitizeMemberNameRegex), + new(SanitizeNameRegexPattern, SanitizeNameRegex), + new(Configuration.DefaultTagPrefixRegexPattern, Configuration.DefaultTagPrefixRegex), + new(Configuration.DefaultVersionInBranchRegexPattern, Configuration.DefaultVersionInBranchRegex), + new(Configuration.MainBranchRegexPattern, Configuration.MainBranchRegex), + new(Configuration.DevelopBranchRegexPattern, Configuration.DevelopBranchRegex), + new(Configuration.ReleaseBranchRegexPattern, Configuration.ReleaseBranchRegex), + new(Configuration.FeatureBranchRegexPattern, Configuration.FeatureBranchRegex), + new(Configuration.PullRequestBranchRegexPattern, Configuration.PullRequestBranchRegex), + new(Configuration.HotfixBranchRegexPattern, Configuration.HotfixBranchRegex), + new(Configuration.SupportBranchRegexPattern, Configuration.SupportBranchRegex), + new(Configuration.UnknownBranchRegexPattern, Configuration.UnknownBranchRegex), + new(MergeMessage.DefaultMergeMessageRegexPattern, MergeMessage.DefaultMergeMessageRegex), + new(MergeMessage.SmartGitMergeMessageRegexPattern, MergeMessage.SmartGitMergeMessageRegex), + new(MergeMessage.BitBucketPullMergeMessageRegexPattern, MergeMessage.BitBucketPullMergeMessageRegex), + new(MergeMessage.BitBucketPullv7MergeMessageRegexPattern, MergeMessage.BitBucketPullv7MergeMessageRegex), + new(MergeMessage.BitBucketCloudPullMergeMessageRegexPattern, MergeMessage.BitBucketCloudPullMergeMessageRegex), + new(MergeMessage.GitHubPullMergeMessageRegexPattern, MergeMessage.GitHubPullMergeMessageRegex), + new(MergeMessage.RemoteTrackingMergeMessageRegexPattern, MergeMessage.RemoteTrackingMergeMessageRegex), + new(MergeMessage.AzureDevOpsPullMergeMessageRegexPattern, MergeMessage.AzureDevOpsPullMergeMessageRegex), + new(Output.AssemblyVersionRegexPattern, Output.AssemblyVersionRegex), + new(Output.AssemblyInfoVersionRegexPattern, Output.AssemblyInfoVersionRegex), + new(Output.AssemblyFileVersionRegexPattern, Output.AssemblyFileVersionRegex), + new(Output.SanitizeAssemblyInfoRegexPattern, Output.SanitizeAssemblyInfoRegex), + new(Output.CsharpAssemblyAttributeRegexPattern, Output.CsharpAssemblyAttributeRegex), + new(Output.FsharpAssemblyAttributeRegexPattern, Output.FsharpAssemblyAttributeRegex), + new(Output.VisualBasicAssemblyAttributeRegexPattern, Output.VisualBasicAssemblyAttributeRegex), + new(Output.SanitizeParticipantRegexPattern, Output.SanitizeParticipantRegex), + new(VersionCalculation.DefaultMajorRegexPattern, VersionCalculation.DefaultMajorRegex), + new(VersionCalculation.DefaultMinorRegexPattern, VersionCalculation.DefaultMinorRegex), + new(VersionCalculation.DefaultPatchRegexPattern, VersionCalculation.DefaultPatchRegex), + new(VersionCalculation.DefaultNoBumpRegexPattern, VersionCalculation.DefaultNoBumpRegex), + new(SemanticVersion.ParseStrictRegexPattern, SemanticVersion.ParseStrictRegex), + new(SemanticVersion.ParseLooseRegexPattern, SemanticVersion.ParseLooseRegex), + new(SemanticVersion.ParseBuildMetaDataRegexPattern, SemanticVersion.ParseBuildMetaDataRegex), + new(SemanticVersion.FormatBuildMetaDataRegexPattern, SemanticVersion.FormatBuildMetaDataRegex), + new(SemanticVersion.ParsePreReleaseTagRegexPattern, SemanticVersion.ParsePreReleaseTagRegex), + // Trivia pattern unified: C# & F# share same underlying pattern; only map once under C# constant. + new(AssemblyVersion.CSharp.TriviaRegexPattern, AssemblyVersion.CSharp.TriviaRegex), + new(AssemblyVersion.CSharp.AttributeRegexPattern, AssemblyVersion.CSharp.AttributeRegex), + // F# Trivia pattern identical – Attribute differs, so include attribute pattern only. + new(AssemblyVersion.FSharp.AttributeRegexPattern, AssemblyVersion.FSharp.AttributeRegex), + new(AssemblyVersion.VisualBasic.TriviaRegexPattern, AssemblyVersion.VisualBasic.TriviaRegex), + new(AssemblyVersion.VisualBasic.AttributeRegexPattern, AssemblyVersion.VisualBasic.AttributeRegex) + ]; + + private static readonly ImmutableDictionary<string, Regex> KnownRegexes = + Descriptors.ToImmutableDictionary(d => d.Pattern, d => d.Regex); } internal static partial class Configuration @@ -173,35 +220,105 @@ internal static partial class Configuration [StringSyntax(StringSyntaxAttribute.Regex)] internal const string UnknownBranchRegexPattern = "(?<BranchName>.+)"; +#if NET9_0_OR_GREATER + [GeneratedRegex(DefaultTagPrefixRegexPattern, Options)] + public static partial Regex DefaultTagPrefixRegex { get; } +#else [GeneratedRegex(DefaultTagPrefixRegexPattern, Options)] - public static partial Regex DefaultTagPrefixRegex(); + private static partial Regex DefaultTagPrefixRegexImpl(); + + public static Regex DefaultTagPrefixRegex { get; } = DefaultTagPrefixRegexImpl(); +#endif +#if NET9_0_OR_GREATER [GeneratedRegex(DefaultVersionInBranchRegexPattern, Options)] - public static partial Regex DefaultVersionInBranchRegex(); + public static partial Regex DefaultVersionInBranchRegex { get; } +#else + [GeneratedRegex(DefaultVersionInBranchRegexPattern, Options)] + private static partial Regex DefaultVersionInBranchRegexImpl(); + + public static Regex DefaultVersionInBranchRegex { get; } = DefaultVersionInBranchRegexImpl(); +#endif +#if NET9_0_OR_GREATER + [GeneratedRegex(MainBranchRegexPattern, Options)] + public static partial Regex MainBranchRegex { get; } +#else [GeneratedRegex(MainBranchRegexPattern, Options)] - public static partial Regex MainBranchRegex(); + private static partial Regex MainBranchRegexImpl(); + public static Regex MainBranchRegex { get; } = MainBranchRegexImpl(); +#endif + +#if NET9_0_OR_GREATER + [GeneratedRegex(DevelopBranchRegexPattern, Options)] + public static partial Regex DevelopBranchRegex { get; } +#else [GeneratedRegex(DevelopBranchRegexPattern, Options)] - public static partial Regex DevelopBranchRegex(); + private static partial Regex DevelopBranchRegexImpl(); + + public static Regex DevelopBranchRegex { get; } = DevelopBranchRegexImpl(); +#endif +#if NET9_0_OR_GREATER [GeneratedRegex(ReleaseBranchRegexPattern, Options)] - public static partial Regex ReleaseBranchRegex(); + public static partial Regex ReleaseBranchRegex { get; } +#else + [GeneratedRegex(ReleaseBranchRegexPattern, Options)] + private static partial Regex ReleaseBranchRegexImpl(); + + public static Regex ReleaseBranchRegex { get; } = ReleaseBranchRegexImpl(); +#endif +#if NET9_0_OR_GREATER + [GeneratedRegex(FeatureBranchRegexPattern, Options)] + public static partial Regex FeatureBranchRegex { get; } +#else [GeneratedRegex(FeatureBranchRegexPattern, Options)] - public static partial Regex FeatureBranchRegex(); + private static partial Regex FeatureBranchRegexImpl(); + public static Regex FeatureBranchRegex { get; } = FeatureBranchRegexImpl(); +#endif + +#if NET9_0_OR_GREATER + [GeneratedRegex(PullRequestBranchRegexPattern, Options)] + public static partial Regex PullRequestBranchRegex { get; } +#else [GeneratedRegex(PullRequestBranchRegexPattern, Options)] - public static partial Regex PullRequestBranchRegex(); + private static partial Regex PullRequestBranchRegexImpl(); + + public static Regex PullRequestBranchRegex { get; } = PullRequestBranchRegexImpl(); +#endif +#if NET9_0_OR_GREATER [GeneratedRegex(HotfixBranchRegexPattern, Options)] - public static partial Regex HotfixBranchRegex(); + public static partial Regex HotfixBranchRegex { get; } +#else + [GeneratedRegex(HotfixBranchRegexPattern, Options)] + private static partial Regex HotfixBranchRegexImpl(); + + public static Regex HotfixBranchRegex { get; } = HotfixBranchRegexImpl(); +#endif +#if NET9_0_OR_GREATER + [GeneratedRegex(SupportBranchRegexPattern, Options)] + public static partial Regex SupportBranchRegex { get; } +#else [GeneratedRegex(SupportBranchRegexPattern, Options)] - public static partial Regex SupportBranchRegex(); + private static partial Regex SupportBranchRegexImpl(); + public static Regex SupportBranchRegex { get; } = SupportBranchRegexImpl(); +#endif + +#if NET9_0_OR_GREATER + [GeneratedRegex(UnknownBranchRegexPattern, Options)] + public static partial Regex UnknownBranchRegex { get; } +#else [GeneratedRegex(UnknownBranchRegexPattern, Options)] - public static partial Regex UnknownBranchRegex(); + private static partial Regex UnknownBranchRegexImpl(); + + public static Regex UnknownBranchRegex { get; } = UnknownBranchRegexImpl(); +#endif } internal static partial class MergeMessage @@ -230,29 +347,85 @@ internal static partial class MergeMessage [StringSyntax(StringSyntaxAttribute.Regex)] internal const string AzureDevOpsPullMergeMessageRegexPattern = @"^Merge pull request (?<PullRequestNumber>\d+) from (?<SourceBranch>[^\s]*) into (?<TargetBranch>[^\s]*)"; +#if NET9_0_OR_GREATER + [GeneratedRegex(DefaultMergeMessageRegexPattern, Options)] + public static partial Regex DefaultMergeMessageRegex { get; } +#else [GeneratedRegex(DefaultMergeMessageRegexPattern, Options)] - public static partial Regex DefaultMergeMessageRegex(); + private static partial Regex DefaultMergeMessageRegexImpl(); + + public static Regex DefaultMergeMessageRegex { get; } = DefaultMergeMessageRegexImpl(); +#endif +#if NET9_0_OR_GREATER [GeneratedRegex(SmartGitMergeMessageRegexPattern, Options)] - public static partial Regex SmartGitMergeMessageRegex(); + public static partial Regex SmartGitMergeMessageRegex { get; } +#else + [GeneratedRegex(SmartGitMergeMessageRegexPattern, Options)] + private static partial Regex SmartGitMergeMessageRegexImpl(); + + public static Regex SmartGitMergeMessageRegex { get; } = SmartGitMergeMessageRegexImpl(); +#endif +#if NET9_0_OR_GREATER + [GeneratedRegex(BitBucketPullMergeMessageRegexPattern, Options)] + public static partial Regex BitBucketPullMergeMessageRegex { get; } +#else [GeneratedRegex(BitBucketPullMergeMessageRegexPattern, Options)] - public static partial Regex BitBucketPullMergeMessageRegex(); + private static partial Regex BitBucketPullMergeMessageRegexImpl(); + public static Regex BitBucketPullMergeMessageRegex { get; } = BitBucketPullMergeMessageRegexImpl(); +#endif + +#if NET9_0_OR_GREATER + [GeneratedRegex(BitBucketPullv7MergeMessageRegexPattern, Options)] + public static partial Regex BitBucketPullv7MergeMessageRegex { get; } +#else [GeneratedRegex(BitBucketPullv7MergeMessageRegexPattern, Options)] - public static partial Regex BitBucketPullv7MergeMessageRegex(); + private static partial Regex BitBucketPullv7MergeMessageRegexImpl(); + + public static Regex BitBucketPullv7MergeMessageRegex { get; } = BitBucketPullv7MergeMessageRegexImpl(); +#endif +#if NET9_0_OR_GREATER [GeneratedRegex(BitBucketCloudPullMergeMessageRegexPattern, Options)] - public static partial Regex BitBucketCloudPullMergeMessageRegex(); + public static partial Regex BitBucketCloudPullMergeMessageRegex { get; } +#else + [GeneratedRegex(BitBucketCloudPullMergeMessageRegexPattern, Options)] + private static partial Regex BitBucketCloudPullMergeMessageRegexImpl(); + + public static Regex BitBucketCloudPullMergeMessageRegex { get; } = BitBucketCloudPullMergeMessageRegexImpl(); +#endif +#if NET9_0_OR_GREATER [GeneratedRegex(GitHubPullMergeMessageRegexPattern, Options)] - public static partial Regex GitHubPullMergeMessageRegex(); + public static partial Regex GitHubPullMergeMessageRegex { get; } +#else + [GeneratedRegex(GitHubPullMergeMessageRegexPattern, Options)] + private static partial Regex GitHubPullMergeMessageRegexImpl(); + + public static Regex GitHubPullMergeMessageRegex { get; } = GitHubPullMergeMessageRegexImpl(); +#endif +#if NET9_0_OR_GREATER + [GeneratedRegex(RemoteTrackingMergeMessageRegexPattern, Options)] + public static partial Regex RemoteTrackingMergeMessageRegex { get; } +#else [GeneratedRegex(RemoteTrackingMergeMessageRegexPattern, Options)] - public static partial Regex RemoteTrackingMergeMessageRegex(); + private static partial Regex RemoteTrackingMergeMessageRegexImpl(); + public static Regex RemoteTrackingMergeMessageRegex { get; } = RemoteTrackingMergeMessageRegexImpl(); +#endif + +#if NET9_0_OR_GREATER + [GeneratedRegex(AzureDevOpsPullMergeMessageRegexPattern, Options)] + public static partial Regex AzureDevOpsPullMergeMessageRegex { get; } +#else [GeneratedRegex(AzureDevOpsPullMergeMessageRegexPattern, Options)] - public static partial Regex AzureDevOpsPullMergeMessageRegex(); + private static partial Regex AzureDevOpsPullMergeMessageRegexImpl(); + + public static Regex AzureDevOpsPullMergeMessageRegex { get; } = AzureDevOpsPullMergeMessageRegexImpl(); +#endif } internal static partial class Output @@ -281,29 +454,85 @@ internal static partial class Output [StringSyntax(StringSyntaxAttribute.Regex)] internal const string SanitizeAssemblyInfoRegexPattern = "[^0-9A-Za-z-.+]"; +#if NET9_0_OR_GREATER [GeneratedRegex(AssemblyVersionRegexPattern, Options)] - public static partial Regex AssemblyVersionRegex(); + public static partial Regex AssemblyVersionRegex { get; } +#else + [GeneratedRegex(AssemblyVersionRegexPattern, Options)] + private static partial Regex AssemblyVersionRegexImpl(); + + public static Regex AssemblyVersionRegex { get; } = AssemblyVersionRegexImpl(); +#endif +#if NET9_0_OR_GREATER + [GeneratedRegex(AssemblyInfoVersionRegexPattern, Options)] + public static partial Regex AssemblyInfoVersionRegex { get; } +#else [GeneratedRegex(AssemblyInfoVersionRegexPattern, Options)] - public static partial Regex AssemblyInfoVersionRegex(); + private static partial Regex AssemblyInfoVersionRegexImpl(); + public static Regex AssemblyInfoVersionRegex { get; } = AssemblyInfoVersionRegexImpl(); +#endif + +#if NET9_0_OR_GREATER + [GeneratedRegex(AssemblyFileVersionRegexPattern, Options)] + public static partial Regex AssemblyFileVersionRegex { get; } +#else [GeneratedRegex(AssemblyFileVersionRegexPattern, Options)] - public static partial Regex AssemblyFileVersionRegex(); + private static partial Regex AssemblyFileVersionRegexImpl(); + public static Regex AssemblyFileVersionRegex { get; } = AssemblyFileVersionRegexImpl(); +#endif + +#if NET9_0_OR_GREATER + [GeneratedRegex(CsharpAssemblyAttributeRegexPattern, Options | RegexOptions.Multiline)] + public static partial Regex CsharpAssemblyAttributeRegex { get; } +#else [GeneratedRegex(CsharpAssemblyAttributeRegexPattern, Options | RegexOptions.Multiline)] - public static partial Regex CsharpAssemblyAttributeRegex(); + private static partial Regex CsharpAssemblyAttributeRegexImpl(); + + public static Regex CsharpAssemblyAttributeRegex { get; } = CsharpAssemblyAttributeRegexImpl(); +#endif +#if NET9_0_OR_GREATER [GeneratedRegex(FsharpAssemblyAttributeRegexPattern, Options | RegexOptions.Multiline)] - public static partial Regex FsharpAssemblyAttributeRegex(); + public static partial Regex FsharpAssemblyAttributeRegex { get; } +#else + [GeneratedRegex(FsharpAssemblyAttributeRegexPattern, Options | RegexOptions.Multiline)] + private static partial Regex FsharpAssemblyAttributeRegexImpl(); + + public static Regex FsharpAssemblyAttributeRegex { get; } = FsharpAssemblyAttributeRegexImpl(); +#endif +#if NET9_0_OR_GREATER + [GeneratedRegex(VisualBasicAssemblyAttributeRegexPattern, Options | RegexOptions.Multiline)] + public static partial Regex VisualBasicAssemblyAttributeRegex { get; } +#else [GeneratedRegex(VisualBasicAssemblyAttributeRegexPattern, Options | RegexOptions.Multiline)] - public static partial Regex VisualBasicAssemblyAttributeRegex(); + private static partial Regex VisualBasicAssemblyAttributeRegexImpl(); + public static Regex VisualBasicAssemblyAttributeRegex { get; } = VisualBasicAssemblyAttributeRegexImpl(); +#endif + +#if NET9_0_OR_GREATER + [GeneratedRegex(SanitizeParticipantRegexPattern, Options)] + public static partial Regex SanitizeParticipantRegex { get; } +#else [GeneratedRegex(SanitizeParticipantRegexPattern, Options)] - public static partial Regex SanitizeParticipantRegex(); + private static partial Regex SanitizeParticipantRegexImpl(); + + public static Regex SanitizeParticipantRegex { get; } = SanitizeParticipantRegexImpl(); +#endif +#if NET9_0_OR_GREATER [GeneratedRegex(SanitizeAssemblyInfoRegexPattern, RegexOptions.IgnorePatternWhitespace | Options)] - public static partial Regex SanitizeAssemblyInfoRegex(); + public static partial Regex SanitizeAssemblyInfoRegex { get; } +#else + [GeneratedRegex(SanitizeAssemblyInfoRegexPattern, RegexOptions.IgnorePatternWhitespace | Options)] + private static partial Regex SanitizeAssemblyInfoRegexImpl(); + + public static Regex SanitizeAssemblyInfoRegex { get; } = SanitizeAssemblyInfoRegexImpl(); +#endif } internal static partial class VersionCalculation @@ -320,17 +549,45 @@ internal static partial class VersionCalculation [StringSyntax(StringSyntaxAttribute.Regex)] internal const string DefaultNoBumpRegexPattern = @"\+semver:\s?(none|skip)"; +#if NET9_0_OR_GREATER + [GeneratedRegex(DefaultMajorRegexPattern, Options)] + public static partial Regex DefaultMajorRegex { get; } +#else [GeneratedRegex(DefaultMajorRegexPattern, Options)] - public static partial Regex DefaultMajorRegex(); + private static partial Regex DefaultMajorRegexImpl(); + public static Regex DefaultMajorRegex { get; } = DefaultMajorRegexImpl(); +#endif + +#if NET9_0_OR_GREATER + [GeneratedRegex(DefaultMinorRegexPattern, Options)] + public static partial Regex DefaultMinorRegex { get; } +#else [GeneratedRegex(DefaultMinorRegexPattern, Options)] - public static partial Regex DefaultMinorRegex(); + private static partial Regex DefaultMinorRegexImpl(); + + public static Regex DefaultMinorRegex { get; } = DefaultMinorRegexImpl(); +#endif +#if NET9_0_OR_GREATER [GeneratedRegex(DefaultPatchRegexPattern, Options)] - public static partial Regex DefaultPatchRegex(); + public static partial Regex DefaultPatchRegex { get; } +#else + [GeneratedRegex(DefaultPatchRegexPattern, Options)] + private static partial Regex DefaultPatchRegexImpl(); + + public static Regex DefaultPatchRegex { get; } = DefaultPatchRegexImpl(); +#endif +#if NET9_0_OR_GREATER + [GeneratedRegex(DefaultNoBumpRegexPattern, Options)] + public static partial Regex DefaultNoBumpRegex { get; } +#else [GeneratedRegex(DefaultNoBumpRegexPattern, Options)] - public static partial Regex DefaultNoBumpRegex(); + private static partial Regex DefaultNoBumpRegexImpl(); + + public static Regex DefaultNoBumpRegex { get; } = DefaultNoBumpRegexImpl(); +#endif } internal static partial class SemanticVersion @@ -351,20 +608,55 @@ internal static partial class SemanticVersion internal const string ParsePreReleaseTagRegexPattern = @"(?<name>.*?)\.?(?<number>\d+)?$"; // uses the git-semver spec https://github.com/semver/semver/blob/master/semver.md +#if NET9_0_OR_GREATER + [GeneratedRegex(ParseStrictRegexPattern, Options)] + public static partial Regex ParseStrictRegex { get; } +#else [GeneratedRegex(ParseStrictRegexPattern, Options)] - public static partial Regex ParseStrictRegex(); + private static partial Regex ParseStrictRegexImpl(); + + public static Regex ParseStrictRegex { get; } = ParseStrictRegexImpl(); +#endif +#if NET9_0_OR_GREATER [GeneratedRegex(ParseLooseRegexPattern, Options)] - public static partial Regex ParseLooseRegex(); + public static partial Regex ParseLooseRegex { get; } +#else + [GeneratedRegex(ParseLooseRegexPattern, Options)] + private static partial Regex ParseLooseRegexImpl(); + + public static Regex ParseLooseRegex { get; } = ParseLooseRegexImpl(); +#endif +#if NET9_0_OR_GREATER [GeneratedRegex(ParseBuildMetaDataRegexPattern, Options)] - public static partial Regex ParseBuildMetaDataRegex(); + public static partial Regex ParseBuildMetaDataRegex { get; } +#else + [GeneratedRegex(ParseBuildMetaDataRegexPattern, Options)] + private static partial Regex ParseBuildMetaDataRegexImpl(); + + public static Regex ParseBuildMetaDataRegex { get; } = ParseBuildMetaDataRegexImpl(); +#endif +#if NET9_0_OR_GREATER + [GeneratedRegex(FormatBuildMetaDataRegexPattern, Options)] + public static partial Regex FormatBuildMetaDataRegex { get; } +#else [GeneratedRegex(FormatBuildMetaDataRegexPattern, Options)] - public static partial Regex FormatBuildMetaDataRegex(); + private static partial Regex FormatBuildMetaDataRegexImpl(); + public static Regex FormatBuildMetaDataRegex { get; } = FormatBuildMetaDataRegexImpl(); +#endif + +#if NET9_0_OR_GREATER + [GeneratedRegex(ParsePreReleaseTagRegexPattern, Options)] + public static partial Regex ParsePreReleaseTagRegex { get; } +#else [GeneratedRegex(ParsePreReleaseTagRegexPattern, Options)] - public static partial Regex ParsePreReleaseTagRegex(); + private static partial Regex ParsePreReleaseTagRegexImpl(); + + public static Regex ParsePreReleaseTagRegex { get; } = ParsePreReleaseTagRegexImpl(); +#endif } internal static partial class AssemblyVersion @@ -389,22 +681,31 @@ internal static partial class CSharp \s*\(\s*\)\s*\] # End brackets ()] """; +#if NET9_0_OR_GREATER [GeneratedRegex(TriviaRegexPattern, RegexOptions.Singleline | RegexOptions.IgnorePatternWhitespace | Options)] - public static partial Regex TriviaRegex(); + public static partial Regex TriviaRegex { get; } +#else + [GeneratedRegex(TriviaRegexPattern, RegexOptions.Singleline | RegexOptions.IgnorePatternWhitespace | Options)] + private static partial Regex TriviaRegexImpl(); + + public static Regex TriviaRegex { get; } = TriviaRegexImpl(); +#endif +#if NET9_0_OR_GREATER + [GeneratedRegex(AttributeRegexPattern, RegexOptions.IgnorePatternWhitespace | Options)] + public static partial Regex AttributeRegex { get; } +#else [GeneratedRegex(AttributeRegexPattern, RegexOptions.IgnorePatternWhitespace | Options)] - public static partial Regex AttributeRegex(); + private static partial Regex AttributeRegexImpl(); + + public static Regex AttributeRegex { get; } = AttributeRegexImpl(); +#endif } internal static partial class FSharp { [StringSyntax(StringSyntaxAttribute.Regex)] - internal const string TriviaRegexPattern = - """ - /\*(.*?)\*/ # Block comments: matches /* ... */ - |//(.*?)\r?\n # Line comments: matches // ... followed by a newline - |"((\\[^\n]|[^"\n])*)" # Strings: matches " ... " including escaped quotes - """; + internal const string TriviaRegexPattern = CSharp.TriviaRegexPattern; // unified [StringSyntax(StringSyntaxAttribute.Regex)] internal const string AttributeRegexPattern = @@ -420,11 +721,25 @@ internal static partial class FSharp /// Note that while available to call direct, as the C# TriviaRegex is the same it will handle any calls through the cache for F# too. /// </summary> /// <returns></returns> +#if NET9_0_OR_GREATER [GeneratedRegex(TriviaRegexPattern, RegexOptions.Singleline | RegexOptions.IgnorePatternWhitespace | Options)] - public static partial Regex TriviaRegex(); + public static partial Regex TriviaRegex { get; } +#else + [GeneratedRegex(TriviaRegexPattern, RegexOptions.Singleline | RegexOptions.IgnorePatternWhitespace | Options)] + private static partial Regex TriviaRegexImpl(); + + public static Regex TriviaRegex { get; } = TriviaRegexImpl(); +#endif +#if NET9_0_OR_GREATER + [GeneratedRegex(AttributeRegexPattern, RegexOptions.IgnorePatternWhitespace | Options)] + public static partial Regex AttributeRegex { get; } +#else [GeneratedRegex(AttributeRegexPattern, RegexOptions.IgnorePatternWhitespace | Options)] - public static partial Regex AttributeRegex(); + private static partial Regex AttributeRegexImpl(); + + public static Regex AttributeRegex { get; } = AttributeRegexImpl(); +#endif } internal static partial class VisualBasic @@ -446,11 +761,25 @@ internal static partial class VisualBasic \s*\(\s*\)\s*\> # End brackets ()> """; +#if NET9_0_OR_GREATER + [GeneratedRegex(TriviaRegexPattern, RegexOptions.Singleline | RegexOptions.IgnorePatternWhitespace | Options)] + public static partial Regex TriviaRegex { get; } +#else [GeneratedRegex(TriviaRegexPattern, RegexOptions.Singleline | RegexOptions.IgnorePatternWhitespace | Options)] - public static partial Regex TriviaRegex(); + private static partial Regex TriviaRegexImpl(); + + public static Regex TriviaRegex { get; } = TriviaRegexImpl(); +#endif +#if NET9_0_OR_GREATER [GeneratedRegex(AttributeRegexPattern, RegexOptions.IgnorePatternWhitespace | Options)] - public static partial Regex AttributeRegex(); + public static partial Regex AttributeRegex { get; } +#else + [GeneratedRegex(AttributeRegexPattern, RegexOptions.IgnorePatternWhitespace | Options)] + private static partial Regex AttributeRegexImpl(); + + public static Regex AttributeRegex { get; } = AttributeRegexImpl(); +#endif } } } diff --git a/src/GitVersion.Core/Core/RepositoryStore.cs b/src/GitVersion.Core/Core/RepositoryStore.cs index 50b5512a07..033f74795f 100644 --- a/src/GitVersion.Core/Core/RepositoryStore.cs +++ b/src/GitVersion.Core/Core/RepositoryStore.cs @@ -1,4 +1,3 @@ -using GitVersion.Common; using GitVersion.Configuration; using GitVersion.Extensions; using GitVersion.Git; @@ -25,7 +24,7 @@ internal class RepositoryStore(ILog log, IGitRepository repository) : IRepositor /// </summary> public ICommit? FindMergeBase(IBranch? branch, IBranch? otherBranch) { - var mergeBaseFinder = new MergeBaseFinder(this, log); + var mergeBaseFinder = new MergeBaseFinder(this, this.log); return mergeBaseFinder.FindMergeBaseOf(branch, otherBranch); } diff --git a/src/GitVersion.Core/Core/SourceBranchFinder.cs b/src/GitVersion.Core/Core/SourceBranchFinder.cs index 5d8b4095d3..98b7ea01d0 100644 --- a/src/GitVersion.Core/Core/SourceBranchFinder.cs +++ b/src/GitVersion.Core/Core/SourceBranchFinder.cs @@ -1,6 +1,5 @@ using System.Text.RegularExpressions; using GitVersion.Configuration; -using GitVersion.Core; using GitVersion.Extensions; using GitVersion.Git; diff --git a/src/GitVersion.Core/Core/TaggedSemanticVersionRepository.cs b/src/GitVersion.Core/Core/TaggedSemanticVersionRepository.cs index 60bf291f6b..6d40fe390e 100644 --- a/src/GitVersion.Core/Core/TaggedSemanticVersionRepository.cs +++ b/src/GitVersion.Core/Core/TaggedSemanticVersionRepository.cs @@ -1,11 +1,10 @@ using System.Collections.Concurrent; -using GitVersion.Common; using GitVersion.Configuration; using GitVersion.Extensions; using GitVersion.Git; using GitVersion.Logging; -namespace GitVersion.Core; +namespace GitVersion; internal sealed class TaggedSemanticVersionRepository(ILog log, IRepositoryStore repositoryStore) : ITaggedSemanticVersionRepository { @@ -26,7 +25,7 @@ public ILookup<ICommit, SemanticVersionWithTag> GetTaggedSemanticVersionsOfBranc tagPrefix ??= string.Empty; var isCached = true; - var result = taggedSemanticVersionsOfBranchCache.GetOrAdd(new(branch, tagPrefix, format), _ => + var result = this.taggedSemanticVersionsOfBranchCache.GetOrAdd(new(branch, tagPrefix, format), _ => { isCached = false; return [.. GetElements().Distinct().OrderByDescending(element => element.Tag.Commit.When)]; @@ -67,7 +66,7 @@ public ILookup<ICommit, SemanticVersionWithTag> GetTaggedSemanticVersionsOfMerge tagPrefix ??= string.Empty; var isCached = true; - var result = taggedSemanticVersionsOfMergeTargetCache.GetOrAdd(new(branch, tagPrefix, format), _ => + var result = this.taggedSemanticVersionsOfMergeTargetCache.GetOrAdd(new(branch, tagPrefix, format), _ => { isCached = false; return [.. GetElements().Distinct().OrderByDescending(element => element.Key.When)]; @@ -107,7 +106,7 @@ public ILookup<ICommit, SemanticVersionWithTag> GetTaggedSemanticVersions( tagPrefix ??= string.Empty; var isCached = true; - var result = taggedSemanticVersionsCache.GetOrAdd(new(tagPrefix, format), _ => + var result = this.taggedSemanticVersionsCache.GetOrAdd(new(tagPrefix, format), _ => { isCached = false; return [.. GetElements().OrderByDescending(element => element.Tag.Commit.When)]; diff --git a/src/GitVersion.Core/Core/TaggedSemanticVersionService.cs b/src/GitVersion.Core/Core/TaggedSemanticVersionService.cs index 37a65a1930..d8b9e59e1c 100644 --- a/src/GitVersion.Core/Core/TaggedSemanticVersionService.cs +++ b/src/GitVersion.Core/Core/TaggedSemanticVersionService.cs @@ -1,10 +1,9 @@ using GitVersion.Configuration; using GitVersion.Extensions; using GitVersion.Git; - using CommitSemanticVersion = (GitVersion.Git.ICommit Commit, GitVersion.SemanticVersionWithTag SemanticVersion); -namespace GitVersion.Core; +namespace GitVersion; internal sealed class TaggedSemanticVersionService( ITaggedSemanticVersionRepository repository, IBranchRepository branchRepository) @@ -55,7 +54,7 @@ IEnumerable<IEnumerable<CommitSemanticVersion>> GetElements() { yield return GetTaggedSemanticVersionsOfMainBranchesInternal( configuration: configuration, - notOlderThan: notOlderThan, + notOlderThan: null, label: label, excludeBranches: branch ); @@ -65,7 +64,7 @@ IEnumerable<IEnumerable<CommitSemanticVersion>> GetElements() { yield return GetTaggedSemanticVersionsOfReleaseBranchesInternal( configuration: configuration, - notOlderThan: notOlderThan, + notOlderThan: null, label: label, excludeBranches: branch ); diff --git a/src/GitVersion.Core/Core/TaggedSemanticVersions.cs b/src/GitVersion.Core/Core/TaggedSemanticVersions.cs index 898a70bd79..bc40982341 100644 --- a/src/GitVersion.Core/Core/TaggedSemanticVersions.cs +++ b/src/GitVersion.Core/Core/TaggedSemanticVersions.cs @@ -1,4 +1,4 @@ -namespace GitVersion.Core; +namespace GitVersion; [Flags] internal enum TaggedSemanticVersions diff --git a/src/GitVersion.Core/Extensions/AssemblyVersionsGeneratorExtensions.cs b/src/GitVersion.Core/Extensions/AssemblyVersionsGeneratorExtensions.cs index d4465c8eac..0ec0927817 100644 --- a/src/GitVersion.Core/Extensions/AssemblyVersionsGeneratorExtensions.cs +++ b/src/GitVersion.Core/Extensions/AssemblyVersionsGeneratorExtensions.cs @@ -2,27 +2,33 @@ namespace GitVersion.Extensions; +/// <summary>Extension methods on <see cref="SemanticVersion"/> for generating assembly version strings.</summary> public static class AssemblyVersionsGeneratorExtensions { - public static string? GetAssemblyVersion(this SemanticVersion sv, AssemblyVersioningScheme scheme) => - scheme switch - { - AssemblyVersioningScheme.Major => $"{sv.Major}.0.0.0", - AssemblyVersioningScheme.MajorMinor => $"{sv.Major}.{sv.Minor}.0.0", - AssemblyVersioningScheme.MajorMinorPatch => $"{sv.Major}.{sv.Minor}.{sv.Patch}.0", - AssemblyVersioningScheme.MajorMinorPatchTag => $"{sv.Major}.{sv.Minor}.{sv.Patch}.{sv.PreReleaseTag.Number ?? 0}", - AssemblyVersioningScheme.None => null, - _ => throw new ArgumentException($"Unexpected value ({scheme}).", nameof(scheme)) - }; + extension(SemanticVersion sv) + { + /// <summary>Returns the <c>AssemblyVersionAttribute</c> value for the given <paramref name="scheme"/>, or <see langword="null"/> when the scheme is <see cref="AssemblyVersioningScheme.None"/>.</summary> + public string? GetAssemblyVersion(AssemblyVersioningScheme scheme) => + scheme switch + { + AssemblyVersioningScheme.Major => $"{sv.Major}.0.0.0", + AssemblyVersioningScheme.MajorMinor => $"{sv.Major}.{sv.Minor}.0.0", + AssemblyVersioningScheme.MajorMinorPatch => $"{sv.Major}.{sv.Minor}.{sv.Patch}.0", + AssemblyVersioningScheme.MajorMinorPatchTag => $"{sv.Major}.{sv.Minor}.{sv.Patch}.{sv.PreReleaseTag.Number ?? 0}", + AssemblyVersioningScheme.None => null, + _ => throw new ArgumentException($"Unexpected value ({scheme}).", nameof(scheme)) + }; - public static string? GetAssemblyFileVersion(this SemanticVersion sv, AssemblyFileVersioningScheme scheme) => - scheme switch - { - AssemblyFileVersioningScheme.Major => $"{sv.Major}.0.0.0", - AssemblyFileVersioningScheme.MajorMinor => $"{sv.Major}.{sv.Minor}.0.0", - AssemblyFileVersioningScheme.MajorMinorPatch => $"{sv.Major}.{sv.Minor}.{sv.Patch}.0", - AssemblyFileVersioningScheme.MajorMinorPatchTag => $"{sv.Major}.{sv.Minor}.{sv.Patch}.{sv.PreReleaseTag.Number ?? 0}", - AssemblyFileVersioningScheme.None => null, - _ => throw new ArgumentException($"Unexpected value ({scheme}).", nameof(scheme)) - }; + /// <summary>Returns the <c>AssemblyFileVersionAttribute</c> value for the given <paramref name="scheme"/>, or <see langword="null"/> when the scheme is <see cref="AssemblyFileVersioningScheme.None"/>.</summary> + public string? GetAssemblyFileVersion(AssemblyFileVersioningScheme scheme) => + scheme switch + { + AssemblyFileVersioningScheme.Major => $"{sv.Major}.0.0.0", + AssemblyFileVersioningScheme.MajorMinor => $"{sv.Major}.{sv.Minor}.0.0", + AssemblyFileVersioningScheme.MajorMinorPatch => $"{sv.Major}.{sv.Minor}.{sv.Patch}.0", + AssemblyFileVersioningScheme.MajorMinorPatchTag => $"{sv.Major}.{sv.Minor}.{sv.Patch}.{sv.PreReleaseTag.Number ?? 0}", + AssemblyFileVersioningScheme.None => null, + _ => throw new ArgumentException($"Unexpected value ({scheme}).", nameof(scheme)) + }; + } } diff --git a/src/GitVersion.Core/Extensions/CommonExtensions.cs b/src/GitVersion.Core/Extensions/CommonExtensions.cs index bcb368cb5a..5e08ffb207 100644 --- a/src/GitVersion.Core/Extensions/CommonExtensions.cs +++ b/src/GitVersion.Core/Extensions/CommonExtensions.cs @@ -3,11 +3,14 @@ namespace GitVersion.Extensions; +/// <summary>General-purpose extension and guard methods used throughout GitVersion.</summary> public static class CommonExtensions { + /// <summary>Throws <see cref="ArgumentNullException"/> when <paramref name="value"/> is <see langword="null"/>; otherwise returns the value.</summary> public static T NotNull<T>([NotNull] this T? value, [CallerArgumentExpression(nameof(value))] string name = "") where T : class => value ?? throw new ArgumentNullException(name); + /// <summary>Throws <see cref="ArgumentException"/> when <paramref name="value"/> is <see langword="null"/> or empty; otherwise returns the value.</summary> public static string NotNullOrEmpty([NotNull] this string? value, [CallerArgumentExpression(nameof(value))] string name = "") { if (string.IsNullOrEmpty(value)) @@ -18,6 +21,7 @@ public static string NotNullOrEmpty([NotNull] this string? value, [CallerArgumen return value; } + /// <summary>Throws <see cref="ArgumentException"/> when <paramref name="value"/> is <see langword="null"/>, empty, or whitespace; otherwise returns the value.</summary> public static string NotNullOrWhitespace([NotNull] this string? value, [CallerArgumentExpression(nameof(value))] string name = "") { if (string.IsNullOrWhiteSpace(value)) diff --git a/src/GitVersion.Core/Extensions/ConfigurationExtensions.cs b/src/GitVersion.Core/Extensions/ConfigurationExtensions.cs index 20d51dbdcc..49880d8e06 100644 --- a/src/GitVersion.Core/Extensions/ConfigurationExtensions.cs +++ b/src/GitVersion.Core/Extensions/ConfigurationExtensions.cs @@ -1,156 +1,166 @@ -using System.IO.Abstractions; -using GitVersion.Core; using GitVersion.Extensions; +using GitVersion.Formatting; using GitVersion.Git; -using GitVersion.Helpers; using GitVersion.VersionCalculation; namespace GitVersion.Configuration; internal static class ConfigurationExtensions { - public static EffectiveBranchConfiguration GetEffectiveBranchConfiguration( - this IGitVersionConfiguration configuration, IBranch branch, EffectiveConfiguration? parentConfiguration = null) + extension(IGitVersionConfiguration configuration) { - var effectiveConfiguration = GetEffectiveConfiguration(configuration, branch.Name, parentConfiguration); - return new EffectiveBranchConfiguration(effectiveConfiguration, branch); - } + public EffectiveBranchConfiguration GetEffectiveBranchConfiguration(IBranch branch, EffectiveConfiguration? parentConfiguration = null) + { + var effectiveConfiguration = GetEffectiveConfiguration(configuration, branch.Name, parentConfiguration); + return new EffectiveBranchConfiguration(effectiveConfiguration, branch); + } - public static EffectiveConfiguration GetEffectiveConfiguration( - this IGitVersionConfiguration configuration, ReferenceName branchName, EffectiveConfiguration? parentConfiguration = null) - { - var branchConfiguration = configuration.GetBranchConfiguration(branchName); - EffectiveConfiguration? fallbackConfiguration = null; - if (branchConfiguration.Increment == IncrementStrategy.Inherit) + public EffectiveConfiguration GetEffectiveConfiguration(ReferenceName branchName, EffectiveConfiguration? parentConfiguration = null) { - fallbackConfiguration = parentConfiguration; + var branchConfiguration = configuration.GetBranchConfiguration(branchName); + EffectiveConfiguration? fallbackConfiguration = null; + if (branchConfiguration.Increment == IncrementStrategy.Inherit) + { + fallbackConfiguration = parentConfiguration; + } + return new EffectiveConfiguration(configuration, branchConfiguration, fallbackConfiguration); } - return new EffectiveConfiguration(configuration, branchConfiguration, fallbackConfiguration); - } - public static IBranchConfiguration GetBranchConfiguration(this IGitVersionConfiguration configuration, IBranch branch) - => GetBranchConfiguration(configuration, branch.NotNull().Name); + public IBranchConfiguration GetBranchConfiguration(IBranch branch) + => GetBranchConfiguration(configuration, branch.NotNull().Name); - public static IBranchConfiguration GetBranchConfiguration(this IGitVersionConfiguration configuration, ReferenceName branchName) - { - var branchConfiguration = GetBranchConfigurations(configuration, branchName.WithoutOrigin).FirstOrDefault(); - branchConfiguration ??= configuration.GetEmptyBranchConfiguration(); - return branchConfiguration; - } + public IBranchConfiguration GetBranchConfiguration(ReferenceName branchName) + { + var branchConfiguration = GetBranchConfigurations(configuration, branchName.WithoutOrigin).FirstOrDefault(); + branchConfiguration ??= configuration.GetEmptyBranchConfiguration(); + return branchConfiguration; - public static IEnumerable<IVersionFilter> ToFilters(this IIgnoreConfiguration source) - { - source.NotNull(); + static IEnumerable<IBranchConfiguration> GetBranchConfigurations(IGitVersionConfiguration configuration, string branchName) + { + IBranchConfiguration? unknownBranchConfiguration = null; + foreach (var (key, branchConfiguration) in configuration.Branches) + { + if (!branchConfiguration.IsMatch(branchName)) continue; + if (key == "unknown") + { + unknownBranchConfiguration = branchConfiguration; + } + else + { + yield return branchConfiguration; + } + } + + if (unknownBranchConfiguration != null) yield return unknownBranchConfiguration; + } + } + + public IBranchConfiguration GetFallbackBranchConfiguration() => configuration; - if (source.Shas.Count != 0) yield return new ShaVersionFilter(source.Shas); - if (source.Before.HasValue) yield return new MinDateVersionFilter(source.Before.Value); - if (source.Paths.Count != 0) yield return new PathFilter(source.Paths.ToList()); + public bool IsReleaseBranch(IBranch branch) + => IsReleaseBranch(configuration, branch.NotNull().Name); + + public bool IsReleaseBranch(ReferenceName branchName) + => configuration.GetBranchConfiguration(branchName).IsReleaseBranch ?? false; } - private static IEnumerable<IBranchConfiguration> GetBranchConfigurations(IGitVersionConfiguration configuration, string branchName) + extension(IIgnoreConfiguration ignoreConfig) { - IBranchConfiguration? unknownBranchConfiguration = null; - foreach (var (key, branchConfiguration) in configuration.Branches) + public IEnumerable<IVersionFilter> ToFilters() { - if (!branchConfiguration.IsMatch(branchName)) continue; - if (key == "unknown") - { - unknownBranchConfiguration = branchConfiguration; - } - else - { - yield return branchConfiguration; - } + ignoreConfig.NotNull(); + + if (ignoreConfig.Shas.Count != 0) yield return new ShaVersionFilter(ignoreConfig.Shas); + if (ignoreConfig.Before.HasValue) yield return new MinDateVersionFilter(ignoreConfig.Before.Value); + if (ignoreConfig.Paths.Count != 0) yield return new PathFilter([.. ignoreConfig.Paths]); } - if (unknownBranchConfiguration != null) yield return unknownBranchConfiguration; - } + public IEnumerable<ITag> Filter(ITag[] source) + { + ignoreConfig.NotNull(); + source.NotNull(); - public static IBranchConfiguration GetFallbackBranchConfiguration(this IGitVersionConfiguration configuration) => configuration; + return !ignoreConfig.IsEmpty ? source.Where(element => ShouldBeIgnored(element.Commit, ignoreConfig)) : source; + } - public static bool IsReleaseBranch(this IGitVersionConfiguration configuration, IBranch branch) - => IsReleaseBranch(configuration, branch.NotNull().Name); + public IEnumerable<ICommit> Filter(ICommit[] source) + { + ignoreConfig.NotNull(); + source.NotNull(); - public static bool IsReleaseBranch(this IGitVersionConfiguration configuration, ReferenceName branchName) - => configuration.GetBranchConfiguration(branchName).IsReleaseBranch ?? false; + return !ignoreConfig.IsEmpty ? source.Where(element => ShouldBeIgnored(element, ignoreConfig)) : source; + } + } - public static string? GetBranchSpecificLabel( - this EffectiveConfiguration configuration, ReferenceName branchName, string? branchNameOverride) - => GetBranchSpecificLabel(configuration, branchName.WithoutOrigin, branchNameOverride); + private static bool ShouldBeIgnored(ICommit commit, IIgnoreConfiguration ignore) + => !ignore.ToFilters().Any(filter => filter.Exclude(commit, out _)); - public static string? GetBranchSpecificLabel( - this EffectiveConfiguration configuration, string? branchName, string? branchNameOverride) + extension(EffectiveConfiguration configuration) { - configuration.NotNull(); + public string? GetBranchSpecificLabel(ReferenceName branchName, string? branchNameOverride, IEnvironment environment) + => GetBranchSpecificLabel(configuration, branchName.WithoutOrigin, branchNameOverride, environment); - var label = configuration.Label; - if (label is null) + public string? GetBranchSpecificLabel(string? branchName, string? branchNameOverride, IEnvironment environment) { - return label; - } + configuration.NotNull(); + environment.NotNull(); - var effectiveBranchName = branchNameOverride ?? branchName; - if (configuration.RegularExpression.IsNullOrWhiteSpace() || effectiveBranchName.IsNullOrEmpty()) return label; - var regex = RegexPatterns.Cache.GetOrAdd(configuration.RegularExpression); - var match = regex.Match(effectiveBranchName); - if (!match.Success) return label; - foreach (var groupName in regex.GetGroupNames()) - { - var groupValue = match.Groups[groupName].Value; - Lazy<string> escapedGroupValueLazy = new(() => EscapeInvalidCharacters(groupValue)); - var placeholder = $"{{{groupName}}}"; - int index, startIndex = 0; - while ((index = label.IndexOf(placeholder, startIndex, StringComparison.InvariantCulture)) >= 0) + var label = configuration.Label; + + if (label is null) { - var escapedGroupValue = escapedGroupValueLazy.Value; - label = label.Remove(index, placeholder.Length).Insert(index, escapedGroupValue); - startIndex = index + escapedGroupValue.Length; + return label; } - } - return label; - } - private static string EscapeInvalidCharacters(string groupValue) => groupValue.RegexReplace(RegexPatterns.Common.SanitizeNameRegexPattern, "-"); + var effectiveBranchName = branchNameOverride ?? branchName; + var labelPlaceholders = BuildLabelPlaceholders(configuration.RegularExpression, effectiveBranchName); - public static (string GitDirectory, string WorkingTreeDirectory)? FindGitDir(this IFileSystem fileSystem, string? path) - { - var startingDir = path; - while (startingDir is not null) + return label.FormatWith(labelPlaceholders, environment); + } + + public TaggedSemanticVersions GetTaggedSemanticVersion() { - var dirOrFilePath = FileSystemHelper.Path.Combine(startingDir, ".git"); - if (fileSystem.Directory.Exists(dirOrFilePath)) + configuration.NotNull(); + + var taggedSemanticVersion = TaggedSemanticVersions.OfBranch; + + if (configuration.TrackMergeTarget) { - return (dirOrFilePath, FileSystemHelper.Path.GetDirectoryName(dirOrFilePath)); + taggedSemanticVersion |= TaggedSemanticVersions.OfMergeTargets; } - if (fileSystem.File.Exists(dirOrFilePath)) + if (configuration.TracksReleaseBranches) { - var relativeGitDirPath = ReadGitDirFromFile(fileSystem, dirOrFilePath); - if (!string.IsNullOrWhiteSpace(relativeGitDirPath)) - { - var fullGitDirPath = FileSystemHelper.Path.GetFullPath(FileSystemHelper.Path.Combine(startingDir, relativeGitDirPath)); - if (fileSystem.Directory.Exists(fullGitDirPath)) - { - return (fullGitDirPath, FileSystemHelper.Path.GetDirectoryName(dirOrFilePath)); - } - } + taggedSemanticVersion |= TaggedSemanticVersions.OfReleaseBranches; } - startingDir = FileSystemHelper.Path.GetDirectoryName(startingDir); + if (configuration is { IsMainBranch: false, IsReleaseBranch: false }) + { + taggedSemanticVersion |= TaggedSemanticVersions.OfMainBranches; + } + return taggedSemanticVersion; } - return null; - } - - private static string? ReadGitDirFromFile(IFileSystem fileSystem, string fileName) - { - const string expectedPrefix = "gitdir: "; - var firstLineOfFile = fileSystem.File.ReadLines(fileName).FirstOrDefault(); - if (firstLineOfFile?.StartsWith(expectedPrefix) ?? false) + private static Dictionary<string, object> BuildLabelPlaceholders(string? regularExpression, string? effectiveBranchName) { - return firstLineOfFile[expectedPrefix.Length..]; // strip off the prefix, leaving just the path - } + var placeholders = new Dictionary<string, object>(); - return null; + if (regularExpression.IsNullOrWhiteSpace() || effectiveBranchName.IsNullOrEmpty()) + return placeholders; + + var regex = RegexPatterns.Cache.GetOrAdd(regularExpression); + var match = regex.Match(effectiveBranchName); + + if (!match.Success) + return placeholders; + + foreach (var groupName in regex.GetGroupNames()) + { + var groupValue = match.Groups[groupName].Value; + placeholders[groupName] = groupValue.RegexReplace(RegexPatterns.SanitizeNameRegexPattern, "-"); + } + + return placeholders; + } } } diff --git a/src/GitVersion.Core/Extensions/DictionaryExtensions.cs b/src/GitVersion.Core/Extensions/DictionaryExtensions.cs index 02f0f28a66..b0e49e7e13 100644 --- a/src/GitVersion.Core/Extensions/DictionaryExtensions.cs +++ b/src/GitVersion.Core/Extensions/DictionaryExtensions.cs @@ -2,14 +2,17 @@ namespace GitVersion.Extensions; internal static class DictionaryExtensions { - internal static TValue GetOrAdd<TKey, TValue>(this Dictionary<TKey, TValue> dict, TKey key, Func<TValue> getValue) where TKey : notnull + extension<TKey, TValue>(Dictionary<TKey, TValue> dict) where TKey : notnull { - ArgumentNullException.ThrowIfNull(dict); - ArgumentNullException.ThrowIfNull(getValue); + internal TValue GetOrAdd(TKey key, Func<TValue> getValue) + { + ArgumentNullException.ThrowIfNull(dict); + ArgumentNullException.ThrowIfNull(getValue); - if (dict.TryGetValue(key, out var value)) return value; - value = getValue(); - dict.Add(key, value); - return value; + if (dict.TryGetValue(key, out var value)) return value; + value = getValue(); + dict.Add(key, value); + return value; + } } } diff --git a/src/GitVersion.Core/Extensions/EnumerableExtensions.cs b/src/GitVersion.Core/Extensions/EnumerableExtensions.cs index 764fb89008..2a2ed6c28e 100644 --- a/src/GitVersion.Core/Extensions/EnumerableExtensions.cs +++ b/src/GitVersion.Core/Extensions/EnumerableExtensions.cs @@ -1,7 +1,9 @@ namespace GitVersion.Extensions; +/// <summary>Extension methods that augment <see cref="IEnumerable{T}"/> and related collection types.</summary> public static class EnumerableExtensions { + /// <summary>Returns the single element of the sequence, or <see langword="default"/> if the sequence is empty or contains more than one element.</summary> public static T? OnlyOrDefault<T>(this IEnumerable<T> source) { ArgumentNullException.ThrowIfNull(source); @@ -18,6 +20,7 @@ public static class EnumerableExtensions return !e.MoveNext() ? current : default; } + /// <summary>Returns the single element of type <typeparamref name="T"/> from a non-generic sequence, throwing if not exactly one exists.</summary> public static T SingleOfType<T>(this IEnumerable source) { ArgumentNullException.ThrowIfNull(source); @@ -25,6 +28,7 @@ public static T SingleOfType<T>(this IEnumerable source) return source.OfType<T>().Single(); } + /// <summary>Appends all elements of <paramref name="items"/> to <paramref name="source"/>.</summary> public static void AddRange<T>(this ICollection<T> source, IEnumerable<T> items) { source.NotNull(); diff --git a/src/GitVersion.Core/Extensions/FileSystemExtensions.cs b/src/GitVersion.Core/Extensions/FileSystemExtensions.cs index 213eea6a76..572941e494 100644 --- a/src/GitVersion.Core/Extensions/FileSystemExtensions.cs +++ b/src/GitVersion.Core/Extensions/FileSystemExtensions.cs @@ -1,13 +1,62 @@ using System.IO.Abstractions; +using GitVersion.Helpers; namespace GitVersion.Extensions; +/// <summary>Extension methods on <see cref="IFileSystem"/> for common file-system operations.</summary> public static class FileSystemExtensions { - public static long GetLastDirectoryWrite(this IFileSystem fileSystem, string path) => fileSystem.DirectoryInfo.New(path) - .GetDirectories("*.*", SearchOption.AllDirectories) - .Select(d => d.LastWriteTimeUtc) - .DefaultIfEmpty() - .Max() - .Ticks; + extension(IFileSystem fileSystem) + { + /// <summary>Returns the latest last-write timestamp (in UTC ticks) of any subdirectory under <paramref name="path"/>.</summary> + public long GetLastDirectoryWrite(string path) => fileSystem.DirectoryInfo.New(path) + .GetDirectories("*.*", SearchOption.AllDirectories) + .Select(d => d.LastWriteTimeUtc) + .DefaultIfEmpty() + .Max() + .Ticks; + + /// <summary>Walks up the directory tree from <paramref name="path"/> looking for a <c>.git</c> directory or file, returning the git directory and working-tree paths when found.</summary> + public (string GitDirectory, string WorkingTreeDirectory)? FindGitDir(string? path) + { + var startingDir = path; + while (startingDir is not null) + { + var dirOrFilePath = FileSystemHelper.Path.Combine(startingDir, ".git"); + if (fileSystem.Directory.Exists(dirOrFilePath)) + { + return (dirOrFilePath, FileSystemHelper.Path.GetDirectoryName(dirOrFilePath)); + } + + if (fileSystem.File.Exists(dirOrFilePath)) + { + var relativeGitDirPath = ReadGitDirFromFile(dirOrFilePath); + if (!string.IsNullOrWhiteSpace(relativeGitDirPath)) + { + var fullGitDirPath = FileSystemHelper.Path.GetFullPath(FileSystemHelper.Path.Combine(startingDir, relativeGitDirPath)); + if (fileSystem.Directory.Exists(fullGitDirPath)) + { + return (fullGitDirPath, FileSystemHelper.Path.GetDirectoryName(dirOrFilePath)); + } + } + } + + startingDir = FileSystemHelper.Path.GetDirectoryName(startingDir); + } + + return null; + + string? ReadGitDirFromFile(string fileName) + { + const string expectedPrefix = "gitdir: "; + var firstLineOfFile = fileSystem.File.ReadLines(fileName).FirstOrDefault(); + if (firstLineOfFile?.StartsWith(expectedPrefix) ?? false) + { + return firstLineOfFile[expectedPrefix.Length..]; // strip off the prefix, leaving just the path + } + + return null; + } + } + } } diff --git a/src/GitVersion.Core/Extensions/GitExtensions.cs b/src/GitVersion.Core/Extensions/GitExtensions.cs index 104fa9d3ee..7e38be4b9f 100644 --- a/src/GitVersion.Core/Extensions/GitExtensions.cs +++ b/src/GitVersion.Core/Extensions/GitExtensions.cs @@ -1,7 +1,9 @@ namespace GitVersion.Extensions; +/// <summary>Extension and utility methods that supplement Git-related operations.</summary> public static class GitExtensions { + /// <summary>Writes a hint message explaining how to run <c>git log --graph</c> to visualise the repository history.</summary> public static void DumpGraphLog(Action<string>? writer = null, int? maxCommits = null) { var output = new StringBuilder(); @@ -16,6 +18,7 @@ public static void DumpGraphLog(Action<string>? writer = null, int? maxCommits = } } + /// <summary>Builds the <c>git log</c> argument string for a decorated graph view, optionally limiting to <paramref name="maxCommits"/> commits.</summary> public static string CreateGitLogArgs(int? maxCommits) { var commits = maxCommits != null ? $" -n {maxCommits}" : null; diff --git a/src/GitVersion.Core/Extensions/IncrementStrategyExtensions.cs b/src/GitVersion.Core/Extensions/IncrementStrategyExtensions.cs index eb84a57dce..5629da2e34 100644 --- a/src/GitVersion.Core/Extensions/IncrementStrategyExtensions.cs +++ b/src/GitVersion.Core/Extensions/IncrementStrategyExtensions.cs @@ -1,13 +1,18 @@ namespace GitVersion.Extensions; +/// <summary>Extension methods on <see cref="IncrementStrategy"/> for converting to related types.</summary> public static class IncrementStrategyExtensions { - public static VersionField ToVersionField(this IncrementStrategy strategy) => strategy switch + extension(IncrementStrategy strategy) { - IncrementStrategy.None => VersionField.None, - IncrementStrategy.Major => VersionField.Major, - IncrementStrategy.Minor => VersionField.Minor, - IncrementStrategy.Patch => VersionField.Patch, - _ => throw new ArgumentOutOfRangeException(nameof(strategy), strategy, null) - }; + /// <summary>Converts the <see cref="IncrementStrategy"/> to the equivalent <see cref="VersionField"/>.</summary> + public VersionField ToVersionField() => strategy switch + { + IncrementStrategy.None => VersionField.None, + IncrementStrategy.Major => VersionField.Major, + IncrementStrategy.Minor => VersionField.Minor, + IncrementStrategy.Patch => VersionField.Patch, + _ => throw new ArgumentOutOfRangeException(nameof(strategy), strategy, null) + }; + } } diff --git a/src/GitVersion.Core/Extensions/ReadEmbeddedResourceExtensions.cs b/src/GitVersion.Core/Extensions/ReadEmbeddedResourceExtensions.cs index 95391be84d..95bbf02d99 100644 --- a/src/GitVersion.Core/Extensions/ReadEmbeddedResourceExtensions.cs +++ b/src/GitVersion.Core/Extensions/ReadEmbeddedResourceExtensions.cs @@ -1,22 +1,28 @@ namespace GitVersion.Extensions; +/// <summary>Extension methods on <see cref="string"/> for reading embedded assembly resources.</summary> public static class ReadEmbeddedResourceExtensions { - public static string ReadAsStringFromEmbeddedResource<T>(this string resourceName) - => ReadAsStringFromEmbeddedResource(resourceName, typeof(T).Assembly); - - public static string ReadAsStringFromEmbeddedResource(this string resourceName, Assembly assembly) + extension(string resourceName) { - using var stream = resourceName.ReadFromEmbeddedResource(assembly); - using var streamReader = new StreamReader(stream); - return streamReader.ReadToEnd(); - } + /// <summary>Reads the embedded resource identified by this name from the assembly that contains <typeparamref name="T"/> and returns its content as a string.</summary> + public string ReadAsStringFromEmbeddedResource<T>() + => ReadAsStringFromEmbeddedResource(resourceName, typeof(T).Assembly); - private static Stream ReadFromEmbeddedResource(this string resourceName, Assembly assembly) - { - assembly.NotNull(); + /// <summary>Reads the embedded resource identified by this name from the given <paramref name="assembly"/> and returns its content as a string.</summary> + public string ReadAsStringFromEmbeddedResource(Assembly assembly) + { + using var stream = resourceName.ReadFromEmbeddedResource(assembly); + using var streamReader = new StreamReader(stream); + return streamReader.ReadToEnd(); + } + + private Stream ReadFromEmbeddedResource(Assembly assembly) + { + assembly.NotNull(); - return assembly.GetManifestResourceStream(resourceName) - ?? throw new InvalidOperationException($"Could not find embedded resource {resourceName}"); + return assembly.GetManifestResourceStream(resourceName) + ?? throw new InvalidOperationException($"Could not find embedded resource {resourceName}"); + } } } diff --git a/src/GitVersion.Core/Extensions/ReferenceNameExtensions.cs b/src/GitVersion.Core/Extensions/ReferenceNameExtensions.cs new file mode 100644 index 0000000000..c272c9232a --- /dev/null +++ b/src/GitVersion.Core/Extensions/ReferenceNameExtensions.cs @@ -0,0 +1,61 @@ +using GitVersion.Extensions; +using GitVersion.Git; +using SemanticVersionResult = (GitVersion.SemanticVersion Value, string? Name); + +namespace GitVersion.Configuration; + +/// <summary>Extension methods on <see cref="ReferenceName"/> for semantic-version extraction.</summary> +public static class ReferenceNameExtensions +{ + extension(ReferenceName source) + { + /// <summary>Attempts to parse a semantic version from this reference name using the supplied effective configuration.</summary> + public bool TryGetSemanticVersion(EffectiveConfiguration configuration, out SemanticVersionResult result) + => source.TryGetSemanticVersion(configuration.VersionInBranchPattern, configuration.TagPrefixPattern, configuration.SemanticVersionFormat, out result); + + /// <summary>Attempts to parse a semantic version from this reference name using the supplied global configuration.</summary> + public bool TryGetSemanticVersion(IGitVersionConfiguration configuration, out SemanticVersionResult result) + => source.TryGetSemanticVersion(configuration.VersionInBranchPattern, configuration.TagPrefixPattern, configuration.SemanticVersionFormat, out result); + + private bool TryGetSemanticVersion(string? versionPatternPattern, + string? tagPrefix, + SemanticVersionFormat format, + // ReSharper disable once OutParameterValueIsAlwaysDiscarded.Local + out SemanticVersionResult result) + { + var versionPatternRegex = RegexPatterns.Cache.GetOrAdd(GetVersionInBranchPattern(versionPatternPattern)); + result = default; + + var length = 0; + foreach (var branchPart in source.WithoutOrigin.Split(GetBranchSeparator())) + { + if (string.IsNullOrEmpty(branchPart)) return false; + + var match = versionPatternRegex.Match(branchPart); + if (match.Success) + { + var versionPart = match.Groups["version"].Value; + if (SemanticVersion.TryParse(versionPart, tagPrefix, out var semanticVersion, format)) + { + length += versionPart.Length; + var name = source.WithoutOrigin[length..].Trim('-'); + result = new(semanticVersion, name.Length == 0 ? null : name); + return true; + } + } + + length += branchPart.Length + 1; + } + + return false; + + char GetBranchSeparator() => source.WithoutOrigin.Contains('/') || !source.WithoutOrigin.Contains('-') ? '/' : '-'; + + static string GetVersionInBranchPattern(string? versionInBranchPattern) + { + if (versionInBranchPattern.IsNullOrEmpty()) versionInBranchPattern = RegexPatterns.Configuration.DefaultVersionInBranchRegexPattern; + return $"^{versionInBranchPattern.TrimStart('^')}"; + } + } + } +} diff --git a/src/GitVersion.Core/Extensions/ServiceCollectionExtensions.cs b/src/GitVersion.Core/Extensions/ServiceCollectionExtensions.cs index 153bf20e53..061762584b 100644 --- a/src/GitVersion.Core/Extensions/ServiceCollectionExtensions.cs +++ b/src/GitVersion.Core/Extensions/ServiceCollectionExtensions.cs @@ -1,15 +1,22 @@ -using Microsoft.Extensions.DependencyInjection; - namespace GitVersion.Extensions; +/// <summary>Extension methods on <see cref="IServiceCollection"/> and <see cref="IServiceProvider"/> for GitVersion module registration.</summary> public static class ServiceCollectionExtensions { - public static IServiceCollection AddModule(this IServiceCollection serviceCollection, IGitVersionModule gitVersionModule) + extension(IServiceCollection serviceCollection) { - gitVersionModule.RegisterTypes(serviceCollection); - return serviceCollection; + /// <summary>Registers all services declared by <paramref name="gitVersionModule"/> into <paramref name="serviceCollection"/>.</summary> + public IServiceCollection AddModule(IGitVersionModule gitVersionModule) + { + gitVersionModule.RegisterTypes(serviceCollection); + return serviceCollection; + } } - public static TService GetServiceForType<TService, TType>(this IServiceProvider serviceProvider) => - serviceProvider.GetServices<TService>().Single(t => t?.GetType() == typeof(TType)); + extension(IServiceProvider serviceProvider) + { + /// <summary>Returns the registered <typeparamref name="TService"/> whose concrete type is exactly <typeparamref name="TType"/>.</summary> + public TService GetServiceForType<TService, TType>() => + serviceProvider.GetServices<TService>().Single(t => t?.GetType() == typeof(TType)); + } } diff --git a/src/GitVersion.Core/Extensions/StringExtensions.cs b/src/GitVersion.Core/Extensions/StringExtensions.cs index cb36b0833f..5c8b0f4fb8 100644 --- a/src/GitVersion.Core/Extensions/StringExtensions.cs +++ b/src/GitVersion.Core/Extensions/StringExtensions.cs @@ -1,23 +1,26 @@ using System.Diagnostics.CodeAnalysis; using System.Globalization; -using GitVersion.Core; namespace GitVersion.Extensions; +/// <summary>Extension methods on <see cref="string"/> and <see cref="StringBuilder"/> for common string manipulations.</summary> public static class StringExtensions { + /// <summary>Appends a formatted line (format + newline) to the <see cref="StringBuilder"/>.</summary> public static void AppendLineFormat(this StringBuilder stringBuilder, string format, params object[] args) { stringBuilder.AppendFormat(format, args); stringBuilder.AppendLine(); } + /// <summary>Replaces all occurrences of <paramref name="pattern"/> in <paramref name="input"/> with <paramref name="replace"/> using the regex cache.</summary> public static string RegexReplace(this string input, string pattern, string replace) { var regex = RegexPatterns.Cache.GetOrAdd(pattern); return regex.Replace(input, replace); } + /// <summary>Returns <see langword="true"/> when <paramref name="self"/> and <paramref name="other"/> are equal under ordinal case-insensitive comparison.</summary> public static bool IsEquivalentTo(this string self, string? other) => string.Equals(self, other, StringComparison.OrdinalIgnoreCase); @@ -27,8 +30,10 @@ public static bool IsEquivalentTo(this string self, string? other) => /// <inheritdoc cref="string.IsNullOrWhiteSpace"/> public static bool IsNullOrWhiteSpace([NotNullWhen(false)] this string? value) => string.IsNullOrWhiteSpace(value); + /// <summary>Returns <see langword="true"/> when <paramref name="value"/> is exactly <see cref="string.Empty"/>.</summary> public static bool IsEmpty([NotNullWhen(false)] this string? value) => string.Empty.Equals(value); + /// <summary>Prepends <paramref name="prefix"/> to <paramref name="value"/> when the value is non-empty; returns the original value otherwise.</summary> public static string WithPrefixIfNotNullOrEmpty(this string value, string prefix) => string.IsNullOrEmpty(value) ? value : prefix + value; diff --git a/src/GitVersion.Core/Extensions/VersionFieldExtensions.cs b/src/GitVersion.Core/Extensions/VersionFieldExtensions.cs index 2f00e143b7..21840e5629 100644 --- a/src/GitVersion.Core/Extensions/VersionFieldExtensions.cs +++ b/src/GitVersion.Core/Extensions/VersionFieldExtensions.cs @@ -2,13 +2,16 @@ namespace GitVersion.Extensions; internal static class VersionFieldExtensions { - public static VersionField Consolidate(this VersionField source, VersionField? item, params VersionField?[] items) + extension(VersionField source) { - var result = source; - foreach (var increment in new[] { item }.Concat(items)) + public VersionField Consolidate(VersionField? item, params VersionField?[] items) { - if (result < increment) result = increment.Value; + var result = source; + foreach (var increment in new[] { item }.Concat(items)) + { + if (result < increment) result = increment.Value; + } + return result; } - return result; } } diff --git a/src/GitVersion.Core/Formatting/IExpressionCompiler.cs b/src/GitVersion.Core/Formatting/IExpressionCompiler.cs index 82be9811e9..0466e2eff8 100644 --- a/src/GitVersion.Core/Formatting/IExpressionCompiler.cs +++ b/src/GitVersion.Core/Formatting/IExpressionCompiler.cs @@ -1,7 +1,6 @@ -namespace GitVersion.Formatting +namespace GitVersion.Formatting; + +internal interface IExpressionCompiler { - internal interface IExpressionCompiler - { - Func<object, object?> CompileGetter(Type type, MemberInfo[] memberPath); - } + Func<object, object?> CompileGetter(Type type, MemberInfo[] memberPath); } diff --git a/src/GitVersion.Core/Formatting/IInputSanitizer.cs b/src/GitVersion.Core/Formatting/IInputSanitizer.cs index ead3dcedcc..50c68b4fe1 100644 --- a/src/GitVersion.Core/Formatting/IInputSanitizer.cs +++ b/src/GitVersion.Core/Formatting/IInputSanitizer.cs @@ -1,11 +1,10 @@ -namespace GitVersion.Formatting +namespace GitVersion.Formatting; + +internal interface IInputSanitizer { - internal interface IInputSanitizer - { - string SanitizeEnvVarName(string name); + string SanitizeEnvVarName(string name); - string SanitizeFormat(string format); + string SanitizeFormat(string format); - string SanitizeMemberName(string memberName); - } + string SanitizeMemberName(string memberName); } diff --git a/src/GitVersion.Core/Formatting/InputSanitizer.cs b/src/GitVersion.Core/Formatting/InputSanitizer.cs index a676ec5540..8312657776 100644 --- a/src/GitVersion.Core/Formatting/InputSanitizer.cs +++ b/src/GitVersion.Core/Formatting/InputSanitizer.cs @@ -1,4 +1,3 @@ -using GitVersion.Core; namespace GitVersion.Formatting; @@ -26,7 +25,7 @@ public string SanitizeEnvVarName(string name) if (name.Length > 200) throw new ArgumentException($"Environment variable name too long: '{name[..20]}...'"); - if (!RegexPatterns.Cache.GetOrAdd(RegexPatterns.Common.SanitizeEnvVarNameRegexPattern).IsMatch(name)) + if (!RegexPatterns.Cache.GetOrAdd(RegexPatterns.SanitizeEnvVarNameRegexPattern).IsMatch(name)) throw new ArgumentException($"Environment variable name contains disallowed characters: '{name}'"); return name; @@ -40,7 +39,7 @@ public string SanitizeMemberName(string memberName) if (memberName.Length > 100) throw new ArgumentException($"Member name too long: '{memberName[..20]}...'"); - if (!RegexPatterns.Cache.GetOrAdd(RegexPatterns.Common.SanitizeMemberNameRegexPattern).IsMatch(memberName)) + if (!RegexPatterns.Cache.GetOrAdd(RegexPatterns.SanitizeMemberNameRegexPattern).IsMatch(memberName)) throw new ArgumentException($"Member name contains disallowed characters: '{memberName}'"); return memberName; diff --git a/src/GitVersion.Core/Formatting/NumericFormatter.cs b/src/GitVersion.Core/Formatting/NumericFormatter.cs index 14b1f791a3..bb5a296ccc 100644 --- a/src/GitVersion.Core/Formatting/NumericFormatter.cs +++ b/src/GitVersion.Core/Formatting/NumericFormatter.cs @@ -14,30 +14,30 @@ public override bool TryFormat(object? value, string format, CultureInfo culture return false; // Integer formatting - if (format.All(char.IsDigit) && int.TryParse(s, NumberStyles.Integer, cultureInfo, out var i)) + if (format.All(char.IsDigit) && int.TryParse(s, NumberStyles.Integer, cultureInfo, out var integerValue)) { - result = i.ToString(format, cultureInfo); + result = integerValue.ToString(format, cultureInfo); return true; } - // Hexadecimal formatting - if (format.StartsWith("X", StringComparison.OrdinalIgnoreCase) && int.TryParse(s, NumberStyles.Integer, cultureInfo, out var hex)) + // Integer formatting with precision specifier + if ("BDX".Contains(char.ToUpperInvariant(format[0])) && int.TryParse(s, NumberStyles.Integer, cultureInfo, out var numericValue)) { - result = hex.ToString(format, cultureInfo); + result = numericValue.ToString(format, cultureInfo); return true; } // Floating point formatting - if ("FEGNCP".Contains(char.ToUpperInvariant(format[0])) && double.TryParse(s, NumberStyles.Float | NumberStyles.AllowThousands, cultureInfo, out var d)) + if ("FEGNCP".Contains(char.ToUpperInvariant(format[0])) && double.TryParse(s, NumberStyles.Float | NumberStyles.AllowThousands, cultureInfo, out var floatValue)) { - result = d.ToString(format, cultureInfo); + result = floatValue.ToString(format, cultureInfo); return true; } // Decimal formatting - if (decimal.TryParse(s, NumberStyles.Any, cultureInfo, out var dec)) + if (decimal.TryParse(s, NumberStyles.Any, cultureInfo, out var decimalValue)) { - result = dec.ToString(format, cultureInfo); + result = decimalValue.ToString(format, cultureInfo); return true; } diff --git a/src/GitVersion.Core/Formatting/StringFormatWithExtension.cs b/src/GitVersion.Core/Formatting/StringFormatWithExtension.cs index 0f061c4f0b..df34cb3f2e 100644 --- a/src/GitVersion.Core/Formatting/StringFormatWithExtension.cs +++ b/src/GitVersion.Core/Formatting/StringFormatWithExtension.cs @@ -1,5 +1,4 @@ using System.Text.RegularExpressions; -using GitVersion.Core; namespace GitVersion.Formatting; @@ -12,48 +11,87 @@ internal static class StringFormatWithExtension private static readonly IMemberResolver MemberResolver = new MemberResolver(); /// <summary> - /// Formats the <paramref name="template"/>, replacing each expression wrapped in curly braces - /// with the corresponding property from the <paramref name="source"/> or <paramref name="environment"/>. + /// Provides extension methods for formatting strings using a source object and environment context. /// </summary> - /// <param name="template" this="true">The source template, which may contain expressions to be replaced, e.g '{Foo.Bar.CurrencySymbol} foo {Foo.Bar.Price}'</param> - /// <param name="source">The source object to apply to the <paramref name="template"/></param> - /// <param name="environment"></param> - /// <exception cref="ArgumentNullException">The <paramref name="template"/> is null.</exception> - /// <exception cref="ArgumentException">An environment variable was null and no fallback was provided.</exception> - /// <remarks> - /// An expression containing "." is treated as a property or field access on the <paramref name="source"/>. - /// An expression starting with "env:" is replaced with the value of the corresponding variable from the <paramref name="environment"/>. - /// Each expression may specify a single hardcoded fallback value using the {Prop ?? "fallback"} syntax, which applies if the expression evaluates to null. - /// </remarks> - /// <example> - /// // replace an expression with a property value - /// "Hello {Name}".FormatWith(new { Name = "Fred" }, env); - /// "Hello {Name ?? \"Fred\"}".FormatWith(new { Name = GetNameOrNull() }, env); - /// // replace an expression with an environment variable - /// "{env:BUILD_NUMBER}".FormatWith(new { }, env); - /// "{env:BUILD_NUMBER ?? \"0\"}".FormatWith(new { }, env); - /// </example> - public static string FormatWith<T>(this string template, T? source, IEnvironment environment) + extension(string template) { - ArgumentNullException.ThrowIfNull(template); - ArgumentNullException.ThrowIfNull(source); + /// <summary> + /// Formats the <paramref name="template"/>, replacing each expression wrapped in curly braces + /// with the corresponding property from the <paramref name="source"/> or <paramref name="environment"/>. + /// </summary> + /// <param name="source">The source object to apply to the <paramref name="template"/></param> + /// <param name="environment"></param> + /// <exception cref="ArgumentNullException">The <paramref name="template"/> is null.</exception> + /// <exception cref="ArgumentException">An environment variable was null and no fallback was provided.</exception> + /// <remarks> + /// An expression containing "." is treated as a property or field access on the <paramref name="source"/>. + /// An expression starting with "env:" is replaced with the value of the corresponding variable from the <paramref name="environment"/>. + /// Each expression may specify a single hardcoded fallback value using the {Prop ?? "fallback"} syntax, which applies if the expression evaluates to null. + /// </remarks> + /// <example> + /// // replace an expression with a property value + /// "Hello {Name}".FormatWith(new { Name = "Fred" }, env); + /// "Hello {Name ?? \"Fred\"}".FormatWith(new { Name = GetNameOrNull() }, env); + /// // replace an expression with an environment variable + /// "{env:BUILD_NUMBER}".FormatWith(new { }, env); + /// "{env:BUILD_NUMBER ?? \"0\"}".FormatWith(new { }, env); + /// </example> + public string FormatWith(object source, IEnvironment environment) + { + ArgumentNullException.ThrowIfNull(source); - var result = new StringBuilder(); - var lastIndex = 0; + return template.FormatWith((member, format, fallback) => EvaluateMemberFromObject(source, member, format, fallback), environment); + } - foreach (var match in RegexPatterns.Common.ExpandTokensRegex().Matches(template).Cast<Match>()) + /// <summary> + /// Formats the <paramref name="template"/>, replacing each expression wrapped in curly braces + /// with the corresponding property from the <paramref name="source"/> or <paramref name="environment"/>. + /// </summary> + /// <param name="source">The source object to apply to the <paramref name="template"/></param> + /// <param name="environment"></param> + /// <exception cref="ArgumentNullException">The <paramref name="template"/> is null.</exception> + /// <exception cref="ArgumentException">An environment variable was null and no fallback was provided.</exception> + /// <remarks> + /// An expression containing "." is treated as a property or field access on the <paramref name="source"/>. + /// An expression starting with "env:" is replaced with the value of the corresponding variable from the <paramref name="environment"/>. + /// Each expression may specify a single hardcoded fallback value using the {Prop ?? "fallback"} syntax, which applies if the expression evaluates to null. + /// </remarks> + /// <example> + /// // replace an expression with a property value + /// "Hello {Name}".FormatWith(new { Name = "Fred" }, env); + /// "Hello {Name ?? \"Fred\"}".FormatWith(new { Name = GetNameOrNull() }, env); + /// // replace an expression with an environment variable + /// "{env:BUILD_NUMBER}".FormatWith(new { }, env); + /// "{env:BUILD_NUMBER ?? \"0\"}".FormatWith(new { }, env); + /// </example> + public string FormatWith(IDictionary<string, object> source, IEnvironment environment) { - var replacement = EvaluateMatch(match, source, environment); - result.Append(template, lastIndex, match.Index - lastIndex); - result.Append(replacement); - lastIndex = match.Index + match.Length; + ArgumentNullException.ThrowIfNull(source); + + return template.FormatWith((member, format, fallback) => EvaluateMemberFromDictionary(source, member, format, fallback), environment); } - result.Append(template, lastIndex, template.Length - lastIndex); - return result.ToString(); + private string FormatWith(EvaluateMemberDelegate memberEvaluator, IEnvironment environment) + { + ArgumentNullException.ThrowIfNull(template); + + var result = new StringBuilder(); + var lastIndex = 0; + + foreach (var match in RegexPatterns.ExpandTokensRegex.Matches(template).Cast<Match>()) + { + var replacement = EvaluateMatch(match, memberEvaluator, environment); + result.Append(template, lastIndex, match.Index - lastIndex); + result.Append(replacement); + lastIndex = match.Index + match.Length; + } + + result.Append(template, lastIndex, template.Length - lastIndex); + return result.ToString(); + } } - private static string EvaluateMatch<T>(Match match, T source, IEnvironment environment) + private static string EvaluateMatch(Match match, EvaluateMemberDelegate memberEvaluator, IEnvironment environment) { var fallback = match.Groups["fallback"].Success ? match.Groups["fallback"].Value : null; @@ -63,7 +101,7 @@ private static string EvaluateMatch<T>(Match match, T source, IEnvironment envir if (match.Groups["member"].Success) { var format = match.Groups["format"].Success ? match.Groups["format"].Value : null; - return EvaluateMember(source, match.Groups["member"].Value, format, fallback); + return memberEvaluator(match.Groups["member"].Value, format, fallback); } throw new ArgumentException($"Invalid token format: '{match.Value}'"); @@ -77,7 +115,7 @@ private static string EvaluateEnvVar(string name, string? fallback, IEnvironment ?? throw new ArgumentException($"Environment variable {safeName} not found and no fallback provided"); } - private static string EvaluateMember<T>(T source, string member, string? format, string? fallback) + private static string EvaluateMemberFromObject(object source, string member, string? format, string? fallback) { var safeMember = InputSanitizer.SanitizeMemberName(member); var memberPath = MemberResolver.ResolveMemberPath(source!.GetType(), safeMember); @@ -88,13 +126,31 @@ private static string EvaluateMember<T>(T source, string member, string? format, return fallback ?? string.Empty; if (format is not null && ValueFormatter.Default.TryFormat( - value, - InputSanitizer.SanitizeFormat(format), - out var formatted)) + value, + InputSanitizer.SanitizeFormat(format), + out var formatted)) { return formatted; } return value.ToString() ?? fallback ?? string.Empty; } + + private static string EvaluateMemberFromDictionary(IDictionary<string, object> source, string member, string? format, string? fallback) + { + var safeMember = InputSanitizer.SanitizeMemberName(member); + + if (!source.TryGetValue(safeMember, out var value)) + return fallback ?? string.Empty; + + if (value is null) + return fallback ?? string.Empty; + + if (format is not null && ValueFormatter.Default.TryFormat(value, InputSanitizer.SanitizeFormat(format), out var formatted)) + return formatted; + + return value.ToString() ?? fallback ?? string.Empty; + } + + private delegate string EvaluateMemberDelegate(string member, string? format, string? fallback); } diff --git a/src/GitVersion.Core/Formatting/ValueFormatter.cs b/src/GitVersion.Core/Formatting/ValueFormatter.cs index 0e0be49645..633a2afb61 100644 --- a/src/GitVersion.Core/Formatting/ValueFormatter.cs +++ b/src/GitVersion.Core/Formatting/ValueFormatter.cs @@ -11,7 +11,7 @@ internal class ValueFormatter : InvariantFormatter, IValueFormatterCombiner public int Priority => 0; internal ValueFormatter() - => formatters = + => this.formatters = [ new StringFormatter(), new FormattableFormatter(), @@ -27,7 +27,7 @@ public override bool TryFormat(object? value, string format, CultureInfo culture return false; } - foreach (var formatter in formatters.OrderBy(f => f.Priority)) + foreach (var formatter in this.formatters.OrderBy(f => f.Priority)) { if (formatter.TryFormat(value, format, out result)) return true; @@ -36,7 +36,7 @@ public override bool TryFormat(object? value, string format, CultureInfo culture return false; } - void IValueFormatterCombiner.RegisterFormatter(IValueFormatter formatter) => formatters.Add(formatter); + void IValueFormatterCombiner.RegisterFormatter(IValueFormatter formatter) => this.formatters.Add(formatter); - void IValueFormatterCombiner.RemoveFormatter<T>() => formatters.RemoveAll(f => f is T); + void IValueFormatterCombiner.RemoveFormatter<T>() => this.formatters.RemoveAll(f => f is T); } diff --git a/src/GitVersion.Core/Git/AuthenticationInfo.cs b/src/GitVersion.Core/Git/AuthenticationInfo.cs index 24d6798735..d48c36d080 100644 --- a/src/GitVersion.Core/Git/AuthenticationInfo.cs +++ b/src/GitVersion.Core/Git/AuthenticationInfo.cs @@ -1,8 +1,14 @@ namespace GitVersion.Git; +/// <summary>Holds credentials used when authenticating with a remote Git repository.</summary> public record AuthenticationInfo { + /// <summary>Gets or sets the username for basic authentication.</summary> public string? Username { get; set; } + + /// <summary>Gets or sets the password for basic authentication.</summary> public string? Password { get; set; } + + /// <summary>Gets or sets the personal access token used instead of a username/password pair.</summary> public string? Token { get; set; } } diff --git a/src/GitVersion.Core/Git/BranchCommit.cs b/src/GitVersion.Core/Git/BranchCommit.cs index ccc926033a..af280d127f 100644 --- a/src/GitVersion.Core/Git/BranchCommit.cs +++ b/src/GitVersion.Core/Git/BranchCommit.cs @@ -8,11 +8,16 @@ namespace GitVersion.Git; [DebuggerDisplay("{Branch} {Commit}")] public readonly struct BranchCommit(ICommit commit, IBranch branch) : IEquatable<BranchCommit?> { + /// <summary>Represents an absent or unresolved branch/commit pair.</summary> public static readonly BranchCommit Empty = new(); + /// <summary>Gets the branch associated with this commit.</summary> public IBranch Branch { get; } = branch.NotNull(); + + /// <summary>Gets the commit on the branch.</summary> public ICommit Commit { get; } = commit.NotNull(); + /// <summary>Returns <see langword="true"/> when <paramref name="other"/> refers to the same branch and commit.</summary> public bool Equals(BranchCommit? other) { if (other is null) @@ -21,8 +26,10 @@ public bool Equals(BranchCommit? other) return Equals(Branch, other.Value.Branch) && Equals(Commit, other.Value.Commit); } + /// <summary>Returns <see langword="true"/> when <paramref name="obj"/> is a <see cref="BranchCommit"/> that equals this instance.</summary> public override bool Equals(object? obj) => obj is not null && Equals(obj as BranchCommit?); + /// <summary>Returns a hash code computed from the branch and commit.</summary> public override int GetHashCode() { unchecked @@ -31,7 +38,9 @@ public override int GetHashCode() } } + /// <summary>Returns <see langword="true"/> when <paramref name="left"/> and <paramref name="right"/> represent the same branch/commit pair.</summary> public static bool operator ==(BranchCommit left, BranchCommit right) => left.Equals(right); + /// <summary>Returns <see langword="true"/> when <paramref name="left"/> and <paramref name="right"/> represent different branch/commit pairs.</summary> public static bool operator !=(BranchCommit left, BranchCommit right) => !left.Equals(right); } diff --git a/src/GitVersion.Core/Git/CommitExtensions.cs b/src/GitVersion.Core/Git/CommitExtensions.cs deleted file mode 100644 index 9b8971ac54..0000000000 --- a/src/GitVersion.Core/Git/CommitExtensions.cs +++ /dev/null @@ -1,8 +0,0 @@ -using GitVersion.Extensions; - -namespace GitVersion.Git; - -public static class CommitExtensions -{ - public static bool IsMergeCommit(this ICommit source) => source.NotNull().Parents.Count >= 2; -} diff --git a/src/GitVersion.Core/Git/CommitFilter.cs b/src/GitVersion.Core/Git/CommitFilter.cs index 074f7d67d4..fd5e238c18 100644 --- a/src/GitVersion.Core/Git/CommitFilter.cs +++ b/src/GitVersion.Core/Git/CommitFilter.cs @@ -1,13 +1,22 @@ namespace GitVersion.Git; +/// <summary>Specifies criteria used to filter and order commits when querying a commit collection.</summary> public record CommitFilter { + /// <summary>Gets a value indicating whether only the first-parent chain should be traversed.</summary> public bool FirstParentOnly { get; init; } + + /// <summary>Gets the commit, branch, or tag from which reachable commits are included.</summary> public object? IncludeReachableFrom { get; init; } + + /// <summary>Gets the commit, branch, or tag whose reachable commits are excluded from the result.</summary> public object? ExcludeReachableFrom { get; init; } + + /// <summary>Gets the ordering strategy applied to the resulting commits.</summary> public CommitSortStrategies SortBy { get; init; } } +/// <summary>Specifies how commits are ordered when traversing the commit graph.</summary> [Flags] public enum CommitSortStrategies { diff --git a/src/GitVersion.Core/Git/IBranch.cs b/src/GitVersion.Core/Git/IBranch.cs index 4c78171180..e3f5126640 100644 --- a/src/GitVersion.Core/Git/IBranch.cs +++ b/src/GitVersion.Core/Git/IBranch.cs @@ -1,10 +1,20 @@ namespace GitVersion.Git; +/// <summary>Represents a Git branch, exposing its tip commit and tracking information.</summary> public interface IBranch : IEquatable<IBranch?>, IComparable<IBranch>, INamedReference { + /// <summary>Gets the most recent commit on this branch, or <see langword="null"/> for an empty branch.</summary> ICommit? Tip { get; } + + /// <summary>Gets a value indicating whether this branch is a remote-tracking branch.</summary> bool IsRemote { get; } + + /// <summary>Gets a value indicating whether this branch tracks a remote branch.</summary> bool IsTracking { get; } + + /// <summary>Gets a value indicating whether HEAD is in a detached state pointing at this branch's tip.</summary> bool IsDetachedHead { get; } + + /// <summary>Gets the ordered sequence of commits reachable from this branch's tip.</summary> ICommitCollection Commits { get; } } diff --git a/src/GitVersion.Core/Git/IBranchCollection.cs b/src/GitVersion.Core/Git/IBranchCollection.cs index 5943bdf7d8..930d3933e7 100644 --- a/src/GitVersion.Core/Git/IBranchCollection.cs +++ b/src/GitVersion.Core/Git/IBranchCollection.cs @@ -1,8 +1,14 @@ namespace GitVersion.Git; +/// <summary>Represents the set of all branches in a Git repository.</summary> public interface IBranchCollection : IEnumerable<IBranch> { + /// <summary>Returns the branch with the given <paramref name="name"/>, or <see langword="null"/> if it does not exist.</summary> IBranch? this[string name] { get; } + + /// <summary>Returns all branches except those in <paramref name="branchesToExclude"/>.</summary> IEnumerable<IBranch> ExcludeBranches(IEnumerable<IBranch> branchesToExclude); + + /// <summary>Updates the remote-tracking branch reference for <paramref name="branch"/> to point to <paramref name="remoteTrackingReferenceName"/>.</summary> void UpdateTrackedBranch(IBranch branch, string remoteTrackingReferenceName); } diff --git a/src/GitVersion.Core/Git/ICommit.cs b/src/GitVersion.Core/Git/ICommit.cs index 7c6900c1bb..d6ea89cf26 100644 --- a/src/GitVersion.Core/Git/ICommit.cs +++ b/src/GitVersion.Core/Git/ICommit.cs @@ -1,16 +1,26 @@ namespace GitVersion.Git; +/// <summary>Represents a single Git commit.</summary> public interface ICommit : IEquatable<ICommit?>, IComparable<ICommit> { + /// <summary>Gets the direct parent commits of this commit.</summary> IReadOnlyList<ICommit> Parents { get; } + /// <summary>Gets the object identifier (SHA) of this commit.</summary> IObjectId Id { get; } + /// <summary>Gets the full SHA-1 hash string of this commit.</summary> string Sha { get; } + /// <summary>Gets the author date of this commit.</summary> DateTimeOffset When { get; } + /// <summary>Gets the full commit message.</summary> string Message { get; } + /// <summary>Gets a value indicating whether this is a merge commit (has more than one parent).</summary> + bool IsMergeCommit { get; } + + /// <summary>Gets the paths of files changed in this commit relative to its first parent.</summary> IReadOnlyList<string> DiffPaths { get; } } diff --git a/src/GitVersion.Core/Git/ICommitCollection.cs b/src/GitVersion.Core/Git/ICommitCollection.cs index 8bf6267f37..7d69ca751e 100644 --- a/src/GitVersion.Core/Git/ICommitCollection.cs +++ b/src/GitVersion.Core/Git/ICommitCollection.cs @@ -1,7 +1,11 @@ namespace GitVersion.Git; +/// <summary>Represents an ordered, queryable collection of commits in a Git repository.</summary> public interface ICommitCollection : IEnumerable<ICommit> { + /// <summary>Returns all commits whose author date is earlier than <paramref name="olderThan"/>.</summary> IEnumerable<ICommit> GetCommitsPriorTo(DateTimeOffset olderThan); + + /// <summary>Returns commits matching the supplied <paramref name="commitFilter"/>.</summary> IEnumerable<ICommit> QueryBy(CommitFilter commitFilter); } diff --git a/src/GitVersion.Core/Git/IGitRepository.cs b/src/GitVersion.Core/Git/IGitRepository.cs index 7653744b77..1e19333053 100644 --- a/src/GitVersion.Core/Git/IGitRepository.cs +++ b/src/GitVersion.Core/Git/IGitRepository.cs @@ -1,21 +1,44 @@ namespace GitVersion.Git; +/// <summary>Provides read-only access to a Git repository.</summary> public interface IGitRepository : IDisposable { + /// <summary>Gets the path to the <c>.git</c> directory.</summary> string Path { get; } + + /// <summary>Gets the path to the working tree root directory.</summary> string WorkingDirectory { get; } + + /// <summary>Gets a value indicating whether HEAD is in a detached state.</summary> bool IsHeadDetached { get; } + + /// <summary>Gets a value indicating whether the repository is a shallow clone.</summary> bool IsShallow { get; } + /// <summary>Gets the currently checked-out branch.</summary> IBranch Head { get; } + /// <summary>Gets the collection of all tags in the repository.</summary> ITagCollection Tags { get; } + + /// <summary>Gets the collection of all references in the repository.</summary> IReferenceCollection References { get; } + + /// <summary>Gets the collection of all branches in the repository.</summary> IBranchCollection Branches { get; } + + /// <summary>Gets the collection of all commits reachable from HEAD.</summary> ICommitCollection Commits { get; } + + /// <summary>Gets the collection of configured remotes.</summary> IRemoteCollection Remotes { get; } + /// <summary>Finds the best common ancestor between <paramref name="commit"/> and <paramref name="otherCommit"/>.</summary> ICommit? FindMergeBase(ICommit commit, ICommit otherCommit); + + /// <summary>Returns the number of files that have been modified but not yet staged or committed.</summary> int UncommittedChangesCount(); + + /// <summary>Loads the repository located at <paramref name="gitDirectory"/>.</summary> void DiscoverRepository(string? gitDirectory); } diff --git a/src/GitVersion.Core/Git/IGitRepositoryInfo.cs b/src/GitVersion.Core/Git/IGitRepositoryInfo.cs index 4aff8edd97..aaba9ec71b 100644 --- a/src/GitVersion.Core/Git/IGitRepositoryInfo.cs +++ b/src/GitVersion.Core/Git/IGitRepositoryInfo.cs @@ -1,9 +1,17 @@ namespace GitVersion.Git; +/// <summary>Provides paths describing the layout of the Git repository on disk.</summary> public interface IGitRepositoryInfo { + /// <summary>Gets the path to the <c>.git</c> directory, or <see langword="null"/> when not yet discovered.</summary> string? DotGitDirectory { get; } + + /// <summary>Gets the path to the project root directory (the directory that contains the solution or project file), or <see langword="null"/> when not determined.</summary> string? ProjectRootDirectory { get; } + + /// <summary>Gets the path to the dynamically created Git repository used for shallow-clone scenarios, or <see langword="null"/> when not applicable.</summary> string? DynamicGitRepositoryPath { get; } + + /// <summary>Gets the root path of the Git working tree, or <see langword="null"/> when not yet discovered.</summary> string? GitRootPath { get; } } diff --git a/src/GitVersion.Core/Git/IMutatingGitRepository.cs b/src/GitVersion.Core/Git/IMutatingGitRepository.cs index b7dc7bf811..4cb88af090 100644 --- a/src/GitVersion.Core/Git/IMutatingGitRepository.cs +++ b/src/GitVersion.Core/Git/IMutatingGitRepository.cs @@ -1,9 +1,17 @@ namespace GitVersion.Git; +/// <summary>Extends <see cref="IGitRepository"/> with operations that modify the repository state.</summary> public interface IMutatingGitRepository : IGitRepository { + /// <summary>Creates a local branch that tracks the pull-request ref identified by the current build environment.</summary> void CreateBranchForPullRequestBranch(AuthenticationInfo auth); + + /// <summary>Checks out the specified commit or branch.</summary> void Checkout(string commitOrBranchSpec); + + /// <summary>Fetches the given <paramref name="refSpecs"/> from <paramref name="remote"/> using the supplied credentials.</summary> void Fetch(string remote, IEnumerable<string> refSpecs, AuthenticationInfo auth, string? logMessage); + + /// <summary>Clones the repository at <paramref name="sourceUrl"/> into <paramref name="workdirPath"/> using the supplied credentials.</summary> void Clone(string? sourceUrl, string? workdirPath, AuthenticationInfo auth); } diff --git a/src/GitVersion.Core/Git/INamedReference.cs b/src/GitVersion.Core/Git/INamedReference.cs index 2c41175783..f6906a0307 100644 --- a/src/GitVersion.Core/Git/INamedReference.cs +++ b/src/GitVersion.Core/Git/INamedReference.cs @@ -1,6 +1,8 @@ namespace GitVersion.Git; +/// <summary>Represents any Git object (branch, tag, or ref) that has a canonical reference name.</summary> public interface INamedReference { + /// <summary>Gets the canonical name of this reference.</summary> ReferenceName Name { get; } } diff --git a/src/GitVersion.Core/Git/IObjectId.cs b/src/GitVersion.Core/Git/IObjectId.cs index b303cc953d..ca96d0222c 100644 --- a/src/GitVersion.Core/Git/IObjectId.cs +++ b/src/GitVersion.Core/Git/IObjectId.cs @@ -1,7 +1,11 @@ namespace GitVersion.Git; +/// <summary>Represents the SHA-1 object identifier of a Git object.</summary> public interface IObjectId : IEquatable<IObjectId?>, IComparable<IObjectId> { + /// <summary>Gets the full 40-character hexadecimal SHA-1 string.</summary> string Sha { get; } + + /// <summary>Returns a shortened representation of the SHA using the first <paramref name="prefixLength"/> characters.</summary> string ToString(int prefixLength); } diff --git a/src/GitVersion.Core/Git/IRefSpec.cs b/src/GitVersion.Core/Git/IRefSpec.cs index 777641c1b4..e360e1ccf6 100644 --- a/src/GitVersion.Core/Git/IRefSpec.cs +++ b/src/GitVersion.Core/Git/IRefSpec.cs @@ -1,9 +1,17 @@ namespace GitVersion.Git; +/// <summary>Represents a Git refspec that maps source references to destination references for a remote operation.</summary> public interface IRefSpec : IEquatable<IRefSpec?>, IComparable<IRefSpec> { + /// <summary>Gets the full refspec string (e.g. <c>+refs/heads/*:refs/remotes/origin/*</c>).</summary> string Specification { get; } + + /// <summary>Gets the direction of this refspec (fetch or push).</summary> RefSpecDirection Direction { get; } + + /// <summary>Gets the source pattern of the refspec.</summary> string Source { get; } + + /// <summary>Gets the destination pattern of the refspec.</summary> string Destination { get; } } diff --git a/src/GitVersion.Core/Git/IRefSpecCollection.cs b/src/GitVersion.Core/Git/IRefSpecCollection.cs index d007874d8c..c15098f621 100644 --- a/src/GitVersion.Core/Git/IRefSpecCollection.cs +++ b/src/GitVersion.Core/Git/IRefSpecCollection.cs @@ -1,3 +1,4 @@ namespace GitVersion.Git; +/// <summary>Represents an ordered collection of <see cref="IRefSpec"/> objects for a remote.</summary> public interface IRefSpecCollection : IEnumerable<IRefSpec>; diff --git a/src/GitVersion.Core/Git/IReference.cs b/src/GitVersion.Core/Git/IReference.cs index 6b560af39b..7f355a42ee 100644 --- a/src/GitVersion.Core/Git/IReference.cs +++ b/src/GitVersion.Core/Git/IReference.cs @@ -1,7 +1,11 @@ namespace GitVersion.Git; +/// <summary>Represents a Git reference (branch tip, tag, or symbolic ref).</summary> public interface IReference : IEquatable<IReference?>, IComparable<IReference>, INamedReference { + /// <summary>Gets the raw string that the reference points to (SHA or another reference name).</summary> string TargetIdentifier { get; } + + /// <summary>Gets the resolved object ID that this reference ultimately points to, or <see langword="null"/> for a broken reference.</summary> IObjectId? ReferenceTargetId { get; } } diff --git a/src/GitVersion.Core/Git/IReferenceCollection.cs b/src/GitVersion.Core/Git/IReferenceCollection.cs index 6b4f639386..3b760c2eac 100644 --- a/src/GitVersion.Core/Git/IReferenceCollection.cs +++ b/src/GitVersion.Core/Git/IReferenceCollection.cs @@ -1,11 +1,23 @@ namespace GitVersion.Git; +/// <summary>Represents the set of all references in a Git repository.</summary> public interface IReferenceCollection : IEnumerable<IReference> { + /// <summary>Gets the current HEAD reference, or <see langword="null"/> when HEAD is unborn.</summary> IReference? Head { get; } + + /// <summary>Returns the reference with the given canonical <paramref name="name"/>, or <see langword="null"/> if it does not exist.</summary> IReference? this[string name] { get; } + + /// <summary>Returns the reference with the given <paramref name="referenceName"/>, or <see langword="null"/> if it does not exist.</summary> IReference? this[ReferenceName referenceName] { get; } + + /// <summary>Creates a new reference named <paramref name="name"/> pointing to <paramref name="canonicalRefNameOrObject"/>.</summary> void Add(string name, string canonicalRefNameOrObject, bool allowOverwrite = false); + + /// <summary>Updates the target of the direct reference <paramref name="directRef"/> to point to <paramref name="targetId"/>.</summary> void UpdateTarget(IReference directRef, IObjectId targetId); + + /// <summary>Returns all references whose canonical names start with <paramref name="prefix"/>.</summary> IEnumerable<IReference> FromGlob(string prefix); } diff --git a/src/GitVersion.Core/Git/IRemote.cs b/src/GitVersion.Core/Git/IRemote.cs index 43faeac942..b026609236 100644 --- a/src/GitVersion.Core/Git/IRemote.cs +++ b/src/GitVersion.Core/Git/IRemote.cs @@ -1,10 +1,17 @@ namespace GitVersion.Git; +/// <summary>Represents a configured Git remote.</summary> public interface IRemote : IEquatable<IRemote?>, IComparable<IRemote> { + /// <summary>Gets the short name of the remote (e.g. <c>origin</c>).</summary> string Name { get; } + + /// <summary>Gets the URL of the remote repository.</summary> string Url { get; } + /// <summary>Gets the refspecs used when fetching from this remote.</summary> IEnumerable<IRefSpec> FetchRefSpecs { get; } + + /// <summary>Gets the refspecs used when pushing to this remote.</summary> IEnumerable<IRefSpec> PushRefSpecs { get; } } diff --git a/src/GitVersion.Core/Git/IRemoteCollection.cs b/src/GitVersion.Core/Git/IRemoteCollection.cs index 531eee8546..ecbb0ac605 100644 --- a/src/GitVersion.Core/Git/IRemoteCollection.cs +++ b/src/GitVersion.Core/Git/IRemoteCollection.cs @@ -1,8 +1,14 @@ namespace GitVersion.Git; +/// <summary>Represents the set of remotes configured for a Git repository.</summary> public interface IRemoteCollection : IEnumerable<IRemote> { + /// <summary>Returns the remote with the given <paramref name="name"/>, or <see langword="null"/> if it does not exist.</summary> IRemote? this[string name] { get; } + + /// <summary>Removes the remote identified by <paramref name="remoteName"/> from the repository configuration.</summary> void Remove(string remoteName); + + /// <summary>Adds or updates the fetch refspec for the remote identified by <paramref name="remoteName"/>.</summary> void Update(string remoteName, string refSpec); } diff --git a/src/GitVersion.Core/Git/ITag.cs b/src/GitVersion.Core/Git/ITag.cs index c37dec97f4..e39005cf8f 100644 --- a/src/GitVersion.Core/Git/ITag.cs +++ b/src/GitVersion.Core/Git/ITag.cs @@ -1,8 +1,11 @@ namespace GitVersion.Git; +/// <summary>Represents a Git tag (lightweight or annotated).</summary> public interface ITag : IEquatable<ITag?>, IComparable<ITag>, INamedReference { + /// <summary>Gets the SHA of the object that this tag directly points to (the tag object SHA for annotated tags, or the commit SHA for lightweight tags).</summary> string TargetSha { get; } + /// <summary>Gets the commit that this tag ultimately resolves to.</summary> ICommit Commit { get; } } diff --git a/src/GitVersion.Core/Git/ITagCollection.cs b/src/GitVersion.Core/Git/ITagCollection.cs index 3065430e39..ac652a2eed 100644 --- a/src/GitVersion.Core/Git/ITagCollection.cs +++ b/src/GitVersion.Core/Git/ITagCollection.cs @@ -1,3 +1,4 @@ namespace GitVersion.Git; +/// <summary>Represents the set of all tags in a Git repository.</summary> public interface ITagCollection : IEnumerable<ITag>; diff --git a/src/GitVersion.Core/Git/ITreeChanges.cs b/src/GitVersion.Core/Git/ITreeChanges.cs index 28a4600d68..a6ccab9f95 100644 --- a/src/GitVersion.Core/Git/ITreeChanges.cs +++ b/src/GitVersion.Core/Git/ITreeChanges.cs @@ -1,6 +1,8 @@ namespace GitVersion.Git; +/// <summary>Represents the set of file paths changed between two tree objects.</summary> public interface ITreeChanges { + /// <summary>Gets the paths of all files that were added, modified, or deleted.</summary> IReadOnlyList<string> Paths { get; } } diff --git a/src/GitVersion.Core/Git/RefSpecDirection.cs b/src/GitVersion.Core/Git/RefSpecDirection.cs index 97070104f8..b7af46d05b 100644 --- a/src/GitVersion.Core/Git/RefSpecDirection.cs +++ b/src/GitVersion.Core/Git/RefSpecDirection.cs @@ -1,7 +1,11 @@ namespace GitVersion.Git; +/// <summary>Indicates the direction of a refspec mapping.</summary> public enum RefSpecDirection { + /// <summary>The refspec is used when fetching from a remote.</summary> Fetch, + + /// <summary>The refspec is used when pushing to a remote.</summary> Push } diff --git a/src/GitVersion.Core/Git/ReferenceName.cs b/src/GitVersion.Core/Git/ReferenceName.cs index 9686a0a22a..477d5c4bf0 100644 --- a/src/GitVersion.Core/Git/ReferenceName.cs +++ b/src/GitVersion.Core/Git/ReferenceName.cs @@ -4,12 +4,16 @@ namespace GitVersion.Git; +/// <summary>Represents a Git reference name in both its canonical (<c>refs/heads/main</c>) and friendly (<c>main</c>) forms.</summary> public class ReferenceName : IEquatable<ReferenceName?>, IComparable<ReferenceName> { private static readonly LambdaEqualityHelper<ReferenceName> equalityHelper = new(x => x.Canonical); private static readonly LambdaKeyComparer<ReferenceName, string> comparerHelper = new(x => x.Canonical); + /// <summary>The canonical prefix for local branches.</summary> public const string LocalBranchPrefix = "refs/heads/"; + + /// <summary>The canonical prefix for remote-tracking branches.</summary> public const string RemoteTrackingBranchPrefix = "refs/remotes/"; private const string TagPrefix = "refs/tags/"; private const string OriginPrefix = "origin/"; @@ -22,6 +26,7 @@ public class ReferenceName : IEquatable<ReferenceName?>, IComparable<ReferenceNa "refs/remotes/pull-requests/" ]; + /// <summary>Initializes a new <see cref="ReferenceName"/> from its canonical form.</summary> public ReferenceName(string canonical) { Canonical = canonical.NotNull(); @@ -35,41 +40,56 @@ public ReferenceName(string canonical) WithoutOrigin = RemoveOrigin(); } + /// <summary>Parses <paramref name="canonicalName"/> as a canonical Git reference name, throwing when the input is not a valid canonical form.</summary> public static ReferenceName Parse(string canonicalName) { if (TryParse(out var value, canonicalName)) return value; throw new ArgumentException($"The {nameof(canonicalName)} is not a Canonical name"); } + /// <summary>Creates a <see cref="ReferenceName"/> from a branch name, automatically prepending the local-branch prefix when necessary.</summary> public static ReferenceName FromBranchName(string branchName) => TryParse(out var value, branchName) ? value : Parse(LocalBranchPrefix + branchName); + /// <summary>Gets the canonical reference name (e.g. <c>refs/heads/main</c>).</summary> public string Canonical { get; } + /// <summary>Gets the shortened, human-readable reference name (e.g. <c>main</c> or <c>origin/main</c>).</summary> public string Friendly { get; } + /// <summary>Gets the friendly name with the <c>origin/</c> prefix removed for remote-tracking branches.</summary> public string WithoutOrigin { get; } + /// <summary>Gets a value indicating whether this is a local branch reference.</summary> public bool IsLocalBranch { get; } + /// <summary>Gets a value indicating whether this is a remote-tracking branch reference.</summary> public bool IsRemoteBranch { get; } + /// <summary>Gets a value indicating whether this is a tag reference.</summary> public bool IsTag { get; } + /// <summary>Gets a value indicating whether this reference corresponds to a pull request.</summary> public bool IsPullRequest { get; } + /// <summary>Returns <see langword="true"/> when the canonical name of this instance equals that of <paramref name="other"/>.</summary> public bool Equals(ReferenceName? other) => equalityHelper.Equals(this, other); + /// <summary>Compares this instance to <paramref name="other"/> by canonical name.</summary> public int CompareTo(ReferenceName? other) => comparerHelper.Compare(this, other); + /// <summary>Returns <see langword="true"/> when <paramref name="obj"/> is a <see cref="ReferenceName"/> with the same canonical name.</summary> public override bool Equals(object? obj) => Equals(obj as ReferenceName); + /// <summary>Returns a hash code based on the canonical name.</summary> public override int GetHashCode() => equalityHelper.GetHashCode(this); + /// <summary>Returns the friendly (shortened) name of this reference.</summary> public override string ToString() => Friendly; + /// <summary>Returns <see langword="true"/> when <paramref name="left"/> and <paramref name="right"/> have equal canonical names.</summary> public static bool operator ==(ReferenceName? left, ReferenceName? right) { if (ReferenceEquals(left, right)) return true; @@ -77,8 +97,10 @@ public static ReferenceName FromBranchName(string branchName) return left.Equals(right); } + /// <summary>Returns <see langword="true"/> when <paramref name="left"/> and <paramref name="right"/> have different canonical names.</summary> public static bool operator !=(ReferenceName? left, ReferenceName? right) => !(left == right); + /// <summary>Returns <see langword="true"/> when <paramref name="name"/> matches any of the canonical, friendly, or origin-stripped forms of this reference.</summary> public bool EquivalentTo(string? name) => Canonical.Equals(name, StringComparison.OrdinalIgnoreCase) || Friendly.Equals(name, StringComparison.OrdinalIgnoreCase) diff --git a/src/GitVersion.Core/GitVersion.Core.csproj b/src/GitVersion.Core/GitVersion.Core.csproj index 0843eba8da..97ff38e4db 100644 --- a/src/GitVersion.Core/GitVersion.Core.csproj +++ b/src/GitVersion.Core/GitVersion.Core.csproj @@ -12,9 +12,9 @@ </PropertyGroup> <ItemGroup> - <PackageReference Include="Polly" /> <PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" /> <PackageReference Include="Microsoft.Extensions.Options" /> + <PackageReference Include="Polly" /> <PackageReference Include="System.IO.Abstractions" /> </ItemGroup> diff --git a/src/GitVersion.Core/GitVersion.Core.csproj.DotSettings b/src/GitVersion.Core/GitVersion.Core.csproj.DotSettings new file mode 100644 index 0000000000..b542948fc7 --- /dev/null +++ b/src/GitVersion.Core/GitVersion.Core.csproj.DotSettings @@ -0,0 +1,4 @@ +<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation"> + <s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=core/@EntryIndexedValue">True</s:Boolean> + <s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=core_005Cabstractions/@EntryIndexedValue">True</s:Boolean> + <s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=core_005Cexceptions/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary> \ No newline at end of file diff --git a/src/GitVersion.Core/GitVersionCommonModule.cs b/src/GitVersion.Core/GitVersionCommonModule.cs index 767b780e52..cf9e1f0a9c 100644 --- a/src/GitVersion.Core/GitVersionCommonModule.cs +++ b/src/GitVersion.Core/GitVersionCommonModule.cs @@ -1,12 +1,13 @@ using System.IO.Abstractions; using GitVersion.Agents; using GitVersion.Logging; -using Microsoft.Extensions.DependencyInjection; namespace GitVersion; +/// <summary>Registers common infrastructure services such as logging, file system, environment, and build-agent resolution.</summary> public class GitVersionCommonModule : IGitVersionModule { + /// <summary>Registers the common infrastructure services into the DI container.</summary> public void RegisterTypes(IServiceCollection services) { services.AddSingleton<ILog, Log>(); diff --git a/src/GitVersion.Core/GitVersionContext.cs b/src/GitVersion.Core/GitVersionContext.cs index 7264abe4c5..a35ec13745 100644 --- a/src/GitVersion.Core/GitVersionContext.cs +++ b/src/GitVersion.Core/GitVersionContext.cs @@ -19,13 +19,18 @@ public class GitVersionContext( /// </summary> public IGitVersionConfiguration Configuration { get; } = configuration.NotNull(); + /// <summary>Gets the branch currently being versioned.</summary> public IBranch CurrentBranch { get; } = currentBranch.NotNull(); + /// <summary>Gets the commits on the current branch that were authored before the current commit.</summary> public IEnumerable<ICommit> CurrentBranchCommits => CurrentBranch.Commits.GetCommitsPriorTo(CurrentCommit.When); + /// <summary>Gets the commit being versioned.</summary> public ICommit CurrentCommit { get; } = currentCommit.NotNull(); + /// <summary>Gets a value indicating whether the current commit has an exact-match version tag.</summary> public bool IsCurrentCommitTagged { get; } = isCurrentCommitTagged; + /// <summary>Gets the number of files that have been modified but not yet committed.</summary> public int NumberOfUncommittedChanges { get; } = numberOfUncommittedChanges; } diff --git a/src/GitVersion.Core/GitVersionCoreModule.cs b/src/GitVersion.Core/GitVersionCoreModule.cs index f059927193..3af3941871 100644 --- a/src/GitVersion.Core/GitVersionCoreModule.cs +++ b/src/GitVersion.Core/GitVersionCoreModule.cs @@ -1,14 +1,13 @@ -using GitVersion.Common; -using GitVersion.Core; using GitVersion.Extensions; using GitVersion.VersionCalculation; using GitVersion.VersionCalculation.Caching; -using Microsoft.Extensions.DependencyInjection; namespace GitVersion; +/// <summary>Registers the core GitVersion services including version calculation, repository access, and caching.</summary> public class GitVersionCoreModule : IGitVersionModule { + /// <summary>Registers all core services into the DI container.</summary> public void RegisterTypes(IServiceCollection services) { services.AddSingleton<IGitVersionCacheProvider, GitVersionCacheProvider>(); diff --git a/src/GitVersion.Core/Helpers/Disposable.cs b/src/GitVersion.Core/Helpers/Disposable.cs index f253bef4ef..57a23b62a7 100644 --- a/src/GitVersion.Core/Helpers/Disposable.cs +++ b/src/GitVersion.Core/Helpers/Disposable.cs @@ -2,11 +2,16 @@ namespace GitVersion.Helpers; +/// <summary>Factory methods for creating lightweight <see cref="IDisposable"/> wrappers around cleanup actions.</summary> public static class Disposable { + /// <summary>Creates an <see cref="IDisposable"/> that invokes <paramref name="disposer"/> when disposed.</summary> public static IDisposable Create(Action disposer) => new AnonymousDisposable(disposer); + + /// <summary>Creates an <see cref="IDisposable{T}"/> that holds <paramref name="value"/> and invokes <paramref name="disposer"/> when disposed.</summary> public static IDisposable<T> Create<T>(T value, Action disposer) => new AnonymousDisposable<T>(value, disposer); + /// <summary>A no-op disposable that does nothing when disposed.</summary> public static readonly IDisposable Empty = Create(() => { }); private sealed class AnonymousDisposable(Action disposer) : IDisposable @@ -33,7 +38,9 @@ public void Dispose() } } +/// <summary>An <see cref="IDisposable"/> that also exposes a value of type <typeparamref name="T"/>.</summary> public interface IDisposable<out T> : IDisposable { + /// <summary>Gets the value held by this disposable wrapper.</summary> T Value { get; } } diff --git a/src/GitVersion.Core/Helpers/LambdaEqualityHelper.cs b/src/GitVersion.Core/Helpers/LambdaEqualityHelper.cs index 15d1b7ad9a..087b0402d9 100644 --- a/src/GitVersion.Core/Helpers/LambdaEqualityHelper.cs +++ b/src/GitVersion.Core/Helpers/LambdaEqualityHelper.cs @@ -3,8 +3,11 @@ namespace GitVersion.Helpers; // From the LibGit2Sharp project (libgit2sharp.com) // MIT License - Copyright (c) 2011-2014 LibGit2Sharp contributors // see https://github.com/libgit2/libgit2sharp/blob/7af5c60f22f9bd6064204f84467cfa62bedd1147/LibGit2Sharp/Core/LambdaEqualityHelper.cs + +/// <summary>Provides equality and hash-code implementation for <typeparamref name="T"/> based on a set of key-selector functions.</summary> public class LambdaEqualityHelper<T>(params Func<T, object?>[] equalityContributorAccessors) { + /// <summary>Returns <see langword="true"/> when <paramref name="instance"/> and <paramref name="other"/> are equal according to all registered key selectors.</summary> public bool Equals(T? instance, T? other) { if (instance is null || other is null) @@ -20,6 +23,7 @@ public bool Equals(T? instance, T? other) return instance.GetType() == other.GetType() && equalityContributorAccessors.All(accessor => Equals(accessor(instance), accessor(other))); } + /// <summary>Computes a hash code for <paramref name="instance"/> by combining the hash codes of all registered keys.</summary> public int GetHashCode(T instance) { var hashCode = GetType().GetHashCode(); diff --git a/src/GitVersion.Core/Helpers/LambdaKeyComparer.cs b/src/GitVersion.Core/Helpers/LambdaKeyComparer.cs index e5ff678e55..6ea436f6fa 100644 --- a/src/GitVersion.Core/Helpers/LambdaKeyComparer.cs +++ b/src/GitVersion.Core/Helpers/LambdaKeyComparer.cs @@ -1,5 +1,6 @@ namespace GitVersion.Helpers; +/// <summary>A <see cref="Comparer{T}"/> that delegates comparison to a key-selector function, with an optional inner comparer for the key type.</summary> public class LambdaKeyComparer<TSource, TKey>( Func<TSource, TKey> keySelector, IComparer<TKey>? innerComparer = null) @@ -8,6 +9,7 @@ public class LambdaKeyComparer<TSource, TKey>( { private readonly IComparer<TKey> innerComparer = innerComparer ?? Comparer<TKey>.Default; + /// <summary>Compares <paramref name="x"/> and <paramref name="y"/> by applying the key selector and delegating to the inner comparer.</summary> public override int Compare(TSource? x, TSource? y) { if (ReferenceEquals(x, y)) diff --git a/src/GitVersion.Core/Helpers/RetryAction.cs b/src/GitVersion.Core/Helpers/RetryAction.cs index 0365fb8061..97f4162ad6 100644 --- a/src/GitVersion.Core/Helpers/RetryAction.cs +++ b/src/GitVersion.Core/Helpers/RetryAction.cs @@ -3,19 +3,24 @@ namespace GitVersion.Helpers; +/// <summary>Executes an action with automatic linear-backoff retries when a <typeparamref name="T"/> exception is thrown, discarding the return value.</summary> public class RetryAction<T>(int maxRetries = 5) : RetryAction<T, bool>(maxRetries) where T : Exception { + /// <summary>Executes <paramref name="operation"/>, retrying on <typeparamref name="T"/> up to the configured maximum number of times.</summary> public void Execute(Action operation) => base.Execute(() => { operation(); return false; }); } + +/// <summary>Executes a function with automatic linear-backoff retries when a <typeparamref name="T"/> exception is thrown.</summary> public class RetryAction<T, Result> where T : Exception { private readonly RetryPolicy<Result> retryPolicy; + /// <summary>Initializes a new retry handler that retries up to <paramref name="maxRetries"/> times with a linear backoff starting at 100 ms.</summary> public RetryAction(int maxRetries = 5) { ArgumentOutOfRangeException.ThrowIfNegative(maxRetries); @@ -26,6 +31,7 @@ public RetryAction(int maxRetries = 5) .WaitAndRetry(linearBackoff); } + /// <summary>Executes <paramref name="operation"/>, retrying on <typeparamref name="T"/> according to the configured policy.</summary> public Result Execute(Func<Result> operation) => this.retryPolicy.Execute(operation); private static IEnumerable<TimeSpan> LinearBackoff(TimeSpan initialDelay, int retryCount, double factor = 1.0, bool fastFirst = false) diff --git a/src/GitVersion.Core/Helpers/ServiceMessageEscapeHelper.cs b/src/GitVersion.Core/Helpers/ServiceMessageEscapeHelper.cs index 4e77485571..028daecf21 100644 --- a/src/GitVersion.Core/Helpers/ServiceMessageEscapeHelper.cs +++ b/src/GitVersion.Core/Helpers/ServiceMessageEscapeHelper.cs @@ -1,7 +1,9 @@ namespace GitVersion.Helpers; +/// <summary>Escapes special characters in values written to TeamCity service messages.</summary> public static class ServiceMessageEscapeHelper { + /// <summary>Returns <paramref name="value"/> with TeamCity service-message special characters escaped, or <see langword="null"/> when <paramref name="value"/> is <see langword="null"/>.</summary> public static string? EscapeValue(string? value) { if (value == null) diff --git a/src/GitVersion.Core/Logging/Abstractions/IConsole.cs b/src/GitVersion.Core/Logging/Abstractions/IConsole.cs index fcd934d0b8..765b67d4da 100644 --- a/src/GitVersion.Core/Logging/Abstractions/IConsole.cs +++ b/src/GitVersion.Core/Logging/Abstractions/IConsole.cs @@ -1,9 +1,17 @@ namespace GitVersion.Logging; +/// <summary>Provides console I/O operations used by GitVersion's logging infrastructure.</summary> public interface IConsole { + /// <summary>Writes <paramref name="msg"/> followed by a newline to the console.</summary> void WriteLine(string? msg); + + /// <summary>Writes <paramref name="msg"/> to the console without a trailing newline.</summary> void Write(string? msg); + + /// <summary>Reads a line of text from the console.</summary> string? ReadLine(); + + /// <summary>Returns a disposable that sets the console foreground colour to <paramref name="consoleColor"/> and restores the previous colour when disposed.</summary> IDisposable UseColor(ConsoleColor consoleColor); } diff --git a/src/GitVersion.Core/Logging/Abstractions/ILog.cs b/src/GitVersion.Core/Logging/Abstractions/ILog.cs index 0277f8e333..d4c449ace2 100644 --- a/src/GitVersion.Core/Logging/Abstractions/ILog.cs +++ b/src/GitVersion.Core/Logging/Abstractions/ILog.cs @@ -1,10 +1,20 @@ namespace GitVersion.Logging; +/// <summary>Provides structured logging for GitVersion, supporting multiple verbosity levels and pluggable appenders.</summary> public interface ILog { + /// <summary>Gets or sets the minimum verbosity level at which messages are written.</summary> Verbosity Verbosity { get; set; } - void Write(Verbosity verbosity, LogLevel level, string format, params object[] args); + + /// <summary>Writes a formatted log message at the given <paramref name="verbosity"/> and <paramref name="level"/>.</summary> + void Write(Verbosity verbosity, LogLevel level, string format, params object?[] args); + + /// <summary>Returns a disposable scope that indents subsequent log output and labels it with <paramref name="operationDescription"/>.</summary> IDisposable IndentLog(string operationDescription); + + /// <summary>Registers an additional <see cref="ILogAppender"/> that will receive all log messages.</summary> void AddLogAppender(ILogAppender logAppender); + + /// <summary>Writes a visual separator line to the log output.</summary> void Separator(); } diff --git a/src/GitVersion.Core/Logging/Abstractions/ILogAppender.cs b/src/GitVersion.Core/Logging/Abstractions/ILogAppender.cs index 3cb255f142..4209d31539 100644 --- a/src/GitVersion.Core/Logging/Abstractions/ILogAppender.cs +++ b/src/GitVersion.Core/Logging/Abstractions/ILogAppender.cs @@ -1,6 +1,8 @@ namespace GitVersion.Logging; +/// <summary>Receives log messages forwarded by the <see cref="ILog"/> implementation, allowing custom sinks (e.g. file, build-agent output).</summary> public interface ILogAppender { + /// <summary>Writes <paramref name="message"/> at the given <paramref name="level"/> to this appender's destination.</summary> void WriteTo(LogLevel level, string message); } diff --git a/src/GitVersion.Core/Logging/Log.cs b/src/GitVersion.Core/Logging/Log.cs index 23459c4b1c..37b8654184 100644 --- a/src/GitVersion.Core/Logging/Log.cs +++ b/src/GitVersion.Core/Logging/Log.cs @@ -1,5 +1,4 @@ using System.Globalization; -using GitVersion.Core; using GitVersion.Helpers; namespace GitVersion.Logging; @@ -17,7 +16,7 @@ public Log() : this([]) public Verbosity Verbosity { get; set; } = Verbosity.Normal; - public void Write(Verbosity verbosity, LogLevel level, string format, params object[] args) + public void Write(Verbosity verbosity, LogLevel level, string format, params object?[] args) { if (verbosity > Verbosity) { @@ -58,7 +57,7 @@ public IDisposable IndentLog(string operationDescription) private string FormatMessage(string message, string level) { - var obscuredMessage = RegexPatterns.Common.ObscurePasswordRegex().Replace(message, "$1$2:*******@"); + var obscuredMessage = RegexPatterns.ObscurePasswordRegex.Replace(message, "$1$2:*******@"); var timestamp = $"{DateTime.Now:yy-MM-dd H:mm:ss:ff}"; return string.Format(CultureInfo.InvariantCulture, "{0}{1} [{2}] {3}", this.currentIndentation, level, timestamp, obscuredMessage); } diff --git a/src/GitVersion.Core/Logging/LogAction.cs b/src/GitVersion.Core/Logging/LogAction.cs index e0076f856e..4b26380073 100644 --- a/src/GitVersion.Core/Logging/LogAction.cs +++ b/src/GitVersion.Core/Logging/LogAction.cs @@ -1,5 +1,7 @@ namespace GitVersion.Logging; +/// <summary>A delegate that receives a <see cref="LogActionEntry"/> callback used to lazily compose a log message.</summary> public delegate void LogAction(LogActionEntry actionEntry); +/// <summary>A delegate that formats and writes a log message using the supplied format string and arguments.</summary> public delegate void LogActionEntry(string format, params object[] args); diff --git a/src/GitVersion.Core/Logging/LogExtensions.cs b/src/GitVersion.Core/Logging/LogExtensions.cs index 4781502246..70e407bcc6 100644 --- a/src/GitVersion.Core/Logging/LogExtensions.cs +++ b/src/GitVersion.Core/Logging/LogExtensions.cs @@ -2,108 +2,114 @@ namespace GitVersion.Logging; +/// <summary>Extension methods on <see cref="ILog"/> that provide level-specific logging helpers (<c>Debug</c>, <c>Info</c>, <c>Warning</c>, <c>Error</c>) and verbosity-scope methods.</summary> public static class LogExtensions { - public static void Debug(this ILog log, string format, params object[] args) => log.Write(LogLevel.Debug, format, args); - - public static void Debug(this ILog log, Verbosity verbosity, string format, params object[] args) => log.Write(verbosity, LogLevel.Debug, format, args); - - public static void Debug(this ILog log, LogAction logAction) => log.Write(LogLevel.Debug, logAction); - - public static void Debug(this ILog log, Verbosity verbosity, LogAction logAction) => log.Write(verbosity, LogLevel.Debug, logAction); - - public static void Warning(this ILog log, string format, params object[] args) => log.Write(LogLevel.Warn, format, args); - - public static void Warning(this ILog log, Verbosity verbosity, string format, params object[] args) => log.Write(verbosity, LogLevel.Warn, format, args); - - public static void Warning(this ILog log, LogAction logAction) => log.Write(LogLevel.Warn, logAction); - - public static void Warning(this ILog log, Verbosity verbosity, LogAction logAction) => log.Write(verbosity, LogLevel.Warn, logAction); - - public static void Info(this ILog log, string format, params object[] args) => log.Write(LogLevel.Info, format, args); - - public static void Info(this ILog log, Verbosity verbosity, string format, params object[] args) => log.Write(verbosity, LogLevel.Info, format, args); - - public static void Info(this ILog log, LogAction logAction) => log.Write(LogLevel.Info, logAction); - - public static void Info(this ILog log, Verbosity verbosity, LogAction logAction) => log.Write(verbosity, LogLevel.Info, logAction); - - public static void Verbose(this ILog log, string format, params object[] args) => log.Write(LogLevel.Verbose, format, args); - - public static void Verbose(this ILog log, Verbosity verbosity, string format, params object[] args) => log.Write(verbosity, LogLevel.Verbose, format, args); - - public static void Verbose(this ILog log, LogAction logAction) => log.Write(LogLevel.Verbose, logAction); - - public static void Verbose(this ILog log, Verbosity verbosity, LogAction logAction) => log.Write(verbosity, LogLevel.Verbose, logAction); - - public static void Error(this ILog log, string format, params object[] args) => log.Write(LogLevel.Error, format, args); - - public static void Error(this ILog log, Verbosity verbosity, string format, params object[] args) => log.Write(verbosity, LogLevel.Error, format, args); - - public static void Error(this ILog log, LogAction logAction) => log.Write(LogLevel.Error, logAction); - - public static void Error(this ILog log, Verbosity verbosity, LogAction logAction) => log.Write(verbosity, LogLevel.Error, logAction); - - private static void Write(this ILog log, LogLevel level, string format, params object[] args) + extension(ILog log) { - var verbosity = GetVerbosityForLevel(level); - if (verbosity > log.Verbosity) + /// <summary>Writes a debug-level message.</summary> + public void Debug(string format, params object?[] args) => log.Write(LogLevel.Debug, format, args); + /// <summary>Writes a debug-level message at an explicit verbosity.</summary> + public void Debug(Verbosity verbosity, string format, params object?[] args) => log.Write(verbosity, LogLevel.Debug, format, args); + /// <summary>Writes a debug-level message produced by a lazy <see cref="LogAction"/>.</summary> + public void Debug(LogAction logAction) => log.Write(LogLevel.Debug, logAction); + /// <summary>Writes a debug-level message produced by a lazy <see cref="LogAction"/> at an explicit verbosity.</summary> + public void Debug(Verbosity verbosity, LogAction logAction) => log.Write(verbosity, LogLevel.Debug, logAction); + /// <summary>Writes a warning-level message.</summary> + public void Warning(string format, params object?[] args) => log.Write(LogLevel.Warn, format, args); + /// <summary>Writes a warning-level message at an explicit verbosity.</summary> + public void Warning(Verbosity verbosity, string format, params object?[] args) => log.Write(verbosity, LogLevel.Warn, format, args); + /// <summary>Writes a warning-level message produced by a lazy <see cref="LogAction"/>.</summary> + public void Warning(LogAction logAction) => log.Write(LogLevel.Warn, logAction); + /// <summary>Writes a warning-level message produced by a lazy <see cref="LogAction"/> at an explicit verbosity.</summary> + public void Warning(Verbosity verbosity, LogAction logAction) => log.Write(verbosity, LogLevel.Warn, logAction); + /// <summary>Writes an informational message.</summary> + public void Info(string format, params object?[] args) => log.Write(LogLevel.Info, format, args); + /// <summary>Writes an informational message at an explicit verbosity.</summary> + public void Info(Verbosity verbosity, string format, params object?[] args) => log.Write(verbosity, LogLevel.Info, format, args); + /// <summary>Writes an informational message produced by a lazy <see cref="LogAction"/>.</summary> + public void Info(LogAction logAction) => log.Write(LogLevel.Info, logAction); + /// <summary>Writes an informational message produced by a lazy <see cref="LogAction"/> at an explicit verbosity.</summary> + public void Info(Verbosity verbosity, LogAction logAction) => log.Write(verbosity, LogLevel.Info, logAction); + /// <summary>Writes a verbose-level message.</summary> + public void Verbose(string format, params object?[] args) => log.Write(LogLevel.Verbose, format, args); + /// <summary>Writes a verbose-level message at an explicit verbosity.</summary> + public void Verbose(Verbosity verbosity, string format, params object?[] args) => log.Write(verbosity, LogLevel.Verbose, format, args); + /// <summary>Writes a verbose-level message produced by a lazy <see cref="LogAction"/>.</summary> + public void Verbose(LogAction logAction) => log.Write(LogLevel.Verbose, logAction); + /// <summary>Writes a verbose-level message produced by a lazy <see cref="LogAction"/> at an explicit verbosity.</summary> + public void Verbose(Verbosity verbosity, LogAction logAction) => log.Write(verbosity, LogLevel.Verbose, logAction); + /// <summary>Writes an error-level message.</summary> + public void Error(string format, params object?[] args) => log.Write(LogLevel.Error, format, args); + /// <summary>Writes an error-level message at an explicit verbosity.</summary> + public void Error(Verbosity verbosity, string format, params object?[] args) => log.Write(verbosity, LogLevel.Error, format, args); + /// <summary>Writes an error-level message produced by a lazy <see cref="LogAction"/>.</summary> + public void Error(LogAction logAction) => log.Write(LogLevel.Error, logAction); + /// <summary>Writes an error-level message produced by a lazy <see cref="LogAction"/> at an explicit verbosity.</summary> + public void Error(Verbosity verbosity, LogAction logAction) => log.Write(verbosity, LogLevel.Error, logAction); + + private void Write(LogLevel level, string format, params object?[] args) { - return; - } + var verbosity = GetVerbosityForLevel(level); + if (verbosity > log.Verbosity) + { + return; + } - log.Write(verbosity, level, format, args); - } - - private static void Write(this ILog log, Verbosity verbosity, LogLevel level, LogAction? logAction) - { - if (logAction == null) - return; - - if (verbosity > log.Verbosity) - { - return; + log.Write(verbosity, level, format, args); } - logAction(ActionEntry); - return; + private void Write(Verbosity verbosity, LogLevel level, LogAction? logAction) + { + if (logAction == null) + return; - void ActionEntry(string format, object[] args) => log.Write(verbosity, level, format, args); - } + if (verbosity > log.Verbosity) + { + return; + } - private static void Write(this ILog log, LogLevel level, LogAction? logAction) - { - if (logAction == null) + logAction(ActionEntry); return; - var verbosity = GetVerbosityForLevel(level); - if (verbosity > log.Verbosity) - { - return; + void ActionEntry(string format, object[] args) => log.Write(verbosity, level, format, args); } - logAction(ActionEntry); - return; - - void ActionEntry(string format, object[] args) => log.Write(verbosity, level, format, args); - } - - public static IDisposable QuietVerbosity(this ILog log) => log.WithVerbosity(Verbosity.Quiet); - - public static IDisposable MinimalVerbosity(this ILog log) => log.WithVerbosity(Verbosity.Minimal); + private void Write(LogLevel level, LogAction? logAction) + { + if (logAction == null) + return; - public static IDisposable NormalVerbosity(this ILog log) => log.WithVerbosity(Verbosity.Normal); + var verbosity = GetVerbosityForLevel(level); + if (verbosity > log.Verbosity) + { + return; + } - public static IDisposable VerboseVerbosity(this ILog log) => log.WithVerbosity(Verbosity.Verbose); + logAction(ActionEntry); + return; - public static IDisposable DiagnosticVerbosity(this ILog log) => log.WithVerbosity(Verbosity.Diagnostic); + void ActionEntry(string format, object[] args) => log.Write(verbosity, level, format, args); + } - private static IDisposable WithVerbosity(this ILog log, Verbosity verbosity) - { - ArgumentNullException.ThrowIfNull(log); - var lastVerbosity = log.Verbosity; - log.Verbosity = verbosity; - return Disposable.Create(() => log.Verbosity = lastVerbosity); + /// <summary>Returns a scope that temporarily sets the log verbosity to <see cref="Verbosity.Quiet"/>.</summary> + public IDisposable QuietVerbosity() => log.WithVerbosity(Verbosity.Quiet); + /// <summary>Returns a scope that temporarily sets the log verbosity to <see cref="Verbosity.Minimal"/>.</summary> + public IDisposable MinimalVerbosity() => log.WithVerbosity(Verbosity.Minimal); + /// <summary>Returns a scope that temporarily sets the log verbosity to <see cref="Verbosity.Normal"/>.</summary> + public IDisposable NormalVerbosity() => log.WithVerbosity(Verbosity.Normal); + /// <summary>Returns a scope that temporarily sets the log verbosity to <see cref="Verbosity.Verbose"/>.</summary> + public IDisposable VerboseVerbosity() => log.WithVerbosity(Verbosity.Verbose); + /// <summary>Returns a scope that temporarily sets the log verbosity to <see cref="Verbosity.Diagnostic"/>.</summary> + public IDisposable DiagnosticVerbosity() => log.WithVerbosity(Verbosity.Diagnostic); + + private IDisposable WithVerbosity(Verbosity verbosity) + { + ArgumentNullException.ThrowIfNull(log); + var lastVerbosity = log.Verbosity; + log.Verbosity = verbosity; + return Disposable.Create(() => log.Verbosity = lastVerbosity); + } } private static Verbosity GetVerbosityForLevel(LogLevel level) => VerbosityMaps[level]; diff --git a/src/GitVersion.Core/Logging/LogLevel.cs b/src/GitVersion.Core/Logging/LogLevel.cs index 90f538bd1b..4c8555118c 100644 --- a/src/GitVersion.Core/Logging/LogLevel.cs +++ b/src/GitVersion.Core/Logging/LogLevel.cs @@ -1,11 +1,23 @@ namespace GitVersion.Logging; +/// <summary>Defines the severity levels used when writing log messages.</summary> public enum LogLevel { + /// <summary>The application cannot continue and must terminate.</summary> Fatal, + + /// <summary>A serious failure occurred that may be recoverable.</summary> Error, + + /// <summary>An unexpected but non-fatal situation that deserves attention.</summary> Warn, + + /// <summary>General informational output about normal operation.</summary> Info, + + /// <summary>Detailed diagnostic output useful for troubleshooting.</summary> Verbose, + + /// <summary>Very detailed low-level diagnostic output, typically only useful during development.</summary> Debug } diff --git a/src/GitVersion.Core/Logging/NullLog.cs b/src/GitVersion.Core/Logging/NullLog.cs index 8a311f8cc2..6fe6ceb0d3 100644 --- a/src/GitVersion.Core/Logging/NullLog.cs +++ b/src/GitVersion.Core/Logging/NullLog.cs @@ -6,7 +6,7 @@ internal sealed class NullLog : ILog { public Verbosity Verbosity { get; set; } - public void Write(Verbosity verbosity, LogLevel level, string format, params object[] args) + public void Write(Verbosity verbosity, LogLevel level, string format, params object?[] args) { } diff --git a/src/GitVersion.Core/MergeMessage.cs b/src/GitVersion.Core/MergeMessage.cs index 345a9b1c8b..1cb869c275 100644 --- a/src/GitVersion.Core/MergeMessage.cs +++ b/src/GitVersion.Core/MergeMessage.cs @@ -1,26 +1,27 @@ using System.Diagnostics.CodeAnalysis; using System.Text.RegularExpressions; using GitVersion.Configuration; -using GitVersion.Core; using GitVersion.Extensions; using GitVersion.Git; namespace GitVersion; +/// <summary>Parses the message of a merge commit to extract the merged branch name, target branch, pull-request number, and embedded semantic version.</summary> public class MergeMessage { private static readonly IList<(string Name, Regex Pattern)> DefaultFormats = [ - new("Default", RegexPatterns.MergeMessage.DefaultMergeMessageRegex()), - new("SmartGit", RegexPatterns.MergeMessage.SmartGitMergeMessageRegex()), - new("BitBucketPull", RegexPatterns.MergeMessage.BitBucketPullMergeMessageRegex()), - new("BitBucketPullv7", RegexPatterns.MergeMessage.BitBucketPullv7MergeMessageRegex()), - new("BitBucketCloudPull", RegexPatterns.MergeMessage.BitBucketCloudPullMergeMessageRegex()), - new("GitHubPull", RegexPatterns.MergeMessage.GitHubPullMergeMessageRegex()), - new("RemoteTracking", RegexPatterns.MergeMessage.RemoteTrackingMergeMessageRegex()), - new("AzureDevOpsPull", RegexPatterns.MergeMessage.AzureDevOpsPullMergeMessageRegex()) + new("Default", RegexPatterns.MergeMessage.DefaultMergeMessageRegex), + new("SmartGit", RegexPatterns.MergeMessage.SmartGitMergeMessageRegex), + new("BitBucketPull", RegexPatterns.MergeMessage.BitBucketPullMergeMessageRegex), + new("BitBucketPullv7", RegexPatterns.MergeMessage.BitBucketPullv7MergeMessageRegex), + new("BitBucketCloudPull", RegexPatterns.MergeMessage.BitBucketCloudPullMergeMessageRegex), + new("GitHubPull", RegexPatterns.MergeMessage.GitHubPullMergeMessageRegex), + new("RemoteTracking", RegexPatterns.MergeMessage.RemoteTrackingMergeMessageRegex), + new("AzureDevOpsPull", RegexPatterns.MergeMessage.AzureDevOpsPullMergeMessageRegex) ]; + /// <summary>Parses <paramref name="mergeMessage"/> using the configured and built-in merge message formats.</summary> public MergeMessage(string mergeMessage, IGitVersionConfiguration configuration) { mergeMessage.NotNull(); @@ -53,18 +54,28 @@ public MergeMessage(string mergeMessage, IGitVersionConfiguration configuration) PullRequestNumber = pullNumber; } - Version = MergedBranch?.TryGetSemanticVersion(out var result, configuration) == true ? result.Value : null; + Version = MergedBranch?.TryGetSemanticVersion(configuration, out var result) == true ? result.Value : null; break; } } + /// <summary>Gets the name of the merge message format pattern that was matched, or <see langword="null"/> if none matched.</summary> public string? FormatName { get; } + + /// <summary>Gets the name of the branch that was the merge target, or <see langword="null"/> if not captured.</summary> public string? TargetBranch { get; } + + /// <summary>Gets the reference name of the branch that was merged in, or <see langword="null"/> if not captured.</summary> public ReferenceName? MergedBranch { get; } + /// <summary>Gets a value indicating whether this merge message represents a merged pull request.</summary> public bool IsMergedPullRequest => PullRequestNumber != null; + + /// <summary>Gets the pull-request number extracted from the merge message, or <see langword="null"/> if this is not a pull-request merge.</summary> public int? PullRequestNumber { get; } + + /// <summary>Gets the semantic version embedded in the merged branch name, or <see langword="null"/> if none was found.</summary> public SemanticVersion? Version { get; } private ReferenceName GetMergedBranchName(string mergedBranch) @@ -76,6 +87,7 @@ private ReferenceName GetMergedBranchName(string mergedBranch) return ReferenceName.FromBranchName(mergedBranch); } + /// <summary>Attempts to parse a valid merge message from <paramref name="mergeCommit"/>, setting <paramref name="mergeMessage"/> when successful.</summary> public static bool TryParse( ICommit mergeCommit, IGitVersionConfiguration configuration, [NotNullWhen(true)] out MergeMessage? mergeMessage) { @@ -86,7 +98,7 @@ public static bool TryParse( var mergedBranch = new MergeMessage(mergeCommit.Message, configuration).MergedBranch; var isReleaseBranch = mergedBranch is not null && configuration.IsReleaseBranch(mergedBranch); - var isValidMergeCommit = mergeCommit.IsMergeCommit() || isReleaseBranch; + var isValidMergeCommit = mergeCommit.IsMergeCommit || isReleaseBranch; if (isValidMergeCommit) { diff --git a/src/GitVersion.Core/Options/AssemblySettingsInfo.cs b/src/GitVersion.Core/Options/AssemblySettingsInfo.cs index 6ebecfc00f..318c0bc4fa 100644 --- a/src/GitVersion.Core/Options/AssemblySettingsInfo.cs +++ b/src/GitVersion.Core/Options/AssemblySettingsInfo.cs @@ -1,9 +1,17 @@ namespace GitVersion; +/// <summary>Contains options that control how GitVersion updates assembly version attributes and project files.</summary> public class AssemblySettingsInfo { + /// <summary>Gets or sets a value indicating whether <c>AssemblyInfo.cs</c> files should be updated with the calculated version.</summary> public bool UpdateAssemblyInfo; + + /// <summary>Gets or sets a value indicating whether SDK-style project files (<c>.csproj</c>) should be updated with the calculated version.</summary> public bool UpdateProjectFiles; + + /// <summary>Gets or sets a value indicating whether missing <c>AssemblyInfo.cs</c> files should be created automatically.</summary> public bool EnsureAssemblyInfo; + + /// <summary>Gets or sets the set of specific assembly-info or project file paths to update.</summary> public ISet<string> Files = new HashSet<string>(); } diff --git a/src/GitVersion.Core/Options/ConfigurationInfo.cs b/src/GitVersion.Core/Options/ConfigurationInfo.cs index a7e19756de..d17dc0d410 100644 --- a/src/GitVersion.Core/Options/ConfigurationInfo.cs +++ b/src/GitVersion.Core/Options/ConfigurationInfo.cs @@ -1,8 +1,14 @@ namespace GitVersion; +/// <summary>Holds options that control how the GitVersion configuration file is located and applied.</summary> public record ConfigurationInfo { + /// <summary>Gets or sets an explicit path to the GitVersion configuration file, overriding automatic discovery.</summary> public string? ConfigurationFile; + + /// <summary>Gets or sets a value indicating whether the effective configuration should be printed to the output.</summary> public bool ShowConfiguration; + + /// <summary>Gets or sets a dictionary of key/value pairs that override specific configuration values at runtime.</summary> public IReadOnlyDictionary<object, object?>? OverrideConfiguration; } diff --git a/src/GitVersion.Core/Options/FileWriteInfo.cs b/src/GitVersion.Core/Options/FileWriteInfo.cs index 7a81b8b411..702248a1c6 100644 --- a/src/GitVersion.Core/Options/FileWriteInfo.cs +++ b/src/GitVersion.Core/Options/FileWriteInfo.cs @@ -1,3 +1,4 @@ namespace GitVersion; +/// <summary>Describes the working directory and file name details for writing version output to a file.</summary> public sealed record FileWriteInfo(string WorkingDirectory, string FileName, string FileExtension); diff --git a/src/GitVersion.Core/Options/GitVersionOptions.cs b/src/GitVersion.Core/Options/GitVersionOptions.cs index 1fc689dbd7..9c5f2762c0 100644 --- a/src/GitVersion.Core/Options/GitVersionOptions.cs +++ b/src/GitVersion.Core/Options/GitVersionOptions.cs @@ -3,25 +3,54 @@ namespace GitVersion; +/// <summary>Top-level options object that aggregates all settings used to configure a GitVersion execution.</summary> public class GitVersionOptions { + /// <summary>Gets or sets the working directory from which GitVersion should operate.</summary> public string WorkingDirectory { get; set; } = SysEnv.CurrentDirectory; + + /// <summary>Gets the assembly-update settings.</summary> public AssemblySettingsInfo AssemblySettingsInfo { get; } = new(); + + /// <summary>Gets the credentials used when authenticating with a remote repository.</summary> public AuthenticationInfo AuthenticationInfo { get; } = new(); + /// <summary>Gets the settings that control how the GitVersion configuration file is located and applied.</summary> public ConfigurationInfo ConfigurationInfo { get; } = new(); + + /// <summary>Gets the repository-targeting settings (URL, branch, commit, clone path).</summary> public RepositoryInfo RepositoryInfo { get; } = new(); + + /// <summary>Gets the WiX-specific version-file update settings.</summary> public WixInfo WixInfo { get; } = new(); + + /// <summary>Gets the general runtime behaviour settings (cache, fetch, normalise).</summary> public Settings Settings { get; } = new(); + /// <summary>Gets or sets a value indicating whether extended diagnostic output should be emitted.</summary> public bool Diag; + + /// <summary>Gets or sets a value indicating whether the GitVersion version number should be printed and execution should stop.</summary> public bool IsVersion; + + /// <summary>Gets or sets a value indicating whether help text should be printed and execution should stop.</summary> public bool IsHelp; + /// <summary>Gets or sets the path to a file where log output should be written.</summary> public string? LogFilePath; + + /// <summary>Gets or sets the name of a single version variable to output.</summary> public string? ShowVariable; + + /// <summary>Gets or sets the output format string used when writing a single variable.</summary> public string? Format; + + /// <summary>Gets or sets the path of the file to which version output is written when the <see cref="OutputType.File"/> output type is selected.</summary> public string? OutputFile; + + /// <summary>Gets or sets the set of output types to produce (JSON, build-server, file, dotenv).</summary> public ISet<OutputType> Output = new HashSet<OutputType>(); + + /// <summary>Gets or sets the minimum log verbosity level.</summary> public Verbosity Verbosity = Verbosity.Normal; } diff --git a/src/GitVersion.Core/Options/OutputType.cs b/src/GitVersion.Core/Options/OutputType.cs index 3ad1b04d94..afdea677b7 100644 --- a/src/GitVersion.Core/Options/OutputType.cs +++ b/src/GitVersion.Core/Options/OutputType.cs @@ -1,9 +1,17 @@ namespace GitVersion; +/// <summary>Specifies the format in which GitVersion outputs version variables.</summary> public enum OutputType { + /// <summary>Writes version variables to the CI build server's environment (e.g. TeamCity build parameters, GitHub Actions outputs).</summary> BuildServer, + + /// <summary>Writes version variables as a JSON object to standard output.</summary> Json, + + /// <summary>Writes version variables to a file on disk.</summary> File, + + /// <summary>Writes version variables in the <c>KEY=value</c> dotenv format.</summary> DotEnv } diff --git a/src/GitVersion.Core/Options/RepositoryInfo.cs b/src/GitVersion.Core/Options/RepositoryInfo.cs index 4551ff8e11..f19e8c7be6 100644 --- a/src/GitVersion.Core/Options/RepositoryInfo.cs +++ b/src/GitVersion.Core/Options/RepositoryInfo.cs @@ -1,9 +1,17 @@ namespace GitVersion; +/// <summary>Identifies the remote repository and the specific commit or branch to version.</summary> public record RepositoryInfo { + /// <summary>Gets or sets the URL of the remote repository to clone or fetch from.</summary> public string? TargetUrl; + + /// <summary>Gets or sets the name of the branch to calculate the version for.</summary> public string? TargetBranch; + + /// <summary>Gets or sets a specific commit SHA to use instead of the current HEAD.</summary> public string? CommitId; + + /// <summary>Gets or sets the local path to which the repository should be cloned when using dynamic repositories.</summary> public string? ClonePath; } diff --git a/src/GitVersion.Core/Options/Settings.cs b/src/GitVersion.Core/Options/Settings.cs index cbb9dabc8c..2a12dc006e 100644 --- a/src/GitVersion.Core/Options/Settings.cs +++ b/src/GitVersion.Core/Options/Settings.cs @@ -1,10 +1,20 @@ namespace GitVersion; +/// <summary>Controls general runtime behaviours such as caching, fetching, and branch normalisation.</summary> public record Settings { + /// <summary>Gets or sets a value indicating whether fetching from the remote should be skipped.</summary> public bool NoFetch; + + /// <summary>Gets or sets a value indicating whether the on-disk version cache should be ignored.</summary> public bool NoCache; + + /// <summary>Gets or sets a value indicating whether branch normalisation should be skipped.</summary> public bool NoNormalize; + + /// <summary>Gets or sets a value indicating whether only tracked (remote-tracking) branches are considered during version calculation.</summary> public bool OnlyTrackedBranches = false; + + /// <summary>Gets or sets a value indicating whether GitVersion should continue even when a shallow clone is detected.</summary> public bool AllowShallow = false; } diff --git a/src/GitVersion.Core/Options/WixInfo.cs b/src/GitVersion.Core/Options/WixInfo.cs index 8fa95b2851..6b153ce54e 100644 --- a/src/GitVersion.Core/Options/WixInfo.cs +++ b/src/GitVersion.Core/Options/WixInfo.cs @@ -1,6 +1,8 @@ namespace GitVersion; +/// <summary>Controls WiX installer version file update behaviour.</summary> public record WixInfo { + /// <summary>Gets or sets a value indicating whether the WiX version file should be updated with the calculated version.</summary> public bool UpdateWixVersionFile; } diff --git a/src/GitVersion.Core/Output/IConverterContext.cs b/src/GitVersion.Core/Output/IConverterContext.cs index 94283ad5e6..aa58c51915 100644 --- a/src/GitVersion.Core/Output/IConverterContext.cs +++ b/src/GitVersion.Core/Output/IConverterContext.cs @@ -1,3 +1,4 @@ namespace GitVersion; +/// <summary>Marker interface for context objects passed to <see cref="IVersionConverter{T}"/> implementations.</summary> public interface IConverterContext; diff --git a/src/GitVersion.Core/Output/IVersionConverter.cs b/src/GitVersion.Core/Output/IVersionConverter.cs index 22fdd9a75d..0c20e03a45 100644 --- a/src/GitVersion.Core/Output/IVersionConverter.cs +++ b/src/GitVersion.Core/Output/IVersionConverter.cs @@ -2,7 +2,9 @@ namespace GitVersion; +/// <summary>Converts <see cref="GitVersionVariables"/> to a specific output format (e.g. JSON, environment variables, build-server properties).</summary> public interface IVersionConverter<in T> : IDisposable where T : IConverterContext { + /// <summary>Performs the conversion of <paramref name="variables"/> using the supplied <paramref name="context"/>.</summary> void Execute(GitVersionVariables variables, T context); } diff --git a/src/GitVersion.Core/OutputVariables/GitVersionVariables.cs b/src/GitVersion.Core/OutputVariables/GitVersionVariables.cs index 53a8b55172..a1a6bce164 100644 --- a/src/GitVersion.Core/OutputVariables/GitVersionVariables.cs +++ b/src/GitVersion.Core/OutputVariables/GitVersionVariables.cs @@ -1,97 +1,107 @@ namespace GitVersion.OutputVariables; -public record GitVersionVariables(string Major, - string Minor, - string Patch, - string? BuildMetaData, - string? FullBuildMetaData, - string? BranchName, - string? EscapedBranchName, - string? Sha, - string? ShortSha, - string MajorMinorPatch, - string SemVer, - string FullSemVer, - string? AssemblySemVer, - string? AssemblySemFileVer, - string? PreReleaseTag, - string? PreReleaseTagWithDash, - string? PreReleaseLabel, - string? PreReleaseLabelWithDash, - string? PreReleaseNumber, - string WeightedPreReleaseNumber, - string? InformationalVersion, - string? CommitDate, - string? VersionSourceSha, - string? CommitsSinceVersionSource, - string? UncommittedChanges) : IEnumerable<KeyValuePair<string, string?>> +/// <summary>Contains all version variables calculated by GitVersion for a given repository state.</summary> +public record GitVersionVariables( + string? AssemblySemFileVer, + string? AssemblySemVer, + string? BranchName, + string? BuildMetaData, + string? CommitDate, + [property: Obsolete("CommitsSinceVersionSource has been deprecated. Use VersionSourceDistance instead.")] + string? CommitsSinceVersionSource, + string? EscapedBranchName, + string? FullBuildMetaData, + string FullSemVer, + string? InformationalVersion, + string Major, + string MajorMinorPatch, + string Minor, + string Patch, + string? PreReleaseLabel, + string? PreReleaseLabelWithDash, + string? PreReleaseNumber, + string? PreReleaseTag, + string? PreReleaseTagWithDash, + string SemVer, + string? Sha, + string? ShortSha, + string? UncommittedChanges, + string? VersionSourceDistance, + string? VersionSourceIncrement, + string? VersionSourceSemVer, + string? VersionSourceSha, + string WeightedPreReleaseNumber +) : IEnumerable<KeyValuePair<string, string?>> { internal static readonly List<string> AvailableVariables = [ - nameof(Major), - nameof(Minor), - nameof(Patch), - nameof(BuildMetaData), - nameof(FullBuildMetaData), + nameof(AssemblySemFileVer), + nameof(AssemblySemVer), nameof(BranchName), + nameof(BuildMetaData), + nameof(CommitDate), + nameof(CommitsSinceVersionSource), nameof(EscapedBranchName), - nameof(Sha), - nameof(ShortSha), - nameof(MajorMinorPatch), - nameof(SemVer), + nameof(FullBuildMetaData), nameof(FullSemVer), - nameof(AssemblySemVer), - nameof(AssemblySemFileVer), - nameof(PreReleaseTag), - nameof(PreReleaseTagWithDash), + nameof(InformationalVersion), + nameof(Major), + nameof(MajorMinorPatch), + nameof(Minor), + nameof(Patch), nameof(PreReleaseLabel), nameof(PreReleaseLabelWithDash), nameof(PreReleaseNumber), - nameof(WeightedPreReleaseNumber), - nameof(InformationalVersion), - nameof(CommitDate), + nameof(PreReleaseTag), + nameof(PreReleaseTagWithDash), + nameof(SemVer), + nameof(Sha), + nameof(ShortSha), + nameof(UncommittedChanges), + nameof(VersionSourceDistance), + nameof(VersionSourceIncrement), + nameof(VersionSourceSemVer), nameof(VersionSourceSha), - nameof(CommitsSinceVersionSource), - nameof(UncommittedChanges) + nameof(WeightedPreReleaseNumber) ]; - private Dictionary<string, string?> Instance => new() + private Dictionary<string, string?> Instance => field ??= new() { - { nameof(Major), Major }, - { nameof(Minor), Minor }, - { nameof(Patch), Patch }, - { nameof(BuildMetaData), BuildMetaData }, - { nameof(FullBuildMetaData), FullBuildMetaData }, + { nameof(AssemblySemFileVer), AssemblySemFileVer }, + { nameof(AssemblySemVer), AssemblySemVer }, { nameof(BranchName), BranchName }, + { nameof(BuildMetaData), BuildMetaData }, + { nameof(CommitDate), CommitDate }, + { nameof(CommitsSinceVersionSource), CommitsSinceVersionSource }, { nameof(EscapedBranchName), EscapedBranchName }, - { nameof(Sha), Sha }, - { nameof(ShortSha), ShortSha }, - { nameof(MajorMinorPatch), MajorMinorPatch }, - { nameof(SemVer), SemVer }, + { nameof(FullBuildMetaData), FullBuildMetaData }, { nameof(FullSemVer), FullSemVer }, - { nameof(AssemblySemVer), AssemblySemVer }, - { nameof(AssemblySemFileVer), AssemblySemFileVer }, - { nameof(PreReleaseTag), PreReleaseTag }, - { nameof(PreReleaseTagWithDash), PreReleaseTagWithDash }, + { nameof(InformationalVersion), InformationalVersion }, + { nameof(Major), Major }, + { nameof(MajorMinorPatch), MajorMinorPatch }, + { nameof(Minor), Minor }, + { nameof(Patch), Patch }, { nameof(PreReleaseLabel), PreReleaseLabel }, { nameof(PreReleaseLabelWithDash), PreReleaseLabelWithDash }, { nameof(PreReleaseNumber), PreReleaseNumber }, - { nameof(WeightedPreReleaseNumber), WeightedPreReleaseNumber }, - { nameof(InformationalVersion), InformationalVersion }, - { nameof(CommitDate), CommitDate }, + { nameof(PreReleaseTag), PreReleaseTag }, + { nameof(PreReleaseTagWithDash), PreReleaseTagWithDash }, + { nameof(SemVer), SemVer }, + { nameof(Sha), Sha }, + { nameof(ShortSha), ShortSha }, + { nameof(UncommittedChanges), UncommittedChanges }, + { nameof(VersionSourceDistance), VersionSourceDistance }, + { nameof(VersionSourceIncrement), VersionSourceIncrement }, + { nameof(VersionSourceSemVer), VersionSourceSemVer }, { nameof(VersionSourceSha), VersionSourceSha }, - { nameof(CommitsSinceVersionSource), CommitsSinceVersionSource }, - { nameof(UncommittedChanges), UncommittedChanges } + { nameof(WeightedPreReleaseNumber), WeightedPreReleaseNumber } }; + /// <summary>Returns an enumerator that iterates over all version variable name/value pairs.</summary> public IEnumerator<KeyValuePair<string, string?>> GetEnumerator() => Instance.GetEnumerator(); - IEnumerator IEnumerable.GetEnumerator() => Instance.GetEnumerator(); + IEnumerator IEnumerable.GetEnumerator() => GetEnumerator(); - public bool TryGetValue(string variable, out string? variableValue) - { - if (Instance.TryGetValue(variable, out variableValue)) return true; - variableValue = null; - return false; - } + /// <summary>Attempts to retrieve the value of the version variable identified by <paramref name="variable"/>.</summary> + public bool TryGetValue(string variable, out string? variableValue) => Instance.TryGetValue(variable, out variableValue); } diff --git a/src/GitVersion.Core/OutputVariables/IVersionVariableSerializer.cs b/src/GitVersion.Core/OutputVariables/IVersionVariableSerializer.cs index 2d20579bb9..6d2c569d33 100644 --- a/src/GitVersion.Core/OutputVariables/IVersionVariableSerializer.cs +++ b/src/GitVersion.Core/OutputVariables/IVersionVariableSerializer.cs @@ -1,8 +1,14 @@ namespace GitVersion.OutputVariables; +/// <summary>Serializes and deserializes <see cref="GitVersionVariables"/> to and from JSON and disk files.</summary> public interface IVersionVariableSerializer { + /// <summary>Serializes <paramref name="gitVersionVariables"/> to a JSON string.</summary> string ToJson(GitVersionVariables gitVersionVariables); + + /// <summary>Deserializes a <see cref="GitVersionVariables"/> instance from the JSON file at <paramref name="filePath"/>.</summary> GitVersionVariables FromFile(string filePath); + + /// <summary>Writes <paramref name="gitVersionVariables"/> as JSON to the file at <paramref name="filePath"/>.</summary> void ToFile(GitVersionVariables gitVersionVariables, string filePath); } diff --git a/src/GitVersion.Core/PublicAPI.Shipped.txt b/src/GitVersion.Core/PublicAPI.Shipped.txt index dfdedf515b..5ce0a125bc 100644 --- a/src/GitVersion.Core/PublicAPI.Shipped.txt +++ b/src/GitVersion.Core/PublicAPI.Shipped.txt @@ -19,25 +19,26 @@ GitVersion.BugException GitVersion.BugException.BugException() -> void GitVersion.BugException.BugException(string! message) -> void GitVersion.BugException.BugException(string? message, System.Exception? innerException) -> void -GitVersion.Common.IRepositoryStore -GitVersion.Common.IRepositoryStore.Branches.get -> GitVersion.Git.IBranchCollection! -GitVersion.Common.IRepositoryStore.ExcludingBranches(System.Collections.Generic.IEnumerable<GitVersion.Git.IBranch!>! branchesToExclude) -> System.Collections.Generic.IEnumerable<GitVersion.Git.IBranch!>! -GitVersion.Common.IRepositoryStore.FindBranch(GitVersion.Git.ReferenceName! branchName) -> GitVersion.Git.IBranch? -GitVersion.Common.IRepositoryStore.FindCommitBranchesBranchedFrom(GitVersion.Git.IBranch! branch, GitVersion.Configuration.IGitVersionConfiguration! configuration, params GitVersion.Git.IBranch![]! excludedBranches) -> System.Collections.Generic.IEnumerable<GitVersion.Git.BranchCommit>! -GitVersion.Common.IRepositoryStore.FindMergeBase(GitVersion.Git.IBranch? branch, GitVersion.Git.IBranch? otherBranch) -> GitVersion.Git.ICommit? -GitVersion.Common.IRepositoryStore.FindMergeBase(GitVersion.Git.ICommit! commit, GitVersion.Git.ICommit! mainlineTip) -> GitVersion.Git.ICommit? -GitVersion.Common.IRepositoryStore.GetBranchesContainingCommit(GitVersion.Git.ICommit! commit, System.Collections.Generic.IEnumerable<GitVersion.Git.IBranch!>? branches = null, bool onlyTrackedBranches = false) -> System.Collections.Generic.IEnumerable<GitVersion.Git.IBranch!>! -GitVersion.Common.IRepositoryStore.GetCommitLog(GitVersion.Git.ICommit? baseVersionSource, GitVersion.Git.ICommit! currentCommit, GitVersion.Configuration.IIgnoreConfiguration! ignore) -> System.Collections.Generic.IReadOnlyList<GitVersion.Git.ICommit!>! -GitVersion.Common.IRepositoryStore.GetCommitsReacheableFromHead(GitVersion.Git.ICommit? headCommit, GitVersion.Configuration.IIgnoreConfiguration! ignore) -> System.Collections.Generic.IReadOnlyList<GitVersion.Git.ICommit!>! -GitVersion.Common.IRepositoryStore.GetCurrentCommit(GitVersion.Git.IBranch! currentBranch, string? commitId, GitVersion.Configuration.IIgnoreConfiguration! ignore) -> GitVersion.Git.ICommit? -GitVersion.Common.IRepositoryStore.GetForwardMerge(GitVersion.Git.ICommit? commitToFindCommonBase, GitVersion.Git.ICommit? findMergeBase) -> GitVersion.Git.ICommit? -GitVersion.Common.IRepositoryStore.GetSourceBranches(GitVersion.Git.IBranch! branch, GitVersion.Configuration.IGitVersionConfiguration! configuration, params GitVersion.Git.IBranch![]! excludedBranches) -> System.Collections.Generic.IEnumerable<GitVersion.Git.IBranch!>! -GitVersion.Common.IRepositoryStore.GetSourceBranches(GitVersion.Git.IBranch! branch, GitVersion.Configuration.IGitVersionConfiguration! configuration, System.Collections.Generic.IEnumerable<GitVersion.Git.IBranch!>! excludedBranches) -> System.Collections.Generic.IEnumerable<GitVersion.Git.IBranch!>! -GitVersion.Common.IRepositoryStore.GetTargetBranch(string? targetBranchName) -> GitVersion.Git.IBranch! -GitVersion.Common.IRepositoryStore.Head.get -> GitVersion.Git.IBranch! -GitVersion.Common.IRepositoryStore.IsCommitOnBranch(GitVersion.Git.ICommit? baseVersionSource, GitVersion.Git.IBranch! branch, GitVersion.Git.ICommit! firstMatchingCommit) -> bool -GitVersion.Common.IRepositoryStore.Tags.get -> GitVersion.Git.ITagCollection! -GitVersion.Common.IRepositoryStore.UncommittedChangesCount.get -> int +GitVersion.IRepositoryStore +GitVersion.IRepositoryStore.Branches.get -> GitVersion.Git.IBranchCollection! +GitVersion.IRepositoryStore.ExcludingBranches(System.Collections.Generic.IEnumerable<GitVersion.Git.IBranch!>! branchesToExclude) -> System.Collections.Generic.IEnumerable<GitVersion.Git.IBranch!>! +GitVersion.IRepositoryStore.FindBranch(GitVersion.Git.ReferenceName! branchName) -> GitVersion.Git.IBranch? +GitVersion.IRepositoryStore.FindCommitBranchesBranchedFrom(GitVersion.Git.IBranch! branch, GitVersion.Configuration.IGitVersionConfiguration! configuration, params GitVersion.Git.IBranch![]! excludedBranches) -> System.Collections.Generic.IEnumerable<GitVersion.Git.BranchCommit>! +GitVersion.IRepositoryStore.FindMergeBase(GitVersion.Git.IBranch? branch, GitVersion.Git.IBranch? otherBranch) -> GitVersion.Git.ICommit? +GitVersion.IRepositoryStore.FindMergeBase(GitVersion.Git.ICommit! commit, GitVersion.Git.ICommit! mainlineTip) -> GitVersion.Git.ICommit? +GitVersion.IRepositoryStore.GetBranchesContainingCommit(GitVersion.Git.ICommit! commit, System.Collections.Generic.IEnumerable<GitVersion.Git.IBranch!>? branches = null, bool onlyTrackedBranches = false) -> System.Collections.Generic.IEnumerable<GitVersion.Git.IBranch!>! +GitVersion.IRepositoryStore.GetCommitLog(GitVersion.Git.ICommit? baseVersionSource, GitVersion.Git.ICommit! currentCommit, GitVersion.Configuration.IIgnoreConfiguration! ignore) -> System.Collections.Generic.IReadOnlyList<GitVersion.Git.ICommit!>! +GitVersion.IRepositoryStore.GetCommitsReacheableFrom(GitVersion.Git.ICommit! commit, GitVersion.Git.IBranch! branch) -> System.Collections.Generic.IReadOnlyList<GitVersion.Git.ICommit!>! +GitVersion.IRepositoryStore.GetCommitsReacheableFromHead(GitVersion.Git.ICommit? headCommit, GitVersion.Configuration.IIgnoreConfiguration! ignore) -> System.Collections.Generic.IReadOnlyList<GitVersion.Git.ICommit!>! +GitVersion.IRepositoryStore.GetCurrentCommit(GitVersion.Git.IBranch! currentBranch, string? commitId, GitVersion.Configuration.IIgnoreConfiguration! ignore) -> GitVersion.Git.ICommit? +GitVersion.IRepositoryStore.GetForwardMerge(GitVersion.Git.ICommit? commitToFindCommonBase, GitVersion.Git.ICommit? findMergeBase) -> GitVersion.Git.ICommit? +GitVersion.IRepositoryStore.GetSourceBranches(GitVersion.Git.IBranch! branch, GitVersion.Configuration.IGitVersionConfiguration! configuration, params GitVersion.Git.IBranch![]! excludedBranches) -> System.Collections.Generic.IEnumerable<GitVersion.Git.IBranch!>! +GitVersion.IRepositoryStore.GetSourceBranches(GitVersion.Git.IBranch! branch, GitVersion.Configuration.IGitVersionConfiguration! configuration, System.Collections.Generic.IEnumerable<GitVersion.Git.IBranch!>! excludedBranches) -> System.Collections.Generic.IEnumerable<GitVersion.Git.IBranch!>! +GitVersion.IRepositoryStore.GetTargetBranch(string? targetBranchName) -> GitVersion.Git.IBranch! +GitVersion.IRepositoryStore.Head.get -> GitVersion.Git.IBranch! +GitVersion.IRepositoryStore.IsCommitOnBranch(GitVersion.Git.ICommit? baseVersionSource, GitVersion.Git.IBranch! branch, GitVersion.Git.ICommit! firstMatchingCommit) -> bool +GitVersion.IRepositoryStore.Tags.get -> GitVersion.Git.ITagCollection! +GitVersion.IRepositoryStore.UncommittedChangesCount.get -> int GitVersion.Configuration.AssemblyFileVersioningScheme GitVersion.Configuration.AssemblyFileVersioningScheme.Major = 3 -> GitVersion.Configuration.AssemblyFileVersioningScheme GitVersion.Configuration.AssemblyFileVersioningScheme.MajorMinor = 2 -> GitVersion.Configuration.AssemblyFileVersioningScheme @@ -83,7 +84,7 @@ GitVersion.Configuration.EffectiveConfiguration.PreventIncrementWhenBranchMerged GitVersion.Configuration.EffectiveConfiguration.PreventIncrementWhenCurrentCommitTagged.get -> bool GitVersion.Configuration.EffectiveConfiguration.RegularExpression.get -> string? GitVersion.Configuration.EffectiveConfiguration.SemanticVersionFormat.get -> GitVersion.SemanticVersionFormat -GitVersion.Configuration.EffectiveConfiguration.TagPrefix.get -> string? +GitVersion.Configuration.EffectiveConfiguration.TagPrefixPattern.get -> string? GitVersion.Configuration.EffectiveConfiguration.TagPreReleaseWeight.get -> int GitVersion.Configuration.EffectiveConfiguration.TrackMergeMessage.get -> bool GitVersion.Configuration.EffectiveConfiguration.TrackMergeTarget.get -> bool @@ -143,13 +144,16 @@ GitVersion.Configuration.IGitVersionConfiguration.Workflow.get -> string? GitVersion.Configuration.IIgnoreConfiguration GitVersion.Configuration.IIgnoreConfiguration.Before.get -> System.DateTimeOffset? GitVersion.Configuration.IIgnoreConfiguration.IsEmpty.get -> bool -GitVersion.Configuration.IIgnoreConfiguration.Paths.get -> System.Collections.Generic.IReadOnlyCollection<string!>! +GitVersion.Configuration.IIgnoreConfiguration.Paths.get -> System.Collections.Generic.IReadOnlySet<string!>! GitVersion.Configuration.IIgnoreConfiguration.Shas.get -> System.Collections.Generic.IReadOnlySet<string!>! GitVersion.Configuration.IPreventIncrementConfiguration GitVersion.Configuration.IPreventIncrementConfiguration.OfMergedBranch.get -> bool? GitVersion.Configuration.IPreventIncrementConfiguration.WhenBranchMerged.get -> bool? GitVersion.Configuration.IPreventIncrementConfiguration.WhenCurrentCommitTagged.get -> bool? GitVersion.Configuration.ReferenceNameExtensions +GitVersion.Configuration.ReferenceNameExtensions.extension(GitVersion.Git.ReferenceName!) +GitVersion.Configuration.ReferenceNameExtensions.extension(GitVersion.Git.ReferenceName!).TryGetSemanticVersion(GitVersion.Configuration.EffectiveConfiguration! configuration, out (GitVersion.SemanticVersion! Value, string? Name) result) -> bool +GitVersion.Configuration.ReferenceNameExtensions.extension(GitVersion.Git.ReferenceName!).TryGetSemanticVersion(GitVersion.Configuration.IGitVersionConfiguration! configuration, out (GitVersion.SemanticVersion! Value, string? Name) result) -> bool GitVersion.ConfigurationInfo GitVersion.ConfigurationInfo.ConfigurationFile -> string? GitVersion.ConfigurationInfo.ConfigurationInfo() -> void @@ -157,13 +161,28 @@ GitVersion.ConfigurationInfo.ConfigurationInfo(GitVersion.ConfigurationInfo! ori GitVersion.ConfigurationInfo.OverrideConfiguration -> System.Collections.Generic.IReadOnlyDictionary<object!, object?>? GitVersion.ConfigurationInfo.ShowConfiguration -> bool GitVersion.Extensions.AssemblyVersionsGeneratorExtensions +GitVersion.Extensions.AssemblyVersionsGeneratorExtensions.extension(GitVersion.SemanticVersion!) +GitVersion.Extensions.AssemblyVersionsGeneratorExtensions.extension(GitVersion.SemanticVersion!).GetAssemblyFileVersion(GitVersion.Configuration.AssemblyFileVersioningScheme scheme) -> string? +GitVersion.Extensions.AssemblyVersionsGeneratorExtensions.extension(GitVersion.SemanticVersion!).GetAssemblyVersion(GitVersion.Configuration.AssemblyVersioningScheme scheme) -> string? GitVersion.Extensions.CommonExtensions GitVersion.Extensions.EnumerableExtensions GitVersion.Extensions.FileSystemExtensions +GitVersion.Extensions.FileSystemExtensions.extension(System.IO.Abstractions.IFileSystem!) +GitVersion.Extensions.FileSystemExtensions.extension(System.IO.Abstractions.IFileSystem!).FindGitDir(string? path) -> (string! GitDirectory, string! WorkingTreeDirectory)? +GitVersion.Extensions.FileSystemExtensions.extension(System.IO.Abstractions.IFileSystem!).GetLastDirectoryWrite(string! path) -> long GitVersion.Extensions.GitExtensions GitVersion.Extensions.IncrementStrategyExtensions +GitVersion.Extensions.IncrementStrategyExtensions.extension(GitVersion.IncrementStrategy) +GitVersion.Extensions.IncrementStrategyExtensions.extension(GitVersion.IncrementStrategy).ToVersionField() -> GitVersion.VersionField GitVersion.Extensions.ReadEmbeddedResourceExtensions +GitVersion.Extensions.ReadEmbeddedResourceExtensions.extension(string!) +GitVersion.Extensions.ReadEmbeddedResourceExtensions.extension(string!).ReadAsStringFromEmbeddedResource(System.Reflection.Assembly! assembly) -> string! +GitVersion.Extensions.ReadEmbeddedResourceExtensions.extension(string!).ReadAsStringFromEmbeddedResource<T>() -> string! GitVersion.Extensions.ServiceCollectionExtensions +GitVersion.Extensions.ServiceCollectionExtensions.extension(Microsoft.Extensions.DependencyInjection.IServiceCollection!) +GitVersion.Extensions.ServiceCollectionExtensions.extension(Microsoft.Extensions.DependencyInjection.IServiceCollection!).AddModule(GitVersion.IGitVersionModule! gitVersionModule) -> Microsoft.Extensions.DependencyInjection.IServiceCollection! +GitVersion.Extensions.ServiceCollectionExtensions.extension(System.IServiceProvider!) +GitVersion.Extensions.ServiceCollectionExtensions.extension(System.IServiceProvider!).GetServiceForType<TService, TType>() -> TService GitVersion.Extensions.StringExtensions GitVersion.FileWriteInfo GitVersion.FileWriteInfo.<Clone>$() -> GitVersion.FileWriteInfo! @@ -191,7 +210,6 @@ GitVersion.Git.BranchCommit.BranchCommit() -> void GitVersion.Git.BranchCommit.BranchCommit(GitVersion.Git.ICommit! commit, GitVersion.Git.IBranch! branch) -> void GitVersion.Git.BranchCommit.Commit.get -> GitVersion.Git.ICommit! GitVersion.Git.BranchCommit.Equals(GitVersion.Git.BranchCommit? other) -> bool -GitVersion.Git.CommitExtensions GitVersion.Git.CommitFilter GitVersion.Git.CommitFilter.CommitFilter() -> void GitVersion.Git.CommitFilter.CommitFilter(GitVersion.Git.CommitFilter! original) -> void @@ -220,8 +238,11 @@ GitVersion.Git.IBranchCollection.this[string! name].get -> GitVersion.Git.IBranc GitVersion.Git.IBranchCollection.UpdateTrackedBranch(GitVersion.Git.IBranch! branch, string! remoteTrackingReferenceName) -> void GitVersion.Git.ICommit GitVersion.Git.ICommit.DiffPaths.get -> System.Collections.Generic.IReadOnlyList<string!>! +GitVersion.Git.ICommit.Id.get -> GitVersion.Git.IObjectId! +GitVersion.Git.ICommit.IsMergeCommit.get -> bool GitVersion.Git.ICommit.Message.get -> string! GitVersion.Git.ICommit.Parents.get -> System.Collections.Generic.IReadOnlyList<GitVersion.Git.ICommit!>! +GitVersion.Git.ICommit.Sha.get -> string! GitVersion.Git.ICommit.When.get -> System.DateTimeOffset GitVersion.Git.ICommitCollection GitVersion.Git.ICommitCollection.GetCommitsPriorTo(System.DateTimeOffset olderThan) -> System.Collections.Generic.IEnumerable<GitVersion.Git.ICommit!>! @@ -235,6 +256,7 @@ GitVersion.Git.IGitRepository.Head.get -> GitVersion.Git.IBranch! GitVersion.Git.IGitRepository.IsHeadDetached.get -> bool GitVersion.Git.IGitRepository.IsShallow.get -> bool GitVersion.Git.IGitRepository.Path.get -> string! +GitVersion.Git.IGitRepository.References.get -> GitVersion.Git.IReferenceCollection! GitVersion.Git.IGitRepository.Remotes.get -> GitVersion.Git.IRemoteCollection! GitVersion.Git.IGitRepository.Tags.get -> GitVersion.Git.ITagCollection! GitVersion.Git.IGitRepository.UncommittedChangesCount() -> int @@ -364,6 +386,7 @@ GitVersion.IGitPreparer.Prepare() -> void GitVersion.IGitVersionCalculateTool GitVersion.IGitVersionCalculateTool.CalculateVersionVariables() -> GitVersion.OutputVariables.GitVersionVariables! GitVersion.IGitVersionContextFactory +GitVersion.IGitVersionContextFactory.Create() -> GitVersion.GitVersionContext! GitVersion.IGitVersionModule GitVersion.IGitVersionModule.FindAllDerivedTypes<T>(System.Reflection.Assembly? assembly) -> System.Collections.Generic.IEnumerable<System.Type!>! GitVersion.IGitVersionModule.RegisterTypes(Microsoft.Extensions.DependencyInjection.IServiceCollection! services) -> void @@ -391,12 +414,38 @@ GitVersion.Logging.ILog.IndentLog(string! operationDescription) -> System.IDispo GitVersion.Logging.ILog.Separator() -> void GitVersion.Logging.ILog.Verbosity.get -> GitVersion.Logging.Verbosity GitVersion.Logging.ILog.Verbosity.set -> void -GitVersion.Logging.ILog.Write(GitVersion.Logging.Verbosity verbosity, GitVersion.Logging.LogLevel level, string! format, params object![]! args) -> void +GitVersion.Logging.ILog.Write(GitVersion.Logging.Verbosity verbosity, GitVersion.Logging.LogLevel level, string! format, params object?[]! args) -> void GitVersion.Logging.ILogAppender GitVersion.Logging.ILogAppender.WriteTo(GitVersion.Logging.LogLevel level, string! message) -> void GitVersion.Logging.LogAction GitVersion.Logging.LogActionEntry GitVersion.Logging.LogExtensions +GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!) +GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Debug(GitVersion.Logging.LogAction! logAction) -> void +GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Debug(GitVersion.Logging.Verbosity verbosity, GitVersion.Logging.LogAction! logAction) -> void +GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Debug(GitVersion.Logging.Verbosity verbosity, string! format, params object?[]! args) -> void +GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Debug(string! format, params object?[]! args) -> void +GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).DiagnosticVerbosity() -> System.IDisposable! +GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Error(GitVersion.Logging.LogAction! logAction) -> void +GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Error(GitVersion.Logging.Verbosity verbosity, GitVersion.Logging.LogAction! logAction) -> void +GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Error(GitVersion.Logging.Verbosity verbosity, string! format, params object?[]! args) -> void +GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Error(string! format, params object?[]! args) -> void +GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Info(GitVersion.Logging.LogAction! logAction) -> void +GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Info(GitVersion.Logging.Verbosity verbosity, GitVersion.Logging.LogAction! logAction) -> void +GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Info(GitVersion.Logging.Verbosity verbosity, string! format, params object?[]! args) -> void +GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Info(string! format, params object?[]! args) -> void +GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).MinimalVerbosity() -> System.IDisposable! +GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).NormalVerbosity() -> System.IDisposable! +GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).QuietVerbosity() -> System.IDisposable! +GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Verbose(GitVersion.Logging.LogAction! logAction) -> void +GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Verbose(GitVersion.Logging.Verbosity verbosity, GitVersion.Logging.LogAction! logAction) -> void +GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Verbose(GitVersion.Logging.Verbosity verbosity, string! format, params object?[]! args) -> void +GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Verbose(string! format, params object?[]! args) -> void +GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).VerboseVerbosity() -> System.IDisposable! +GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Warning(GitVersion.Logging.LogAction! logAction) -> void +GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Warning(GitVersion.Logging.Verbosity verbosity, GitVersion.Logging.LogAction! logAction) -> void +GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Warning(GitVersion.Logging.Verbosity verbosity, string! format, params object?[]! args) -> void +GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Warning(string! format, params object?[]! args) -> void GitVersion.Logging.LogLevel GitVersion.Logging.LogLevel.Debug = 5 -> GitVersion.Logging.LogLevel GitVersion.Logging.LogLevel.Error = 1 -> GitVersion.Logging.LogLevel @@ -436,7 +485,7 @@ GitVersion.OutputVariables.GitVersionVariables.CommitDate.get -> string? GitVersion.OutputVariables.GitVersionVariables.CommitDate.init -> void GitVersion.OutputVariables.GitVersionVariables.CommitsSinceVersionSource.get -> string? GitVersion.OutputVariables.GitVersionVariables.CommitsSinceVersionSource.init -> void -GitVersion.OutputVariables.GitVersionVariables.Deconstruct(out string! Major, out string! Minor, out string! Patch, out string? BuildMetaData, out string? FullBuildMetaData, out string? BranchName, out string? EscapedBranchName, out string? Sha, out string? ShortSha, out string! MajorMinorPatch, out string! SemVer, out string! FullSemVer, out string? AssemblySemVer, out string? AssemblySemFileVer, out string? PreReleaseTag, out string? PreReleaseTagWithDash, out string? PreReleaseLabel, out string? PreReleaseLabelWithDash, out string? PreReleaseNumber, out string! WeightedPreReleaseNumber, out string? InformationalVersion, out string? CommitDate, out string? VersionSourceSha, out string? CommitsSinceVersionSource, out string? UncommittedChanges) -> void +GitVersion.OutputVariables.GitVersionVariables.Deconstruct(out string? AssemblySemFileVer, out string? AssemblySemVer, out string? BranchName, out string? BuildMetaData, out string? CommitDate, out string? CommitsSinceVersionSource, out string? EscapedBranchName, out string? FullBuildMetaData, out string! FullSemVer, out string? InformationalVersion, out string! Major, out string! MajorMinorPatch, out string! Minor, out string! Patch, out string? PreReleaseLabel, out string? PreReleaseLabelWithDash, out string? PreReleaseNumber, out string? PreReleaseTag, out string? PreReleaseTagWithDash, out string! SemVer, out string? Sha, out string? ShortSha, out string? UncommittedChanges, out string? VersionSourceDistance, out string? VersionSourceIncrement, out string? VersionSourceSemVer, out string? VersionSourceSha, out string! WeightedPreReleaseNumber) -> void GitVersion.OutputVariables.GitVersionVariables.EscapedBranchName.get -> string? GitVersion.OutputVariables.GitVersionVariables.EscapedBranchName.init -> void GitVersion.OutputVariables.GitVersionVariables.FullBuildMetaData.get -> string? @@ -445,7 +494,7 @@ GitVersion.OutputVariables.GitVersionVariables.FullSemVer.get -> string! GitVersion.OutputVariables.GitVersionVariables.FullSemVer.init -> void GitVersion.OutputVariables.GitVersionVariables.GetEnumerator() -> System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<string!, string?>>! GitVersion.OutputVariables.GitVersionVariables.GitVersionVariables(GitVersion.OutputVariables.GitVersionVariables! original) -> void -GitVersion.OutputVariables.GitVersionVariables.GitVersionVariables(string! Major, string! Minor, string! Patch, string? BuildMetaData, string? FullBuildMetaData, string? BranchName, string? EscapedBranchName, string? Sha, string? ShortSha, string! MajorMinorPatch, string! SemVer, string! FullSemVer, string? AssemblySemVer, string? AssemblySemFileVer, string? PreReleaseTag, string? PreReleaseTagWithDash, string? PreReleaseLabel, string? PreReleaseLabelWithDash, string? PreReleaseNumber, string! WeightedPreReleaseNumber, string? InformationalVersion, string? CommitDate, string? VersionSourceSha, string? CommitsSinceVersionSource, string? UncommittedChanges) -> void +GitVersion.OutputVariables.GitVersionVariables.GitVersionVariables(string? AssemblySemFileVer, string? AssemblySemVer, string? BranchName, string? BuildMetaData, string? CommitDate, string? CommitsSinceVersionSource, string? EscapedBranchName, string? FullBuildMetaData, string! FullSemVer, string? InformationalVersion, string! Major, string! MajorMinorPatch, string! Minor, string! Patch, string? PreReleaseLabel, string? PreReleaseLabelWithDash, string? PreReleaseNumber, string? PreReleaseTag, string? PreReleaseTagWithDash, string! SemVer, string? Sha, string? ShortSha, string? UncommittedChanges, string? VersionSourceDistance, string? VersionSourceIncrement, string? VersionSourceSemVer, string? VersionSourceSha, string! WeightedPreReleaseNumber) -> void GitVersion.OutputVariables.GitVersionVariables.InformationalVersion.get -> string? GitVersion.OutputVariables.GitVersionVariables.InformationalVersion.init -> void GitVersion.OutputVariables.GitVersionVariables.Major.get -> string! @@ -475,6 +524,12 @@ GitVersion.OutputVariables.GitVersionVariables.ShortSha.init -> void GitVersion.OutputVariables.GitVersionVariables.TryGetValue(string! variable, out string? variableValue) -> bool GitVersion.OutputVariables.GitVersionVariables.UncommittedChanges.get -> string? GitVersion.OutputVariables.GitVersionVariables.UncommittedChanges.init -> void +GitVersion.OutputVariables.GitVersionVariables.VersionSourceDistance.get -> string? +GitVersion.OutputVariables.GitVersionVariables.VersionSourceDistance.init -> void +GitVersion.OutputVariables.GitVersionVariables.VersionSourceIncrement.get -> string? +GitVersion.OutputVariables.GitVersionVariables.VersionSourceIncrement.init -> void +GitVersion.OutputVariables.GitVersionVariables.VersionSourceSemVer.get -> string? +GitVersion.OutputVariables.GitVersionVariables.VersionSourceSemVer.init -> void GitVersion.OutputVariables.GitVersionVariables.VersionSourceSha.get -> string? GitVersion.OutputVariables.GitVersionVariables.VersionSourceSha.init -> void GitVersion.OutputVariables.GitVersionVariables.WeightedPreReleaseNumber.get -> string! @@ -533,13 +588,12 @@ GitVersion.SemanticVersionBuildMetaData.CommitDate.init -> void GitVersion.SemanticVersionBuildMetaData.CommitsSinceTag.get -> long? GitVersion.SemanticVersionBuildMetaData.CommitsSinceTag.init -> void GitVersion.SemanticVersionBuildMetaData.CommitsSinceVersionSource.get -> long -GitVersion.SemanticVersionBuildMetaData.CommitsSinceVersionSource.init -> void GitVersion.SemanticVersionBuildMetaData.Equals(GitVersion.SemanticVersionBuildMetaData? other) -> bool GitVersion.SemanticVersionBuildMetaData.OtherMetaData.get -> string? GitVersion.SemanticVersionBuildMetaData.OtherMetaData.init -> void GitVersion.SemanticVersionBuildMetaData.SemanticVersionBuildMetaData() -> void +GitVersion.SemanticVersionBuildMetaData.SemanticVersionBuildMetaData(GitVersion.SemanticVersion? versionSourceSemVer, string? versionSourceSha, long? commitsSinceTag, string? branch, string? commitSha, string? commitShortSha, System.DateTimeOffset? commitDate, long numberOfUnCommittedChanges, GitVersion.VersionField versionSourceIncrement, string? otherMetadata = null) -> void GitVersion.SemanticVersionBuildMetaData.SemanticVersionBuildMetaData(GitVersion.SemanticVersionBuildMetaData! buildMetaData) -> void -GitVersion.SemanticVersionBuildMetaData.SemanticVersionBuildMetaData(string? versionSourceSha, long? commitsSinceTag, string? branch, string? commitSha, string? commitShortSha, System.DateTimeOffset? commitDate, long numberOfUnCommittedChanges, string? otherMetadata = null) -> void GitVersion.SemanticVersionBuildMetaData.Sha.get -> string? GitVersion.SemanticVersionBuildMetaData.Sha.init -> void GitVersion.SemanticVersionBuildMetaData.ShortSha.get -> string? @@ -548,6 +602,12 @@ GitVersion.SemanticVersionBuildMetaData.ToString(string! format) -> string! GitVersion.SemanticVersionBuildMetaData.ToString(string? format, System.IFormatProvider? formatProvider) -> string! GitVersion.SemanticVersionBuildMetaData.UncommittedChanges.get -> long GitVersion.SemanticVersionBuildMetaData.UncommittedChanges.init -> void +GitVersion.SemanticVersionBuildMetaData.VersionSourceDistance.get -> long +GitVersion.SemanticVersionBuildMetaData.VersionSourceDistance.init -> void +GitVersion.SemanticVersionBuildMetaData.VersionSourceIncrement.get -> GitVersion.VersionField +GitVersion.SemanticVersionBuildMetaData.VersionSourceIncrement.init -> void +GitVersion.SemanticVersionBuildMetaData.VersionSourceSemVer.get -> GitVersion.SemanticVersion? +GitVersion.SemanticVersionBuildMetaData.VersionSourceSemVer.init -> void GitVersion.SemanticVersionBuildMetaData.VersionSourceSha.get -> string? GitVersion.SemanticVersionBuildMetaData.VersionSourceSha.init -> void GitVersion.SemanticVersionFormat @@ -578,6 +638,9 @@ GitVersion.SemanticVersionFormatValues.SemVer.get -> string! GitVersion.SemanticVersionFormatValues.Sha.get -> string? GitVersion.SemanticVersionFormatValues.ShortSha.get -> string? GitVersion.SemanticVersionFormatValues.UncommittedChanges.get -> string! +GitVersion.SemanticVersionFormatValues.VersionSourceDistance.get -> string! +GitVersion.SemanticVersionFormatValues.VersionSourceIncrement.get -> string! +GitVersion.SemanticVersionFormatValues.VersionSourceSemVer.get -> string? GitVersion.SemanticVersionFormatValues.VersionSourceSha.get -> string? GitVersion.SemanticVersionFormatValues.WeightedPreReleaseNumber.get -> string! GitVersion.SemanticVersionPreReleaseTag @@ -622,6 +685,7 @@ GitVersion.VersionCalculation.BaseVersion.BaseVersionSource.get -> GitVersion.Gi GitVersion.VersionCalculation.BaseVersion.Deconstruct(out GitVersion.VersionCalculation.BaseVersionOperand! Operand) -> void GitVersion.VersionCalculation.BaseVersion.Equals(GitVersion.VersionCalculation.BaseVersion? other) -> bool GitVersion.VersionCalculation.BaseVersion.GetIncrementedVersion() -> GitVersion.SemanticVersion! +GitVersion.VersionCalculation.BaseVersion.Increment.get -> GitVersion.VersionField GitVersion.VersionCalculation.BaseVersion.Operand.get -> GitVersion.VersionCalculation.BaseVersionOperand! GitVersion.VersionCalculation.BaseVersion.Operand.init -> void GitVersion.VersionCalculation.BaseVersion.Operator.get -> GitVersion.VersionCalculation.BaseVersionOperator? @@ -675,12 +739,13 @@ GitVersion.VersionCalculation.DeploymentMode.ContinuousDelivery = 1 -> GitVersio GitVersion.VersionCalculation.DeploymentMode.ContinuousDeployment = 2 -> GitVersion.VersionCalculation.DeploymentMode GitVersion.VersionCalculation.DeploymentMode.ManualDeployment = 0 -> GitVersion.VersionCalculation.DeploymentMode GitVersion.VersionCalculation.IBaseVersion +GitVersion.VersionCalculation.IBaseVersion.Increment.get -> GitVersion.VersionField GitVersion.VersionCalculation.IBaseVersion.SemanticVersion.get -> GitVersion.SemanticVersion! GitVersion.VersionCalculation.IBaseVersionIncrement GitVersion.VersionCalculation.IBaseVersionIncrement.BaseVersionSource.get -> GitVersion.Git.ICommit? GitVersion.VersionCalculation.IBaseVersionIncrement.Source.get -> string! GitVersion.VersionCalculation.IDeploymentModeCalculator -GitVersion.VersionCalculation.IDeploymentModeCalculator.Calculate(GitVersion.SemanticVersion! semanticVersion, GitVersion.Git.ICommit? baseVersionSource) -> GitVersion.SemanticVersion! +GitVersion.VersionCalculation.IDeploymentModeCalculator.Calculate(GitVersion.SemanticVersion! semanticVersion, GitVersion.VersionCalculation.IBaseVersion! baseVersion) -> GitVersion.SemanticVersion! GitVersion.VersionCalculation.IEffectiveBranchConfigurationFinder GitVersion.VersionCalculation.IEffectiveBranchConfigurationFinder.GetConfigurations(GitVersion.Git.IBranch! branch, GitVersion.Configuration.IGitVersionConfiguration! configuration) -> System.Collections.Generic.IEnumerable<GitVersion.Configuration.EffectiveBranchConfiguration!>! GitVersion.VersionCalculation.IIncrementStrategyFinder @@ -799,8 +864,8 @@ static GitVersion.Configuration.EffectiveBranchConfiguration.operator !=(GitVers static GitVersion.Configuration.EffectiveBranchConfiguration.operator ==(GitVersion.Configuration.EffectiveBranchConfiguration? left, GitVersion.Configuration.EffectiveBranchConfiguration? right) -> bool static GitVersion.Configuration.EffectiveConfiguration.operator !=(GitVersion.Configuration.EffectiveConfiguration? left, GitVersion.Configuration.EffectiveConfiguration? right) -> bool static GitVersion.Configuration.EffectiveConfiguration.operator ==(GitVersion.Configuration.EffectiveConfiguration? left, GitVersion.Configuration.EffectiveConfiguration? right) -> bool -static GitVersion.Configuration.ReferenceNameExtensions.TryGetSemanticVersion(this GitVersion.Git.ReferenceName! source, out (GitVersion.SemanticVersion! Value, string? Name) result, GitVersion.Configuration.EffectiveConfiguration! configuration) -> bool -static GitVersion.Configuration.ReferenceNameExtensions.TryGetSemanticVersion(this GitVersion.Git.ReferenceName! source, out (GitVersion.SemanticVersion! Value, string? Name) result, GitVersion.Configuration.IGitVersionConfiguration! configuration) -> bool +static GitVersion.Configuration.ReferenceNameExtensions.TryGetSemanticVersion(this GitVersion.Git.ReferenceName! source, GitVersion.Configuration.EffectiveConfiguration! configuration, out (GitVersion.SemanticVersion! Value, string? Name) result) -> bool +static GitVersion.Configuration.ReferenceNameExtensions.TryGetSemanticVersion(this GitVersion.Git.ReferenceName! source, GitVersion.Configuration.IGitVersionConfiguration! configuration, out (GitVersion.SemanticVersion! Value, string? Name) result) -> bool static GitVersion.ConfigurationInfo.operator !=(GitVersion.ConfigurationInfo? left, GitVersion.ConfigurationInfo? right) -> bool static GitVersion.ConfigurationInfo.operator ==(GitVersion.ConfigurationInfo? left, GitVersion.ConfigurationInfo? right) -> bool static GitVersion.Extensions.AssemblyVersionsGeneratorExtensions.GetAssemblyFileVersion(this GitVersion.SemanticVersion! sv, GitVersion.Configuration.AssemblyFileVersioningScheme scheme) -> string? @@ -811,6 +876,7 @@ static GitVersion.Extensions.CommonExtensions.NotNullOrWhitespace(this string? v static GitVersion.Extensions.EnumerableExtensions.AddRange<T>(this System.Collections.Generic.ICollection<T>! source, System.Collections.Generic.IEnumerable<T>! items) -> void static GitVersion.Extensions.EnumerableExtensions.OnlyOrDefault<T>(this System.Collections.Generic.IEnumerable<T>! source) -> T? static GitVersion.Extensions.EnumerableExtensions.SingleOfType<T>(this System.Collections.IEnumerable! source) -> T +static GitVersion.Extensions.FileSystemExtensions.FindGitDir(this System.IO.Abstractions.IFileSystem! fileSystem, string? path) -> (string! GitDirectory, string! WorkingTreeDirectory)? static GitVersion.Extensions.FileSystemExtensions.GetLastDirectoryWrite(this System.IO.Abstractions.IFileSystem! fileSystem, string! path) -> long static GitVersion.Extensions.GitExtensions.CreateGitLogArgs(int? maxCommits) -> string! static GitVersion.Extensions.GitExtensions.DumpGraphLog(System.Action<string!>? writer = null, int? maxCommits = null) -> void @@ -832,7 +898,6 @@ static GitVersion.Git.AuthenticationInfo.operator !=(GitVersion.Git.Authenticati static GitVersion.Git.AuthenticationInfo.operator ==(GitVersion.Git.AuthenticationInfo? left, GitVersion.Git.AuthenticationInfo? right) -> bool static GitVersion.Git.BranchCommit.operator !=(GitVersion.Git.BranchCommit left, GitVersion.Git.BranchCommit right) -> bool static GitVersion.Git.BranchCommit.operator ==(GitVersion.Git.BranchCommit left, GitVersion.Git.BranchCommit right) -> bool -static GitVersion.Git.CommitExtensions.IsMergeCommit(this GitVersion.Git.ICommit! source) -> bool static GitVersion.Git.CommitFilter.operator !=(GitVersion.Git.CommitFilter? left, GitVersion.Git.CommitFilter? right) -> bool static GitVersion.Git.CommitFilter.operator ==(GitVersion.Git.CommitFilter? left, GitVersion.Git.CommitFilter? right) -> bool static GitVersion.Git.ReferenceName.FromBranchName(string! branchName) -> GitVersion.Git.ReferenceName! @@ -844,29 +909,29 @@ static GitVersion.Helpers.Disposable.Create<T>(T value, System.Action! disposer) static GitVersion.Helpers.ServiceMessageEscapeHelper.EscapeValue(string? value) -> string? static GitVersion.Logging.LogExtensions.Debug(this GitVersion.Logging.ILog! log, GitVersion.Logging.LogAction! logAction) -> void static GitVersion.Logging.LogExtensions.Debug(this GitVersion.Logging.ILog! log, GitVersion.Logging.Verbosity verbosity, GitVersion.Logging.LogAction! logAction) -> void -static GitVersion.Logging.LogExtensions.Debug(this GitVersion.Logging.ILog! log, GitVersion.Logging.Verbosity verbosity, string! format, params object![]! args) -> void -static GitVersion.Logging.LogExtensions.Debug(this GitVersion.Logging.ILog! log, string! format, params object![]! args) -> void +static GitVersion.Logging.LogExtensions.Debug(this GitVersion.Logging.ILog! log, GitVersion.Logging.Verbosity verbosity, string! format, params object?[]! args) -> void +static GitVersion.Logging.LogExtensions.Debug(this GitVersion.Logging.ILog! log, string! format, params object?[]! args) -> void static GitVersion.Logging.LogExtensions.DiagnosticVerbosity(this GitVersion.Logging.ILog! log) -> System.IDisposable! static GitVersion.Logging.LogExtensions.Error(this GitVersion.Logging.ILog! log, GitVersion.Logging.LogAction! logAction) -> void static GitVersion.Logging.LogExtensions.Error(this GitVersion.Logging.ILog! log, GitVersion.Logging.Verbosity verbosity, GitVersion.Logging.LogAction! logAction) -> void -static GitVersion.Logging.LogExtensions.Error(this GitVersion.Logging.ILog! log, GitVersion.Logging.Verbosity verbosity, string! format, params object![]! args) -> void -static GitVersion.Logging.LogExtensions.Error(this GitVersion.Logging.ILog! log, string! format, params object![]! args) -> void +static GitVersion.Logging.LogExtensions.Error(this GitVersion.Logging.ILog! log, GitVersion.Logging.Verbosity verbosity, string! format, params object?[]! args) -> void +static GitVersion.Logging.LogExtensions.Error(this GitVersion.Logging.ILog! log, string! format, params object?[]! args) -> void static GitVersion.Logging.LogExtensions.Info(this GitVersion.Logging.ILog! log, GitVersion.Logging.LogAction! logAction) -> void static GitVersion.Logging.LogExtensions.Info(this GitVersion.Logging.ILog! log, GitVersion.Logging.Verbosity verbosity, GitVersion.Logging.LogAction! logAction) -> void -static GitVersion.Logging.LogExtensions.Info(this GitVersion.Logging.ILog! log, GitVersion.Logging.Verbosity verbosity, string! format, params object![]! args) -> void -static GitVersion.Logging.LogExtensions.Info(this GitVersion.Logging.ILog! log, string! format, params object![]! args) -> void +static GitVersion.Logging.LogExtensions.Info(this GitVersion.Logging.ILog! log, GitVersion.Logging.Verbosity verbosity, string! format, params object?[]! args) -> void +static GitVersion.Logging.LogExtensions.Info(this GitVersion.Logging.ILog! log, string! format, params object?[]! args) -> void static GitVersion.Logging.LogExtensions.MinimalVerbosity(this GitVersion.Logging.ILog! log) -> System.IDisposable! static GitVersion.Logging.LogExtensions.NormalVerbosity(this GitVersion.Logging.ILog! log) -> System.IDisposable! static GitVersion.Logging.LogExtensions.QuietVerbosity(this GitVersion.Logging.ILog! log) -> System.IDisposable! static GitVersion.Logging.LogExtensions.Verbose(this GitVersion.Logging.ILog! log, GitVersion.Logging.LogAction! logAction) -> void static GitVersion.Logging.LogExtensions.Verbose(this GitVersion.Logging.ILog! log, GitVersion.Logging.Verbosity verbosity, GitVersion.Logging.LogAction! logAction) -> void -static GitVersion.Logging.LogExtensions.Verbose(this GitVersion.Logging.ILog! log, GitVersion.Logging.Verbosity verbosity, string! format, params object![]! args) -> void -static GitVersion.Logging.LogExtensions.Verbose(this GitVersion.Logging.ILog! log, string! format, params object![]! args) -> void +static GitVersion.Logging.LogExtensions.Verbose(this GitVersion.Logging.ILog! log, GitVersion.Logging.Verbosity verbosity, string! format, params object?[]! args) -> void +static GitVersion.Logging.LogExtensions.Verbose(this GitVersion.Logging.ILog! log, string! format, params object?[]! args) -> void static GitVersion.Logging.LogExtensions.VerboseVerbosity(this GitVersion.Logging.ILog! log) -> System.IDisposable! static GitVersion.Logging.LogExtensions.Warning(this GitVersion.Logging.ILog! log, GitVersion.Logging.LogAction! logAction) -> void static GitVersion.Logging.LogExtensions.Warning(this GitVersion.Logging.ILog! log, GitVersion.Logging.Verbosity verbosity, GitVersion.Logging.LogAction! logAction) -> void -static GitVersion.Logging.LogExtensions.Warning(this GitVersion.Logging.ILog! log, GitVersion.Logging.Verbosity verbosity, string! format, params object![]! args) -> void -static GitVersion.Logging.LogExtensions.Warning(this GitVersion.Logging.ILog! log, string! format, params object![]! args) -> void +static GitVersion.Logging.LogExtensions.Warning(this GitVersion.Logging.ILog! log, GitVersion.Logging.Verbosity verbosity, string! format, params object?[]! args) -> void +static GitVersion.Logging.LogExtensions.Warning(this GitVersion.Logging.ILog! log, string! format, params object?[]! args) -> void static GitVersion.MergeMessage.TryParse(GitVersion.Git.ICommit! mergeCommit, GitVersion.Configuration.IGitVersionConfiguration! configuration, out GitVersion.MergeMessage? mergeMessage) -> bool static GitVersion.OutputVariables.GitVersionVariables.operator !=(GitVersion.OutputVariables.GitVersionVariables? left, GitVersion.OutputVariables.GitVersionVariables? right) -> bool static GitVersion.OutputVariables.GitVersionVariables.operator ==(GitVersion.OutputVariables.GitVersionVariables? left, GitVersion.OutputVariables.GitVersionVariables? right) -> bool diff --git a/src/GitVersion.Core/PublicAPI.Unshipped.txt b/src/GitVersion.Core/PublicAPI.Unshipped.txt index 6d147e0548..7dc5c58110 100644 --- a/src/GitVersion.Core/PublicAPI.Unshipped.txt +++ b/src/GitVersion.Core/PublicAPI.Unshipped.txt @@ -1,6 +1 @@ #nullable enable -GitVersion.Common.IRepositoryStore.GetCommitsReacheableFrom(GitVersion.Git.ICommit! commit, GitVersion.Git.IBranch! branch) -> System.Collections.Generic.IReadOnlyList<GitVersion.Git.ICommit!>! -GitVersion.Git.ICommit.Id.get -> GitVersion.Git.IObjectId! -GitVersion.Git.ICommit.Sha.get -> string! -GitVersion.Git.IGitRepository.References.get -> GitVersion.Git.IReferenceCollection! -GitVersion.IGitVersionContextFactory.Create() -> GitVersion.GitVersionContext! diff --git a/src/GitVersion.Core/SemVer/SemanticVersion.cs b/src/GitVersion.Core/SemVer/SemanticVersion.cs index eb421e36c7..0d93afa4ba 100644 --- a/src/GitVersion.Core/SemVer/SemanticVersion.cs +++ b/src/GitVersion.Core/SemVer/SemanticVersion.cs @@ -1,67 +1,81 @@ using System.Diagnostics.CodeAnalysis; using System.Globalization; -using GitVersion.Core; using GitVersion.Extensions; namespace GitVersion; +/// <summary>Represents a semantic version with optional pre-release tag and build metadata.</summary> public class SemanticVersion : IFormattable, IComparable<SemanticVersion>, IEquatable<SemanticVersion?> { + /// <summary>A zero-valued semantic version with no pre-release tag or build metadata.</summary> public static readonly SemanticVersion Empty = new(); + /// <summary>Gets or initializes the major version component.</summary> public long Major { get; init; } + /// <summary>Gets or initializes the minor version component.</summary> public long Minor { get; init; } + /// <summary>Gets or initializes the patch version component.</summary> public long Patch { get; init; } + /// <summary>Gets a value indicating whether this version has a pre-release tag.</summary> public bool IsPreRelease => PreReleaseTag.HasTag(); + /// <summary>Gets or initializes the pre-release tag.</summary> public SemanticVersionPreReleaseTag PreReleaseTag { get; init; } + /// <summary>Gets or initializes the build metadata associated with this version.</summary> public SemanticVersionBuildMetaData BuildMetaData { get; init; } + /// <summary>Returns <see langword="true"/> when the pre-release tag name equals <paramref name="value"/> (case-insensitive).</summary> public bool IsLabeledWith(string value) => PreReleaseTag.HasTag() && PreReleaseTag.Name.IsEquivalentTo(value); + /// <summary>Returns <see langword="true"/> when this version is compatible with a branch-specific label check: no tag set, no label supplied, or the label matches.</summary> public bool IsMatchForBranchSpecificLabel(string? value) => (PreReleaseTag.Name.Length == 0 && PreReleaseTag.Number is null) || value is null || IsLabeledWith(value); + /// <summary>Initializes a new semantic version with the given major, minor, and patch values.</summary> public SemanticVersion(long major = 0, long minor = 0, long patch = 0) { - this.Major = major; - this.Minor = minor; - this.Patch = patch; - this.PreReleaseTag = SemanticVersionPreReleaseTag.Empty; - this.BuildMetaData = SemanticVersionBuildMetaData.Empty; + Major = major; + Minor = minor; + Patch = patch; + PreReleaseTag = SemanticVersionPreReleaseTag.Empty; + BuildMetaData = SemanticVersionBuildMetaData.Empty; } + /// <summary>Initializes a new semantic version as a copy of <paramref name="semanticVersion"/>.</summary> public SemanticVersion(SemanticVersion semanticVersion) { semanticVersion.NotNull(); - this.Major = semanticVersion.Major; - this.Minor = semanticVersion.Minor; - this.Patch = semanticVersion.Patch; + Major = semanticVersion.Major; + Minor = semanticVersion.Minor; + Patch = semanticVersion.Patch; - this.PreReleaseTag = semanticVersion.PreReleaseTag; - this.BuildMetaData = semanticVersion.BuildMetaData; + PreReleaseTag = semanticVersion.PreReleaseTag; + BuildMetaData = semanticVersion.BuildMetaData; } + /// <summary>Returns <see langword="true"/> when this version is equal to <paramref name="obj"/>.</summary> public bool Equals(SemanticVersion? obj) { if (obj == null) { return false; } - return this.Major == obj.Major - && this.Minor == obj.Minor - && this.Patch == obj.Patch - && this.PreReleaseTag == obj.PreReleaseTag - && this.BuildMetaData == obj.BuildMetaData; + return Major == obj.Major + && Minor == obj.Minor + && Patch == obj.Patch + && PreReleaseTag == obj.PreReleaseTag + && BuildMetaData == obj.BuildMetaData; } + /// <summary>Returns <see langword="true"/> when this instance equals <see cref="Empty"/>.</summary> public bool IsEmpty() => Equals(Empty); + /// <summary>Returns <see langword="true"/> when <paramref name="obj"/> is a <see cref="SemanticVersion"/> equal to this instance.</summary> public override bool Equals(object? obj) { if (obj is null) @@ -75,8 +89,10 @@ public override bool Equals(object? obj) return obj.GetType() == GetType() && Equals((SemanticVersion)obj); } + /// <summary>Returns a hash code combining all version components.</summary> public override int GetHashCode() => HashCode.Combine(Major, Minor, Patch, PreReleaseTag, BuildMetaData); + /// <summary>Returns <see langword="true"/> when <paramref name="v1"/> and <paramref name="v2"/> are equal.</summary> public static bool operator ==(SemanticVersion? v1, SemanticVersion? v2) { if (v1 is null) @@ -86,8 +102,10 @@ public override bool Equals(object? obj) return v1.Equals(v2); } + /// <summary>Returns <see langword="true"/> when <paramref name="v1"/> and <paramref name="v2"/> are not equal.</summary> public static bool operator !=(SemanticVersion? v1, SemanticVersion? v2) => !(v1 == v2); + /// <summary>Returns <see langword="true"/> when <paramref name="v1"/> is greater than <paramref name="v2"/>.</summary> public static bool operator >(SemanticVersion v1, SemanticVersion v2) { ArgumentNullException.ThrowIfNull(v1); @@ -96,6 +114,7 @@ public override bool Equals(object? obj) return v1.CompareTo(v2) > 0; } + /// <summary>Returns <see langword="true"/> when <paramref name="v1"/> is greater than or equal to <paramref name="v2"/>.</summary> public static bool operator >=(SemanticVersion v1, SemanticVersion v2) { ArgumentNullException.ThrowIfNull(v1); @@ -104,6 +123,7 @@ public override bool Equals(object? obj) return v1.CompareTo(v2) >= 0; } + /// <summary>Returns <see langword="true"/> when <paramref name="v1"/> is less than or equal to <paramref name="v2"/>.</summary> public static bool operator <=(SemanticVersion v1, SemanticVersion v2) { ArgumentNullException.ThrowIfNull(v1); @@ -112,6 +132,7 @@ public override bool Equals(object? obj) return v1.CompareTo(v2) <= 0; } + /// <summary>Returns <see langword="true"/> when <paramref name="v1"/> is less than <paramref name="v2"/>.</summary> public static bool operator <(SemanticVersion v1, SemanticVersion v2) { ArgumentNullException.ThrowIfNull(v1); @@ -120,6 +141,7 @@ public override bool Equals(object? obj) return v1.CompareTo(v2) < 0; } + /// <summary>Parses <paramref name="version"/> as a semantic version, throwing when the input cannot be parsed.</summary> public static SemanticVersion Parse( string version, string? tagPrefixRegex, SemanticVersionFormat versionFormat = SemanticVersionFormat.Strict) { @@ -129,6 +151,7 @@ public static SemanticVersion Parse( return semanticVersion; } + /// <summary>Attempts to parse <paramref name="version"/> as a semantic version, returning <see langword="true"/> on success.</summary> public static bool TryParse(string version, string? tagPrefixRegex, [NotNullWhen(true)] out SemanticVersion? semanticVersion, SemanticVersionFormat format = SemanticVersionFormat.Strict) { @@ -149,7 +172,7 @@ public static bool TryParse(string version, string? tagPrefixRegex, private static bool TryParseStrict(string version, [NotNullWhen(true)] out SemanticVersion? semanticVersion) { - var parsed = RegexPatterns.SemanticVersion.ParseStrictRegex().Match(version); + var parsed = RegexPatterns.SemanticVersion.ParseStrictRegex.Match(version); if (!parsed.Success) { @@ -171,7 +194,7 @@ private static bool TryParseStrict(string version, [NotNullWhen(true)] out Seman private static bool TryParseLoose(string version, [NotNullWhen(true)] out SemanticVersion? semanticVersion) { - var parsed = RegexPatterns.SemanticVersion.ParseLooseRegex().Match(version); + var parsed = RegexPatterns.SemanticVersion.ParseLooseRegex.Match(version); if (!parsed.Success) { @@ -201,64 +224,73 @@ private static bool TryParseLoose(string version, [NotNullWhen(true)] out Semant return true; } + /// <summary>Returns <see langword="true"/> when this version is greater than <paramref name="value"/>.</summary> public bool IsGreaterThan(SemanticVersion? value, bool includePreRelease = true) => CompareTo(value, includePreRelease) > 0; + /// <summary>Returns <see langword="true"/> when this version is greater than or equal to <paramref name="value"/>.</summary> public bool IsGreaterThanOrEqualTo(SemanticVersion? value, bool includePreRelease = true) => CompareTo(value, includePreRelease) >= 0; + /// <summary>Returns <see langword="true"/> when this version is less than <paramref name="value"/>.</summary> public bool IsLessThan(SemanticVersion? value, bool includePreRelease = true) => CompareTo(value, includePreRelease) < 0; + /// <summary>Returns <see langword="true"/> when this version is less than or equal to <paramref name="value"/>.</summary> public bool IsLessThanOrEqualTo(SemanticVersion? value, bool includePreRelease = true) => CompareTo(value, includePreRelease) <= 0; + /// <summary>Returns <see langword="true"/> when this version is equal to <paramref name="value"/>.</summary> public bool IsEqualTo(SemanticVersion? value, bool includePreRelease = true) => CompareTo(value, includePreRelease) == 0; + /// <summary>Compares this version to <paramref name="value"/>, including the pre-release tag in the comparison.</summary> public int CompareTo(SemanticVersion? value) => CompareTo(value, includePreRelease: true); + /// <summary>Compares this version to <paramref name="value"/>, optionally excluding the pre-release tag from the comparison.</summary> public int CompareTo(SemanticVersion? value, bool includePreRelease) { if (value == null) { return 1; } - if (this.Major != value.Major) + if (Major != value.Major) { - if (this.Major > value.Major) + if (Major > value.Major) { return 1; } return -1; } - if (this.Minor != value.Minor) + if (Minor != value.Minor) { - if (this.Minor > value.Minor) + if (Minor > value.Minor) { return 1; } return -1; } - if (this.Patch != value.Patch) + if (Patch != value.Patch) { - if (this.Patch > value.Patch) + if (Patch > value.Patch) { return 1; } return -1; } - if (!includePreRelease || this.PreReleaseTag == value.PreReleaseTag) return 0; - if (this.PreReleaseTag > value.PreReleaseTag) + if (!includePreRelease || PreReleaseTag == value.PreReleaseTag) return 0; + if (PreReleaseTag > value.PreReleaseTag) { return 1; } return -1; } + /// <summary>Returns the default semantic version string (without build metadata).</summary> public override string ToString() => ToString("s"); + /// <summary>Returns a string representation of this version using the given format specifier.</summary> public string ToString(string format) => ToString(format, CultureInfo.CurrentCulture); /// <summary> @@ -281,20 +313,20 @@ public string ToString(string? format, IFormatProvider? formatProvider) switch (format) { case "j": - return $"{this.Major}.{this.Minor}.{this.Patch}"; + return $"{Major}.{Minor}.{Patch}"; case "s": - return this.PreReleaseTag.HasTag() ? $"{ToString("j")}-{this.PreReleaseTag}" : ToString("j"); + return PreReleaseTag.HasTag() ? $"{ToString("j")}-{PreReleaseTag}" : ToString("j"); case "t": - return this.PreReleaseTag.HasTag() ? $"{ToString("j")}-{this.PreReleaseTag:t}" : ToString("j"); + return PreReleaseTag.HasTag() ? $"{ToString("j")}-{PreReleaseTag:t}" : ToString("j"); case "f": { - var buildMetadata = this.BuildMetaData.ToString(); + var buildMetadata = BuildMetaData.ToString(); return !buildMetadata.IsNullOrEmpty() ? $"{ToString("s")}+{buildMetadata}" : ToString("s"); } case "i": { - var buildMetadata = this.BuildMetaData.ToString("f"); + var buildMetadata = BuildMetaData.ToString("f"); return !buildMetadata.IsNullOrEmpty() ? $"{ToString("s")}+{buildMetadata}" : ToString("s"); } @@ -303,16 +335,20 @@ public string ToString(string? format, IFormatProvider? formatProvider) } } + /// <summary>Returns a new version derived from this one with the pre-release tag changed to <paramref name="label"/>.</summary> public SemanticVersion WithLabel(string? label) => Increment(VersionField.None, label, mode: IncrementMode.Standard); + /// <summary>Returns a new version incremented by <paramref name="increment"/> with the given <paramref name="label"/>.</summary> public SemanticVersion Increment( VersionField increment, string? label, params SemanticVersion?[] alternativeSemanticVersions) => Increment(increment, label, mode: IncrementMode.Standard, alternativeSemanticVersions); + /// <summary>Returns a new version incremented by <paramref name="increment"/> with the given <paramref name="label"/>, optionally forcing the increment.</summary> public SemanticVersion Increment( VersionField increment, string? label, bool forceIncrement, params SemanticVersion?[] alternativeSemanticVersions) => Increment(increment, label, mode: forceIncrement ? IncrementMode.Force : IncrementMode.Standard, alternativeSemanticVersions); + /// <summary>Returns a new version incremented by <paramref name="increment"/> with the given <paramref name="label"/> and increment <paramref name="mode"/>.</summary> public SemanticVersion Increment( VersionField increment, string? label, IncrementMode mode, params SemanticVersion?[] alternativeSemanticVersions) { @@ -422,12 +458,16 @@ public SemanticVersion Increment( }; } + /// <summary>Controls how version incrementing is applied.</summary> public enum IncrementMode { + /// <summary>Increments the pre-release number when already on a pre-release, otherwise bumps the field.</summary> Standard, + /// <summary>Always bumps the version field regardless of whether a pre-release tag is present.</summary> Force, + /// <summary>Ensures the resulting version is strictly greater than the current one without forcing an unnecessary bump.</summary> EnsureIntegrity } } diff --git a/src/GitVersion.Core/SemVer/SemanticVersionBuildMetaData.cs b/src/GitVersion.Core/SemVer/SemanticVersionBuildMetaData.cs index 88f2fc658a..2c7366b071 100644 --- a/src/GitVersion.Core/SemVer/SemanticVersionBuildMetaData.cs +++ b/src/GitVersion.Core/SemVer/SemanticVersionBuildMetaData.cs @@ -1,76 +1,116 @@ using System.Globalization; -using GitVersion.Core; using GitVersion.Extensions; using GitVersion.Helpers; namespace GitVersion; +/// <summary>Holds the build metadata attached to a semantic version (commits-since-tag, branch, SHA, commit date, etc.).</summary> public class SemanticVersionBuildMetaData : IFormattable, IEquatable<SemanticVersionBuildMetaData?> { + /// <summary>An empty build metadata instance with no fields set.</summary> public static readonly SemanticVersionBuildMetaData Empty = new(); private static readonly LambdaEqualityHelper<SemanticVersionBuildMetaData> EqualityHelper = new(x => x.CommitsSinceTag, x => x.Branch, x => x.Sha); + /// <summary>Gets or initializes the number of commits since the last version tag.</summary> public long? CommitsSinceTag { get; init; } + /// <summary>Gets or initializes the name of the branch on which this version was calculated.</summary> public string? Branch { get; init; } + /// <summary>Gets or initializes the full SHA of the current commit.</summary> public string? Sha { get; init; } + /// <summary>Gets or initializes the abbreviated SHA of the current commit.</summary> public string? ShortSha { get; init; } + /// <summary>Gets or initializes any additional free-form metadata included in the build metadata string.</summary> public string? OtherMetaData { get; init; } + /// <summary>Gets or initializes the date of the current commit.</summary> public DateTimeOffset? CommitDate { get; init; } + /// <summary>Gets or initializes the semantic version of the source tag from which the version was calculated.</summary> + public SemanticVersion? VersionSourceSemVer { get; init; } + + /// <summary>Gets or initializes the SHA of the source tag commit.</summary> public string? VersionSourceSha { get; init; } - public long CommitsSinceVersionSource { get; init; } + /// <summary>Gets the number of commits since the version source (alias for <see cref="VersionSourceDistance"/>).</summary> + public long CommitsSinceVersionSource => VersionSourceDistance; + + /// <summary>Gets or initializes the number of commits between the version source tag and the current commit.</summary> + public long VersionSourceDistance { get; init; } + /// <summary>Gets or initializes the number of uncommitted changes in the working tree.</summary> public long UncommittedChanges { get; init; } + /// <summary>Gets or initializes the version field that was incremented relative to the version source.</summary> + public VersionField VersionSourceIncrement { get; init; } + + /// <summary>Initializes a new empty build metadata instance.</summary> public SemanticVersionBuildMetaData() { } - public SemanticVersionBuildMetaData(string? versionSourceSha, long? commitsSinceTag, string? branch, string? commitSha, - string? commitShortSha, DateTimeOffset? commitDate, long numberOfUnCommittedChanges, string? otherMetadata = null) + /// <summary>Initializes a new build metadata instance with all fields specified.</summary> + public SemanticVersionBuildMetaData( + SemanticVersion? versionSourceSemVer, + string? versionSourceSha, + long? commitsSinceTag, + string? branch, + string? commitSha, + string? commitShortSha, + DateTimeOffset? commitDate, + long numberOfUnCommittedChanges, + VersionField versionSourceIncrement, + string? otherMetadata = null) { - this.Sha = commitSha; - this.ShortSha = commitShortSha; - this.CommitsSinceTag = commitsSinceTag; - this.Branch = branch; - this.CommitDate = commitDate; - this.OtherMetaData = otherMetadata; - this.VersionSourceSha = versionSourceSha; - this.CommitsSinceVersionSource = commitsSinceTag ?? 0; - this.UncommittedChanges = numberOfUnCommittedChanges; + Sha = commitSha; + ShortSha = commitShortSha; + CommitsSinceTag = commitsSinceTag; + Branch = branch; + CommitDate = commitDate; + OtherMetaData = otherMetadata; + VersionSourceIncrement = versionSourceIncrement; + VersionSourceSemVer = versionSourceSemVer; + VersionSourceSha = versionSourceSha; + VersionSourceDistance = commitsSinceTag ?? 0; + UncommittedChanges = numberOfUnCommittedChanges; } + /// <summary>Initializes a new build metadata instance as a copy of <paramref name="buildMetaData"/>.</summary> public SemanticVersionBuildMetaData(SemanticVersionBuildMetaData buildMetaData) { buildMetaData.NotNull(); - this.Sha = buildMetaData.Sha; - this.ShortSha = buildMetaData.ShortSha; - this.CommitsSinceTag = buildMetaData.CommitsSinceTag; - this.Branch = buildMetaData.Branch; - this.CommitDate = buildMetaData.CommitDate; - this.OtherMetaData = buildMetaData.OtherMetaData; - this.VersionSourceSha = buildMetaData.VersionSourceSha; - this.CommitsSinceVersionSource = buildMetaData.CommitsSinceVersionSource; - this.UncommittedChanges = buildMetaData.UncommittedChanges; + Sha = buildMetaData.Sha; + ShortSha = buildMetaData.ShortSha; + CommitsSinceTag = buildMetaData.CommitsSinceTag; + Branch = buildMetaData.Branch; + CommitDate = buildMetaData.CommitDate; + OtherMetaData = buildMetaData.OtherMetaData; + VersionSourceSemVer = buildMetaData.VersionSourceSemVer; + VersionSourceSha = buildMetaData.VersionSourceSha; + VersionSourceDistance = buildMetaData.VersionSourceDistance; + UncommittedChanges = buildMetaData.UncommittedChanges; + VersionSourceIncrement = buildMetaData.VersionSourceIncrement; } + /// <summary>Returns <see langword="true"/> when <paramref name="obj"/> is a <see cref="SemanticVersionBuildMetaData"/> equal to this instance.</summary> public override bool Equals(object? obj) => Equals(obj as SemanticVersionBuildMetaData); + /// <summary>Returns <see langword="true"/> when this instance is equal to <paramref name="other"/> by commit count, branch, and SHA.</summary> public bool Equals(SemanticVersionBuildMetaData? other) => EqualityHelper.Equals(this, other); + /// <summary>Returns a hash code based on commit count, branch, and SHA.</summary> public override int GetHashCode() => EqualityHelper.GetHashCode(this); + /// <summary>Returns the default build metadata string (commits-since-tag).</summary> public override string ToString() => ToString("b"); + /// <summary>Returns a string representation of this build metadata using the given format specifier.</summary> public string ToString(string format) => ToString(format, CultureInfo.CurrentCulture); /// <summary> @@ -89,37 +129,42 @@ public string ToString(string? format, IFormatProvider? formatProvider) format = format.ToLower(); return format.ToLower() switch { - "b" => $"{this.CommitsSinceTag}", - "s" => $"{this.CommitsSinceTag}{(this.Sha.IsNullOrEmpty() ? null : ".Sha." + this.Sha)}".TrimStart('.'), - "f" => $"{this.CommitsSinceTag}{(this.Branch.IsNullOrEmpty() ? null : ".Branch." + FormatMetaDataPart(this.Branch))}{(this.Sha.IsNullOrEmpty() ? null : ".Sha." + this.Sha)}{(this.OtherMetaData.IsNullOrEmpty() ? null : "." + FormatMetaDataPart(this.OtherMetaData))}".TrimStart('.'), + "b" => $"{CommitsSinceTag}", + "s" => $"{CommitsSinceTag}{(Sha.IsNullOrEmpty() ? null : ".Sha." + Sha)}".TrimStart('.'), + "f" => $"{CommitsSinceTag}{(Branch.IsNullOrEmpty() ? null : ".Branch." + FormatMetaDataPart(Branch))}{(Sha.IsNullOrEmpty() ? null : ".Sha." + Sha)}{(OtherMetaData.IsNullOrEmpty() ? null : "." + FormatMetaDataPart(OtherMetaData))}".TrimStart('.'), _ => throw new FormatException($"Unknown format '{format}'.") }; } + /// <summary>Returns <see langword="true"/> when <paramref name="left"/> and <paramref name="right"/> are equal.</summary> public static bool operator ==(SemanticVersionBuildMetaData? left, SemanticVersionBuildMetaData? right) => Equals(left, right); + /// <summary>Returns <see langword="true"/> when <paramref name="left"/> and <paramref name="right"/> are not equal.</summary> public static bool operator !=(SemanticVersionBuildMetaData? left, SemanticVersionBuildMetaData? right) => !Equals(left, right); + /// <summary>Implicitly converts a build metadata instance to its string representation.</summary> public static implicit operator string?(SemanticVersionBuildMetaData? preReleaseTag) => preReleaseTag?.ToString(); + /// <summary>Implicitly parses a string into a <see cref="SemanticVersionBuildMetaData"/> instance.</summary> public static implicit operator SemanticVersionBuildMetaData(string preReleaseTag) => Parse(preReleaseTag); + /// <summary>Parses the build metadata string, returning <see cref="Empty"/> when the input is null or empty.</summary> public static SemanticVersionBuildMetaData Parse(string? buildMetaData) { if (buildMetaData.IsNullOrEmpty()) return Empty; - var parsed = RegexPatterns.SemanticVersion.ParseBuildMetaDataRegex().Match(buildMetaData); + var parsed = RegexPatterns.SemanticVersion.ParseBuildMetaDataRegex.Match(buildMetaData); long? buildMetaDataCommitsSinceTag = null; - long? buildMetaDataCommitsSinceVersionSource = null; + long? buildMetaDataVersionSourceDistance = null; if (parsed.Groups["BuildNumber"].Success) { if (long.TryParse(parsed.Groups["BuildNumber"].Value, out var buildNumber)) buildMetaDataCommitsSinceTag = buildNumber; - buildMetaDataCommitsSinceVersionSource = buildMetaDataCommitsSinceTag ?? 0; + buildMetaDataVersionSourceDistance = buildMetaDataCommitsSinceTag ?? 0; } string? buildMetaDataBranch = null; @@ -137,7 +182,7 @@ public static SemanticVersionBuildMetaData Parse(string? buildMetaData) return new() { CommitsSinceTag = buildMetaDataCommitsSinceTag, - CommitsSinceVersionSource = buildMetaDataCommitsSinceVersionSource ?? 0, + VersionSourceDistance = buildMetaDataVersionSourceDistance ?? 0, Branch = buildMetaDataBranch, Sha = buildMetaDataSha, OtherMetaData = buildMetaDataOtherMetaData @@ -147,7 +192,7 @@ public static SemanticVersionBuildMetaData Parse(string? buildMetaData) private static string FormatMetaDataPart(string value) { if (!value.IsNullOrEmpty()) - value = RegexPatterns.SemanticVersion.FormatBuildMetaDataRegex().Replace(value, "-"); + value = RegexPatterns.SemanticVersion.FormatBuildMetaDataRegex.Replace(value, "-"); return value; } } diff --git a/src/GitVersion.Core/SemVer/SemanticVersionFormat.cs b/src/GitVersion.Core/SemVer/SemanticVersionFormat.cs index ec228defde..0ee313752f 100644 --- a/src/GitVersion.Core/SemVer/SemanticVersionFormat.cs +++ b/src/GitVersion.Core/SemVer/SemanticVersionFormat.cs @@ -1,7 +1,11 @@ namespace GitVersion; +/// <summary>Controls the leniency applied when parsing semantic version strings.</summary> public enum SemanticVersionFormat { + /// <summary>Parses only fully SemVer 2.0-compliant version strings.</summary> Strict, + + /// <summary>Accepts a wider range of version string formats, including four-part and partially-specified versions.</summary> Loose } diff --git a/src/GitVersion.Core/SemVer/SemanticVersionPreReleaseTag.cs b/src/GitVersion.Core/SemVer/SemanticVersionPreReleaseTag.cs index 30dc819449..87de99ebbe 100644 --- a/src/GitVersion.Core/SemVer/SemanticVersionPreReleaseTag.cs +++ b/src/GitVersion.Core/SemVer/SemanticVersionPreReleaseTag.cs @@ -1,27 +1,34 @@ using System.Globalization; -using GitVersion.Core; using GitVersion.Extensions; using GitVersion.Helpers; namespace GitVersion; +/// <summary>Represents the pre-release label and optional numeric identifier of a semantic version (e.g. <c>beta.1</c>).</summary> public sealed class SemanticVersionPreReleaseTag : IFormattable, IComparable<SemanticVersionPreReleaseTag>, IEquatable<SemanticVersionPreReleaseTag?> { private static readonly StringComparer IgnoreCaseComparer = StringComparer.InvariantCultureIgnoreCase; + + /// <summary>An empty pre-release tag with no name and no number.</summary> public static readonly SemanticVersionPreReleaseTag Empty = new(); private static readonly LambdaEqualityHelper<SemanticVersionPreReleaseTag> EqualityHelper = new(x => x.Name, x => x.Number); + /// <summary>Gets or initializes the pre-release label (e.g. <c>beta</c>).</summary> public string Name { get; init; } + /// <summary>Gets or initializes the numeric identifier appended after the label (e.g. the <c>1</c> in <c>beta.1</c>).</summary> public long? Number { get; init; } + /// <summary>Gets or initializes a value indicating whether the tag should be promoted even when <see cref="Name"/> is empty.</summary> public bool PromoteTagEvenIfNameIsEmpty { get; init; } + /// <summary>Initializes an empty pre-release tag.</summary> public SemanticVersionPreReleaseTag() => Name = string.Empty; + /// <summary>Initializes a new pre-release tag with the given name, number, and promotion flag.</summary> public SemanticVersionPreReleaseTag(string name, long? number, bool promoteTagEvenIfNameIsEmpty) { Name = name.NotNull(); @@ -29,6 +36,7 @@ public SemanticVersionPreReleaseTag(string name, long? number, bool promoteTagEv PromoteTagEvenIfNameIsEmpty = promoteTagEvenIfNameIsEmpty; } + /// <summary>Initializes a new pre-release tag as a copy of <paramref name="preReleaseTag"/>.</summary> public SemanticVersionPreReleaseTag(SemanticVersionPreReleaseTag preReleaseTag) { preReleaseTag.NotNull(); @@ -38,39 +46,51 @@ public SemanticVersionPreReleaseTag(SemanticVersionPreReleaseTag preReleaseTag) PromoteTagEvenIfNameIsEmpty = preReleaseTag.PromoteTagEvenIfNameIsEmpty; } + /// <summary>Returns <see langword="true"/> when <paramref name="obj"/> is a <see cref="SemanticVersionPreReleaseTag"/> equal to this instance.</summary> public override bool Equals(object? obj) => Equals(obj as SemanticVersionPreReleaseTag); + /// <summary>Returns <see langword="true"/> when this tag is equal to <paramref name="other"/> by name and number.</summary> public bool Equals(SemanticVersionPreReleaseTag? other) => EqualityHelper.Equals(this, other); + /// <summary>Returns a hash code based on the tag name and number.</summary> public override int GetHashCode() => EqualityHelper.GetHashCode(this); + /// <summary>Returns <see langword="true"/> when <paramref name="left"/> and <paramref name="right"/> are equal.</summary> public static bool operator ==(SemanticVersionPreReleaseTag? left, SemanticVersionPreReleaseTag? right) => Equals(left, right); + /// <summary>Returns <see langword="true"/> when <paramref name="left"/> and <paramref name="right"/> are not equal.</summary> public static bool operator !=(SemanticVersionPreReleaseTag? left, SemanticVersionPreReleaseTag? right) => !Equals(left, right); + /// <summary>Returns <see langword="true"/> when <paramref name="left"/> is greater than <paramref name="right"/>.</summary> public static bool operator >(SemanticVersionPreReleaseTag? left, SemanticVersionPreReleaseTag? right) => left?.CompareTo(right) > 0; + /// <summary>Returns <see langword="true"/> when <paramref name="left"/> is less than <paramref name="right"/>.</summary> public static bool operator <(SemanticVersionPreReleaseTag? left, SemanticVersionPreReleaseTag? right) => left?.CompareTo(right) < 0; + /// <summary>Returns <see langword="true"/> when <paramref name="left"/> is greater than or equal to <paramref name="right"/>.</summary> public static bool operator >=(SemanticVersionPreReleaseTag? left, SemanticVersionPreReleaseTag? right) => left?.CompareTo(right) >= 0; + /// <summary>Returns <see langword="true"/> when <paramref name="left"/> is less than or equal to <paramref name="right"/>.</summary> public static bool operator <=(SemanticVersionPreReleaseTag? left, SemanticVersionPreReleaseTag? right) => IgnoreCaseComparer.Compare(left?.Name, right?.Name) != 1; + /// <summary>Implicitly converts a pre-release tag to its string representation.</summary> public static implicit operator string?(SemanticVersionPreReleaseTag? preReleaseTag) => preReleaseTag?.ToString(); + /// <summary>Implicitly parses a string into a <see cref="SemanticVersionPreReleaseTag"/>.</summary> public static implicit operator SemanticVersionPreReleaseTag(string? preReleaseTag) => Parse(preReleaseTag); + /// <summary>Parses a pre-release tag string, returning <see cref="Empty"/> when the input is null or empty.</summary> public static SemanticVersionPreReleaseTag Parse(string? preReleaseTag) { if (preReleaseTag.IsNullOrEmpty()) return Empty; - var match = RegexPatterns.SemanticVersion.ParsePreReleaseTagRegex().Match(preReleaseTag); + var match = RegexPatterns.SemanticVersion.ParsePreReleaseTagRegex.Match(preReleaseTag); if (!match.Success) { // TODO check how to log this @@ -85,6 +105,7 @@ public static SemanticVersionPreReleaseTag Parse(string? preReleaseTag) : new SemanticVersionPreReleaseTag(value, number, true); } + /// <summary>Compares this tag to <paramref name="other"/> by name and number.</summary> public int CompareTo(SemanticVersionPreReleaseTag? other) { if (!HasTag() && other?.HasTag() == true) @@ -100,8 +121,10 @@ public int CompareTo(SemanticVersionPreReleaseTag? other) return nameComparison != 0 ? nameComparison : Nullable.Compare(Number, other?.Number); } + /// <summary>Returns the default SemVer 2.0 formatted tag string (e.g. <c>beta.1</c>).</summary> public override string ToString() => ToString("t"); + /// <summary>Returns a string representation using the given format specifier.</summary> public string ToString(string format) => ToString(format, CultureInfo.CurrentCulture); /// <summary> @@ -125,5 +148,6 @@ public string ToString(string? format, IFormatProvider? formatProvider) }; } + /// <summary>Returns <see langword="true"/> when this tag has a non-empty name or a number with the promotion flag set.</summary> public bool HasTag() => !Name.IsNullOrEmpty() || (Number.HasValue && PromoteTagEvenIfNameIsEmpty); } diff --git a/src/GitVersion.Core/SemVer/VersionField.cs b/src/GitVersion.Core/SemVer/VersionField.cs index b76adb3c05..fb2ef15ad6 100644 --- a/src/GitVersion.Core/SemVer/VersionField.cs +++ b/src/GitVersion.Core/SemVer/VersionField.cs @@ -1,9 +1,17 @@ namespace GitVersion; +/// <summary>Identifies the position in a semantic version string that should be incremented.</summary> public enum VersionField { + /// <summary>No field is incremented; the pre-release number is bumped instead.</summary> None, + + /// <summary>Increment the patch component.</summary> Patch, + + /// <summary>Increment the minor component (and reset patch to zero).</summary> Minor, + + /// <summary>Increment the major component (and reset minor and patch to zero).</summary> Major } diff --git a/src/GitVersion.Core/VersionCalculation/Abstractions/IDeploymentModeCalculator.cs b/src/GitVersion.Core/VersionCalculation/Abstractions/IDeploymentModeCalculator.cs index 28c6cec386..78470f2bc4 100644 --- a/src/GitVersion.Core/VersionCalculation/Abstractions/IDeploymentModeCalculator.cs +++ b/src/GitVersion.Core/VersionCalculation/Abstractions/IDeploymentModeCalculator.cs @@ -1,8 +1,8 @@ -using GitVersion.Git; - namespace GitVersion.VersionCalculation; +/// <summary>Applies a deployment-mode-specific calculation to transform a base semantic version into the final version.</summary> public interface IDeploymentModeCalculator { - SemanticVersion Calculate(SemanticVersion semanticVersion, ICommit? baseVersionSource); + /// <summary>Calculates the final <see cref="SemanticVersion"/> by applying deployment-mode rules to <paramref name="semanticVersion"/> and <paramref name="baseVersion"/>.</summary> + SemanticVersion Calculate(SemanticVersion semanticVersion, IBaseVersion baseVersion); } diff --git a/src/GitVersion.Core/VersionCalculation/Abstractions/IEffectiveBranchConfigurationFinder.cs b/src/GitVersion.Core/VersionCalculation/Abstractions/IEffectiveBranchConfigurationFinder.cs index 12a44ceb4d..cafde6c524 100644 --- a/src/GitVersion.Core/VersionCalculation/Abstractions/IEffectiveBranchConfigurationFinder.cs +++ b/src/GitVersion.Core/VersionCalculation/Abstractions/IEffectiveBranchConfigurationFinder.cs @@ -3,7 +3,9 @@ namespace GitVersion.VersionCalculation; +/// <summary>Resolves the set of <see cref="EffectiveBranchConfiguration"/> instances that apply to a given branch.</summary> public interface IEffectiveBranchConfigurationFinder { + /// <summary>Returns the effective branch configurations that match <paramref name="branch"/> under the given global <paramref name="configuration"/>.</summary> IEnumerable<EffectiveBranchConfiguration> GetConfigurations(IBranch branch, IGitVersionConfiguration configuration); } diff --git a/src/GitVersion.Core/VersionCalculation/Abstractions/IIncrementStrategyFinder.cs b/src/GitVersion.Core/VersionCalculation/Abstractions/IIncrementStrategyFinder.cs index 6331be284d..54920c1602 100644 --- a/src/GitVersion.Core/VersionCalculation/Abstractions/IIncrementStrategyFinder.cs +++ b/src/GitVersion.Core/VersionCalculation/Abstractions/IIncrementStrategyFinder.cs @@ -3,12 +3,16 @@ namespace GitVersion.VersionCalculation; +/// <summary>Determines the version-field increment that should be applied based on commit messages and branch context.</summary> public interface IIncrementStrategyFinder { + /// <summary>Determines which version field to increment given the current commit, base version source, and branch configuration.</summary> VersionField DetermineIncrementedField( ICommit currentCommit, ICommit? baseVersionSource, bool shouldIncrement, EffectiveConfiguration configuration, string? label); + /// <summary>Returns the commits that were merged as part of a merge commit at the given <paramref name="index"/>.</summary> IEnumerable<ICommit> GetMergedCommits(ICommit mergeCommit, int index, IIgnoreConfiguration ignore); + /// <summary>Returns the version field increment forced by a commit message keyword in <paramref name="commit"/>.</summary> VersionField GetIncrementForcedByCommit(ICommit commit, IGitVersionConfiguration configuration); } diff --git a/src/GitVersion.Core/VersionCalculation/Abstractions/INextVersionCalculator.cs b/src/GitVersion.Core/VersionCalculation/Abstractions/INextVersionCalculator.cs index 03bc8082db..461fad5ec8 100644 --- a/src/GitVersion.Core/VersionCalculation/Abstractions/INextVersionCalculator.cs +++ b/src/GitVersion.Core/VersionCalculation/Abstractions/INextVersionCalculator.cs @@ -1,6 +1,8 @@ namespace GitVersion.VersionCalculation; +/// <summary>Orchestrates the full version calculation pipeline and returns the next semantic version.</summary> public interface INextVersionCalculator { + /// <summary>Calculates and returns the next semantic version for the current repository state.</summary> SemanticVersion FindVersion(); } diff --git a/src/GitVersion.Core/VersionCalculation/Abstractions/IVariableProvider.cs b/src/GitVersion.Core/VersionCalculation/Abstractions/IVariableProvider.cs index cb848efc23..71979edc49 100644 --- a/src/GitVersion.Core/VersionCalculation/Abstractions/IVariableProvider.cs +++ b/src/GitVersion.Core/VersionCalculation/Abstractions/IVariableProvider.cs @@ -3,8 +3,10 @@ namespace GitVersion.VersionCalculation; +/// <summary>Converts a calculated <see cref="SemanticVersion"/> into the full set of <see cref="GitVersionVariables"/>.</summary> public interface IVariableProvider { + /// <summary>Builds and returns all version variables for the given <paramref name="semanticVersion"/>.</summary> GitVersionVariables GetVariablesFor( SemanticVersion semanticVersion, IGitVersionConfiguration configuration, int preReleaseWeight); } diff --git a/src/GitVersion.Core/VersionCalculation/Abstractions/IVersionFilter.cs b/src/GitVersion.Core/VersionCalculation/Abstractions/IVersionFilter.cs index f6de404af0..1516a8deea 100644 --- a/src/GitVersion.Core/VersionCalculation/Abstractions/IVersionFilter.cs +++ b/src/GitVersion.Core/VersionCalculation/Abstractions/IVersionFilter.cs @@ -2,8 +2,12 @@ namespace GitVersion.VersionCalculation; +/// <summary>Determines whether a base version or commit should be excluded from version calculation.</summary> public interface IVersionFilter { + /// <summary>Returns <see langword="true"/> when <paramref name="baseVersion"/> should be excluded, setting <paramref name="reason"/> to a description of why.</summary> bool Exclude(IBaseVersion baseVersion, out string? reason); + + /// <summary>Returns <see langword="true"/> when <paramref name="commit"/> should be excluded, setting <paramref name="reason"/> to a description of why.</summary> bool Exclude(ICommit? commit, out string? reason); } diff --git a/src/GitVersion.Core/VersionCalculation/Abstractions/IVersionStrategy.cs b/src/GitVersion.Core/VersionCalculation/Abstractions/IVersionStrategy.cs index 1fcddaee17..ee3975afe0 100644 --- a/src/GitVersion.Core/VersionCalculation/Abstractions/IVersionStrategy.cs +++ b/src/GitVersion.Core/VersionCalculation/Abstractions/IVersionStrategy.cs @@ -2,7 +2,9 @@ namespace GitVersion.VersionCalculation; +/// <summary>Implements a strategy for discovering candidate base versions from a specific source (e.g. tags, branch names, merge messages).</summary> public interface IVersionStrategy { + /// <summary>Returns the candidate base versions found by this strategy for the given branch <paramref name="configuration"/>.</summary> IEnumerable<BaseVersion> GetBaseVersions(EffectiveBranchConfiguration configuration); } diff --git a/src/GitVersion.Core/VersionCalculation/Caching/GitVersionCacheKeyFactory.cs b/src/GitVersion.Core/VersionCalculation/Caching/GitVersionCacheKeyFactory.cs index 368713f464..d39b8c8ddb 100644 --- a/src/GitVersion.Core/VersionCalculation/Caching/GitVersionCacheKeyFactory.cs +++ b/src/GitVersion.Core/VersionCalculation/Caching/GitVersionCacheKeyFactory.cs @@ -1,12 +1,10 @@ using System.IO.Abstractions; using System.Security.Cryptography; -using GitVersion.Common; using GitVersion.Configuration; using GitVersion.Extensions; using GitVersion.Git; using GitVersion.Helpers; using GitVersion.Logging; -using Microsoft.Extensions.Options; namespace GitVersion.VersionCalculation.Caching; @@ -160,7 +158,7 @@ private string GetOverrideConfigHash(IReadOnlyDictionary<object, object?>? overr // Doesn't depend on command line representation and // includes possible changes in default values of Config per se. - var configContent = configurationSerializer.Serialize(overrideConfiguration); + var configContent = this.configurationSerializer.Serialize(overrideConfiguration); return GetHash(configContent); } diff --git a/src/GitVersion.Core/VersionCalculation/Caching/GitVersionCacheProvider.cs b/src/GitVersion.Core/VersionCalculation/Caching/GitVersionCacheProvider.cs index d80979db7a..d82ab6470f 100644 --- a/src/GitVersion.Core/VersionCalculation/Caching/GitVersionCacheProvider.cs +++ b/src/GitVersion.Core/VersionCalculation/Caching/GitVersionCacheProvider.cs @@ -4,7 +4,6 @@ using GitVersion.Helpers; using GitVersion.Logging; using GitVersion.OutputVariables; -using Microsoft.Extensions.Options; namespace GitVersion.VersionCalculation.Caching; @@ -32,7 +31,7 @@ public void WriteVariablesToDiskCache(GitVersionVariables versionVariables) { try { - serializer.ToFile(versionVariables, cacheFileName); + this.serializer.ToFile(versionVariables, cacheFileName); } catch (Exception ex) { @@ -55,7 +54,7 @@ public void WriteVariablesToDiskCache(GitVersionVariables versionVariables) try { - var loadedVariables = serializer.FromFile(cacheFileName); + var loadedVariables = this.serializer.FromFile(cacheFileName); return loadedVariables; } catch (Exception ex) @@ -100,7 +99,7 @@ private string PrepareCacheDirectory() private GitVersionCacheKey GetCacheKey() { - var cacheKey = this.cacheKeyFactory.Create(options.Value.ConfigurationInfo.OverrideConfiguration); + var cacheKey = this.cacheKeyFactory.Create(this.options.Value.ConfigurationInfo.OverrideConfiguration); return cacheKey; } diff --git a/src/GitVersion.Core/VersionCalculation/Caching/IGitVersionCacheKeyFactory.cs b/src/GitVersion.Core/VersionCalculation/Caching/IGitVersionCacheKeyFactory.cs index 29ae72d8b4..bf5ee25b6f 100644 --- a/src/GitVersion.Core/VersionCalculation/Caching/IGitVersionCacheKeyFactory.cs +++ b/src/GitVersion.Core/VersionCalculation/Caching/IGitVersionCacheKeyFactory.cs @@ -1,6 +1,8 @@ namespace GitVersion.VersionCalculation.Caching; +/// <summary>Represents the cache key used to identify a stored set of <see cref="GitVersion.OutputVariables.GitVersionVariables"/> on disk.</summary> public record GitVersionCacheKey(string Value); + internal interface IGitVersionCacheKeyFactory { GitVersionCacheKey Create(IReadOnlyDictionary<object, object?>? overrideConfiguration); diff --git a/src/GitVersion.Core/VersionCalculation/Caching/IGitVersionCacheProvider.cs b/src/GitVersion.Core/VersionCalculation/Caching/IGitVersionCacheProvider.cs index a25909892e..cefb6484c0 100644 --- a/src/GitVersion.Core/VersionCalculation/Caching/IGitVersionCacheProvider.cs +++ b/src/GitVersion.Core/VersionCalculation/Caching/IGitVersionCacheProvider.cs @@ -2,8 +2,12 @@ namespace GitVersion.VersionCalculation.Caching; +/// <summary>Persists and retrieves <see cref="GitVersionVariables"/> from a disk cache to avoid redundant recalculation.</summary> public interface IGitVersionCacheProvider { + /// <summary>Writes <paramref name="versionVariables"/> to the on-disk cache.</summary> void WriteVariablesToDiskCache(GitVersionVariables versionVariables); + + /// <summary>Loads and returns the cached <see cref="GitVersionVariables"/>, or <see langword="null"/> if the cache is absent or stale.</summary> GitVersionVariables? LoadVersionVariablesFromDiskCache(); } diff --git a/src/GitVersion.Core/VersionCalculation/CommitMessageIncrementMode.cs b/src/GitVersion.Core/VersionCalculation/CommitMessageIncrementMode.cs index 4a817ea6fc..f0bdd80b13 100644 --- a/src/GitVersion.Core/VersionCalculation/CommitMessageIncrementMode.cs +++ b/src/GitVersion.Core/VersionCalculation/CommitMessageIncrementMode.cs @@ -1,8 +1,14 @@ namespace GitVersion.VersionCalculation; +/// <summary>Controls whether and how commit messages are used to determine automatic version increments.</summary> public enum CommitMessageIncrementMode { + /// <summary>All commit messages are inspected for increment keywords.</summary> Enabled, + + /// <summary>Commit messages are never inspected; increments must be configured explicitly.</summary> Disabled, + + /// <summary>Only merge commit messages are inspected for increment keywords.</summary> MergeMessageOnly } diff --git a/src/GitVersion.Core/VersionCalculation/DeploymentMode.cs b/src/GitVersion.Core/VersionCalculation/DeploymentMode.cs index e6fa322591..adf40b25a8 100644 --- a/src/GitVersion.Core/VersionCalculation/DeploymentMode.cs +++ b/src/GitVersion.Core/VersionCalculation/DeploymentMode.cs @@ -1,8 +1,14 @@ namespace GitVersion.VersionCalculation; +/// <summary>Specifies the deployment strategy used to determine how the version number changes between releases.</summary> public enum DeploymentMode { + /// <summary>Each build on a pre-release branch produces a unique pre-release version; the version is only finalised on an explicit release.</summary> ManualDeployment, + + /// <summary>Each commit is a potential release candidate; the build number is appended as the pre-release number.</summary> ContinuousDelivery, + + /// <summary>Each commit is automatically deployed; versions are calculated as if every commit is a new release.</summary> ContinuousDeployment } diff --git a/src/GitVersion.Core/VersionCalculation/EffectiveBranchConfigurationFinder.cs b/src/GitVersion.Core/VersionCalculation/EffectiveBranchConfigurationFinder.cs index 7d9fc16476..66ebe69afb 100644 --- a/src/GitVersion.Core/VersionCalculation/EffectiveBranchConfigurationFinder.cs +++ b/src/GitVersion.Core/VersionCalculation/EffectiveBranchConfigurationFinder.cs @@ -1,4 +1,3 @@ -using GitVersion.Common; using GitVersion.Configuration; using GitVersion.Extensions; using GitVersion.Git; diff --git a/src/GitVersion.Core/VersionCalculation/IncrementStrategy.cs b/src/GitVersion.Core/VersionCalculation/IncrementStrategy.cs index aa2be5fd26..2bc89fcd03 100644 --- a/src/GitVersion.Core/VersionCalculation/IncrementStrategy.cs +++ b/src/GitVersion.Core/VersionCalculation/IncrementStrategy.cs @@ -1,10 +1,20 @@ namespace GitVersion; +/// <summary>Specifies which version component should be incremented when creating a release from a branch.</summary> public enum IncrementStrategy { + /// <summary>No automatic increment is applied.</summary> None, + + /// <summary>Increment the major component.</summary> Major, + + /// <summary>Increment the minor component.</summary> Minor, + + /// <summary>Increment the patch component.</summary> Patch, + + /// <summary>Inherit the increment strategy from the parent or source branch.</summary> Inherit } diff --git a/src/GitVersion.Core/VersionCalculation/IncrementStrategyFinder.cs b/src/GitVersion.Core/VersionCalculation/IncrementStrategyFinder.cs index 7a941b13d6..0b106168c0 100644 --- a/src/GitVersion.Core/VersionCalculation/IncrementStrategyFinder.cs +++ b/src/GitVersion.Core/VersionCalculation/IncrementStrategyFinder.cs @@ -1,7 +1,5 @@ using System.Text.RegularExpressions; -using GitVersion.Common; using GitVersion.Configuration; -using GitVersion.Core; using GitVersion.Extensions; using GitVersion.Git; @@ -49,10 +47,10 @@ public VersionField DetermineIncrementedField( { commits.NotNull(); - var majorRegex = TryGetRegexOrDefault(configuration.MajorVersionBumpMessage, RegexPatterns.VersionCalculation.DefaultMajorRegex()); - var minorRegex = TryGetRegexOrDefault(configuration.MinorVersionBumpMessage, RegexPatterns.VersionCalculation.DefaultMinorRegex()); - var patchRegex = TryGetRegexOrDefault(configuration.PatchVersionBumpMessage, RegexPatterns.VersionCalculation.DefaultPatchRegex()); - var noBumpRegex = TryGetRegexOrDefault(configuration.NoBumpMessage, RegexPatterns.VersionCalculation.DefaultNoBumpRegex()); + var majorRegex = TryGetRegexOrDefault(configuration.MajorVersionBumpMessage, RegexPatterns.VersionCalculation.DefaultMajorRegex); + var minorRegex = TryGetRegexOrDefault(configuration.MinorVersionBumpMessage, RegexPatterns.VersionCalculation.DefaultMinorRegex); + var patchRegex = TryGetRegexOrDefault(configuration.PatchVersionBumpMessage, RegexPatterns.VersionCalculation.DefaultPatchRegex); + var noBumpRegex = TryGetRegexOrDefault(configuration.NoBumpMessage, RegexPatterns.VersionCalculation.DefaultNoBumpRegex); var increments = commits .Select(c => GetIncrementFromCommit(c, majorRegex, minorRegex, patchRegex, noBumpRegex)) @@ -73,7 +71,7 @@ public VersionField DetermineIncrementedField( } IEnumerable<ICommit> commits = GetCommitHistory( - tagPrefix: configuration.TagPrefix, + tagPrefix: configuration.TagPrefixPattern, semanticVersionFormat: configuration.SemanticVersionFormat, baseVersionSource: baseVersionSource, currentCommit: currentCommit, @@ -100,7 +98,7 @@ private Dictionary<string, ICommit>.ValueCollection GetCommitHistory(string? tag ICommit? baseVersionSource, ICommit currentCommit, string? label, IIgnoreConfiguration ignore) { var targetShas = new Lazy<HashSet<string>>(() => - [.. taggedSemanticVersionRepository + [.. this.taggedSemanticVersionRepository .GetTaggedSemanticVersions(tagPrefix, semanticVersionFormat, ignore) .SelectMany(versionWithTags => versionWithTags) .Where(versionWithTag => versionWithTag.Value.IsMatchForBranchSpecificLabel(label)) @@ -182,7 +180,7 @@ public IEnumerable<ICommit> GetMergedCommits(ICommit mergeCommit, int index, IIg { mergeCommit.NotNull(); - if (!mergeCommit.IsMergeCommit()) + if (!mergeCommit.IsMergeCommit) { throw new ArgumentException("The parameter is not a merge commit.", nameof(mergeCommit)); } @@ -209,10 +207,10 @@ public VersionField GetIncrementForcedByCommit(ICommit commit, IGitVersionConfig commit.NotNull(); configuration.NotNull(); - var majorRegex = TryGetRegexOrDefault(configuration.MajorVersionBumpMessage, RegexPatterns.VersionCalculation.DefaultMajorRegex()); - var minorRegex = TryGetRegexOrDefault(configuration.MinorVersionBumpMessage, RegexPatterns.VersionCalculation.DefaultMinorRegex()); - var patchRegex = TryGetRegexOrDefault(configuration.PatchVersionBumpMessage, RegexPatterns.VersionCalculation.DefaultPatchRegex()); - var none = TryGetRegexOrDefault(configuration.NoBumpMessage, RegexPatterns.VersionCalculation.DefaultNoBumpRegex()); + var majorRegex = TryGetRegexOrDefault(configuration.MajorVersionBumpMessage, RegexPatterns.VersionCalculation.DefaultMajorRegex); + var minorRegex = TryGetRegexOrDefault(configuration.MinorVersionBumpMessage, RegexPatterns.VersionCalculation.DefaultMinorRegex); + var patchRegex = TryGetRegexOrDefault(configuration.PatchVersionBumpMessage, RegexPatterns.VersionCalculation.DefaultPatchRegex); + var none = TryGetRegexOrDefault(configuration.NoBumpMessage, RegexPatterns.VersionCalculation.DefaultNoBumpRegex); return GetIncrementFromCommit(commit, majorRegex, minorRegex, patchRegex, none) ?? VersionField.None; } diff --git a/src/GitVersion.Core/VersionCalculation/Mainline/EnrichIncrement.cs b/src/GitVersion.Core/VersionCalculation/Mainline/EnrichIncrement.cs index 91ad98cdd9..eff180d3b8 100644 --- a/src/GitVersion.Core/VersionCalculation/Mainline/EnrichIncrement.cs +++ b/src/GitVersion.Core/VersionCalculation/Mainline/EnrichIncrement.cs @@ -19,7 +19,7 @@ public void Enrich(MainlineIteration iteration, MainlineCommit commit, MainlineC if (commit.Predecessor is not null && commit.Predecessor.BranchName != commit.BranchName) context.Label = null; - context.Label ??= effectiveConfiguration.GetBranchSpecificLabel(commit.BranchName, null); + context.Label ??= effectiveConfiguration.GetBranchSpecificLabel(commit.BranchName, null, context.Environment); if (effectiveConfiguration.IsMainBranch) context.BaseVersionSource = commit.Predecessor?.Value; @@ -38,7 +38,7 @@ private static VersionField GetIncrementForcedByCommit( CommitMessageIncrementMode.Enabled => context.IncrementStrategyFinder.GetIncrementForcedByCommit(commit, context.Configuration), CommitMessageIncrementMode.Disabled => VersionField.None, - CommitMessageIncrementMode.MergeMessageOnly => commit.IsMergeCommit() + CommitMessageIncrementMode.MergeMessageOnly => commit.IsMergeCommit ? context.IncrementStrategyFinder.GetIncrementForcedByCommit(commit, context.Configuration) : VersionField.None, _ => throw new InvalidEnumArgumentException( nameof(configuration.CommitMessageIncrementing), (int)configuration.CommitMessageIncrementing, typeof(CommitMessageIncrementMode) diff --git a/src/GitVersion.Core/VersionCalculation/Mainline/EnrichSemanticVersion.cs b/src/GitVersion.Core/VersionCalculation/Mainline/EnrichSemanticVersion.cs index ec0efc946b..094fead4da 100644 --- a/src/GitVersion.Core/VersionCalculation/Mainline/EnrichSemanticVersion.cs +++ b/src/GitVersion.Core/VersionCalculation/Mainline/EnrichSemanticVersion.cs @@ -9,9 +9,9 @@ public void Enrich(MainlineIteration iteration, MainlineCommit commit, MainlineC { var branchSpecificLabel = context.TargetLabel; branchSpecificLabel ??= iteration.GetEffectiveConfiguration(context.Configuration) - .GetBranchSpecificLabel(commit.BranchName, null); + .GetBranchSpecificLabel(commit.BranchName, null, context.Environemnt); branchSpecificLabel ??= commit.GetEffectiveConfiguration(context.Configuration) - .GetBranchSpecificLabel(commit.BranchName, null); + .GetBranchSpecificLabel(commit.BranchName, null, context.Environment); var semanticVersions = commit.SemanticVersions.Where( element => element.IsMatchForBranchSpecificLabel(branchSpecificLabel) diff --git a/src/GitVersion.Core/VersionCalculation/Mainline/MainlineCommit.cs b/src/GitVersion.Core/VersionCalculation/Mainline/MainlineCommit.cs index 2340fa42f6..6b3c75fb00 100644 --- a/src/GitVersion.Core/VersionCalculation/Mainline/MainlineCommit.cs +++ b/src/GitVersion.Core/VersionCalculation/Mainline/MainlineCommit.cs @@ -50,7 +50,7 @@ public bool IsPredecessorTheLastCommitOnTrunk(IGitVersionConfiguration configura [MemberNotNullWhen(true, nameof(ParentIteration), nameof(ParentCommit))] private bool HasParentIteration => Iteration.ParentIteration is not null && Iteration.ParentCommit is not null; - public IReadOnlyCollection<SemanticVersion> SemanticVersions => semanticVersions; + public IReadOnlyCollection<SemanticVersion> SemanticVersions => this.semanticVersions; private readonly HashSet<SemanticVersion> semanticVersions = []; @@ -58,7 +58,7 @@ public bool IsPredecessorTheLastCommitOnTrunk(IGitVersionConfiguration configura public EffectiveConfiguration GetEffectiveConfiguration(IGitVersionConfiguration configuration) { - if (effectiveConfiguration is not null) return effectiveConfiguration; + if (this.effectiveConfiguration is not null) return this.effectiveConfiguration; var branchConfiguration = Configuration; @@ -81,7 +81,7 @@ public EffectiveConfiguration GetEffectiveConfiguration(IGitVersionConfiguration var parentConfiguration = ParentCommit.GetEffectiveConfiguration(configuration); branchConfiguration = branchConfiguration.Inherit(parentConfiguration); - return effectiveConfiguration = new EffectiveConfiguration(configuration, branchConfiguration); + return this.effectiveConfiguration = new EffectiveConfiguration(configuration, branchConfiguration); } public VersionField GetIncrementForcedByBranch(IGitVersionConfiguration configuration) @@ -97,7 +97,7 @@ public void AddSemanticVersions(IEnumerable<SemanticVersion> values) { foreach (var semanticVersion in values.NotNull()) { - semanticVersions.Add(semanticVersion); + this.semanticVersions.Add(semanticVersion); } } diff --git a/src/GitVersion.Core/VersionCalculation/Mainline/MainlineContext.cs b/src/GitVersion.Core/VersionCalculation/Mainline/MainlineContext.cs index 3657484b37..b7e39dc562 100644 --- a/src/GitVersion.Core/VersionCalculation/Mainline/MainlineContext.cs +++ b/src/GitVersion.Core/VersionCalculation/Mainline/MainlineContext.cs @@ -4,12 +4,14 @@ namespace GitVersion.VersionCalculation.Mainline; -internal record MainlineContext(IIncrementStrategyFinder IncrementStrategyFinder, IGitVersionConfiguration Configuration) +internal record MainlineContext(IIncrementStrategyFinder IncrementStrategyFinder, IGitVersionConfiguration Configuration, IEnvironment Environment) { public IIncrementStrategyFinder IncrementStrategyFinder { get; } = IncrementStrategyFinder.NotNull(); public IGitVersionConfiguration Configuration { get; } = Configuration.NotNull(); + public IEnvironment Environemnt { get; } = Environment.NotNull(); + public string? TargetLabel { get; init; } public SemanticVersion? SemanticVersion { get; set; } diff --git a/src/GitVersion.Core/VersionCalculation/Mainline/MainlineIteration.cs b/src/GitVersion.Core/VersionCalculation/Mainline/MainlineIteration.cs index efae207281..4cbac8a4bb 100644 --- a/src/GitVersion.Core/VersionCalculation/Mainline/MainlineIteration.cs +++ b/src/GitVersion.Core/VersionCalculation/Mainline/MainlineIteration.cs @@ -44,9 +44,9 @@ public EffectiveConfiguration GetEffectiveConfiguration(IGitVersionConfiguration public int Depth { get; } - public int NumberOfCommits => commits.Count; + public int NumberOfCommits => this.commits.Count; - public IReadOnlyCollection<MainlineCommit> Commits => commits; + public IReadOnlyCollection<MainlineCommit> Commits => this.commits; private readonly Stack<MainlineCommit> commits = new(); private readonly Dictionary<ICommit, MainlineCommit> commitLookup = []; @@ -55,7 +55,7 @@ public MainlineIteration(string id, ReferenceName branchName, IBranchConfigurati MainlineIteration? parentIteration, MainlineCommit? parentCommit) { Id = id.NotNullOrEmpty(); - Depth = parentIteration?.Depth ?? 0 + 1; + Depth = (parentIteration?.Depth ?? 0) + 1; BranchName = branchName.NotNull(); Configuration = configuration.NotNull(); ParentIteration = parentIteration; @@ -68,11 +68,11 @@ public MainlineCommit CreateCommit( var commit = this.commits.Count != 0 ? this.commits.Peek().Append(value, branchName, configuration) : new MainlineCommit(this, value, branchName, configuration); - commits.Push(commit); + this.commits.Push(commit); if (value is not null) { - commitLookup.Add(value, commit); + this.commitLookup.Add(value, commit); } return commit; @@ -82,7 +82,7 @@ public MainlineCommit CreateCommit( { commit.NotNull(); - commitLookup.TryGetValue(commit, out var result); + this.commitLookup.TryGetValue(commit, out var result); return result; } } diff --git a/src/GitVersion.Core/VersionCalculation/Mainline/NonTrunk/CommitOnNonTrunk.cs b/src/GitVersion.Core/VersionCalculation/Mainline/NonTrunk/CommitOnNonTrunk.cs index d50f955a35..e1a8d9020e 100644 --- a/src/GitVersion.Core/VersionCalculation/Mainline/NonTrunk/CommitOnNonTrunk.cs +++ b/src/GitVersion.Core/VersionCalculation/Mainline/NonTrunk/CommitOnNonTrunk.cs @@ -22,7 +22,7 @@ public IEnumerable<IBaseVersionIncrement> GetIncrements( context.Label = null; var effectiveConfiguration = commit.GetEffectiveConfiguration(context.Configuration); - context.Label ??= effectiveConfiguration.GetBranchSpecificLabel(commit.BranchName, null); + context.Label ??= effectiveConfiguration.GetBranchSpecificLabel(commit.BranchName, null, context.Environment); if (commit.Successor is not null) yield break; yield return new BaseVersionOperator diff --git a/src/GitVersion.Core/VersionCalculation/Mainline/NonTrunk/CommitOnNonTrunkBranchedBase.cs b/src/GitVersion.Core/VersionCalculation/Mainline/NonTrunk/CommitOnNonTrunkBranchedBase.cs index 371cf513d6..5d7b5aa97a 100644 --- a/src/GitVersion.Core/VersionCalculation/Mainline/NonTrunk/CommitOnNonTrunkBranchedBase.cs +++ b/src/GitVersion.Core/VersionCalculation/Mainline/NonTrunk/CommitOnNonTrunkBranchedBase.cs @@ -21,7 +21,7 @@ public virtual IEnumerable<IBaseVersionIncrement> GetIncrements( context.Increment = context.Increment.Consolidate(incrementForcedByBranch); var iterationEffectiveConfiguration = iteration.GetEffectiveConfiguration(context.Configuration); - context.Label = iterationEffectiveConfiguration.GetBranchSpecificLabel(iteration.BranchName, null) ?? context.Label; + context.Label = iterationEffectiveConfiguration.GetBranchSpecificLabel(iteration.BranchName, null, context.Environment) ?? context.Label; context.ForceIncrement = true; yield return new BaseVersionOperator diff --git a/src/GitVersion.Core/VersionCalculation/Mainline/NonTrunk/CommitOnNonTrunkWithPreReleaseTagBase.cs b/src/GitVersion.Core/VersionCalculation/Mainline/NonTrunk/CommitOnNonTrunkWithPreReleaseTagBase.cs index 7c1c5c841a..94f6f5a860 100644 --- a/src/GitVersion.Core/VersionCalculation/Mainline/NonTrunk/CommitOnNonTrunkWithPreReleaseTagBase.cs +++ b/src/GitVersion.Core/VersionCalculation/Mainline/NonTrunk/CommitOnNonTrunkWithPreReleaseTagBase.cs @@ -24,7 +24,7 @@ public virtual IEnumerable<IBaseVersionIncrement> GetIncrements( context.Increment = commit.GetIncrementForcedByBranch(context.Configuration); var effectiveConfiguration = commit.GetEffectiveConfiguration(context.Configuration); - context.Label = effectiveConfiguration.GetBranchSpecificLabel(commit.BranchName, null); + context.Label = effectiveConfiguration.GetBranchSpecificLabel(commit.BranchName, null, context.Environment); context.ForceIncrement = false; } } diff --git a/src/GitVersion.Core/VersionCalculation/Mainline/NonTrunk/CommitOnNonTrunkWithStableTagBase.cs b/src/GitVersion.Core/VersionCalculation/Mainline/NonTrunk/CommitOnNonTrunkWithStableTagBase.cs index 37e3b68a49..8065034493 100644 --- a/src/GitVersion.Core/VersionCalculation/Mainline/NonTrunk/CommitOnNonTrunkWithStableTagBase.cs +++ b/src/GitVersion.Core/VersionCalculation/Mainline/NonTrunk/CommitOnNonTrunkWithStableTagBase.cs @@ -24,6 +24,6 @@ public virtual IEnumerable<IBaseVersionIncrement> GetIncrements( context.Increment = commit.GetIncrementForcedByBranch(context.Configuration); var effectiveConfiguration = commit.GetEffectiveConfiguration(context.Configuration); - context.Label = effectiveConfiguration.GetBranchSpecificLabel(commit.BranchName, null); + context.Label = effectiveConfiguration.GetBranchSpecificLabel(commit.BranchName, null, context.Environment); } } diff --git a/src/GitVersion.Core/VersionCalculation/Mainline/NonTrunk/FirstCommitOnRelease.cs b/src/GitVersion.Core/VersionCalculation/Mainline/NonTrunk/FirstCommitOnRelease.cs index 7fec472353..97b778eb43 100644 --- a/src/GitVersion.Core/VersionCalculation/Mainline/NonTrunk/FirstCommitOnRelease.cs +++ b/src/GitVersion.Core/VersionCalculation/Mainline/NonTrunk/FirstCommitOnRelease.cs @@ -30,7 +30,7 @@ public IEnumerable<IBaseVersionIncrement> GetIncrements( MainlineIteration iteration, MainlineCommit commit, MainlineContext context) { var effectiveConfiguration = commit.GetEffectiveConfiguration(context.Configuration); - if (!commit.BranchName.TryGetSemanticVersion(out var element, effectiveConfiguration)) yield break; + if (!commit.BranchName.TryGetSemanticVersion(effectiveConfiguration, out var element)) yield break; context.AlternativeSemanticVersions.Add(element.Value); } } diff --git a/src/GitVersion.Core/VersionCalculation/Mainline/NonTrunk/MergeCommitOnNonTrunkBase.cs b/src/GitVersion.Core/VersionCalculation/Mainline/NonTrunk/MergeCommitOnNonTrunkBase.cs index ce2c089aae..94ca86304e 100644 --- a/src/GitVersion.Core/VersionCalculation/Mainline/NonTrunk/MergeCommitOnNonTrunkBase.cs +++ b/src/GitVersion.Core/VersionCalculation/Mainline/NonTrunk/MergeCommitOnNonTrunkBase.cs @@ -22,7 +22,8 @@ IEnumerable<IBaseVersionIncrement> GetIncrementsInternal() iteration: commit.ChildIteration, targetLabel: context.TargetLabel, incrementStrategyFinder: context.IncrementStrategyFinder, - configuration: context.Configuration + configuration: context.Configuration, + environment: context.Environment ); context.Label ??= baseVersion.Operator?.Label; diff --git a/src/GitVersion.Core/VersionCalculation/Mainline/Trunk/CommitOnTrunk.cs b/src/GitVersion.Core/VersionCalculation/Mainline/Trunk/CommitOnTrunk.cs index 152b81577e..7e5f85d1c2 100644 --- a/src/GitVersion.Core/VersionCalculation/Mainline/Trunk/CommitOnTrunk.cs +++ b/src/GitVersion.Core/VersionCalculation/Mainline/Trunk/CommitOnTrunk.cs @@ -21,7 +21,7 @@ public IEnumerable<IBaseVersionIncrement> GetIncrements( context.Label = null; var effectiveConfiguration = commit.GetEffectiveConfiguration(context.Configuration); - context.Label ??= effectiveConfiguration.GetBranchSpecificLabel(commit.BranchName, null); + context.Label ??= effectiveConfiguration.GetBranchSpecificLabel(commit.BranchName, null, context.Environment); context.ForceIncrement = true; yield return new BaseVersionOperator diff --git a/src/GitVersion.Core/VersionCalculation/Mainline/Trunk/CommitOnTrunkBranchedBase.cs b/src/GitVersion.Core/VersionCalculation/Mainline/Trunk/CommitOnTrunkBranchedBase.cs index ac2afa04a0..887a03d48c 100644 --- a/src/GitVersion.Core/VersionCalculation/Mainline/Trunk/CommitOnTrunkBranchedBase.cs +++ b/src/GitVersion.Core/VersionCalculation/Mainline/Trunk/CommitOnTrunkBranchedBase.cs @@ -17,7 +17,7 @@ public virtual IEnumerable<IBaseVersionIncrement> GetIncrements( var effectiveConfiguration = iteration.GetEffectiveConfiguration(context.Configuration); if (iteration.GetEffectiveConfiguration(context.Configuration).IsReleaseBranch - && iteration.BranchName.TryGetSemanticVersion(out var element, effectiveConfiguration)) + && iteration.BranchName.TryGetSemanticVersion(effectiveConfiguration, out var element)) { context.AlternativeSemanticVersions.Add(element.Value); } @@ -28,7 +28,7 @@ public virtual IEnumerable<IBaseVersionIncrement> GetIncrements( context.Increment = incrementForcedByBranch; var iterationEffectiveConfiguration = iteration.GetEffectiveConfiguration(context.Configuration); - context.Label = iterationEffectiveConfiguration.GetBranchSpecificLabel(iteration.BranchName, null) ?? context.Label; + context.Label = iterationEffectiveConfiguration.GetBranchSpecificLabel(iteration.BranchName, null, context.Environment) ?? context.Label; context.ForceIncrement = true; yield return new BaseVersionOperator diff --git a/src/GitVersion.Core/VersionCalculation/Mainline/Trunk/CommitOnTrunkWithStableTagBase.cs b/src/GitVersion.Core/VersionCalculation/Mainline/Trunk/CommitOnTrunkWithStableTagBase.cs index f9ca1a445b..f590cb3a3e 100644 --- a/src/GitVersion.Core/VersionCalculation/Mainline/Trunk/CommitOnTrunkWithStableTagBase.cs +++ b/src/GitVersion.Core/VersionCalculation/Mainline/Trunk/CommitOnTrunkWithStableTagBase.cs @@ -22,6 +22,6 @@ public virtual IEnumerable<IBaseVersionIncrement> GetIncrements( }; var effectiveConfiguration = commit.GetEffectiveConfiguration(context.Configuration); - context.Label = effectiveConfiguration.GetBranchSpecificLabel(commit.BranchName, null); + context.Label = effectiveConfiguration.GetBranchSpecificLabel(commit.BranchName, null, context.Environment); } } diff --git a/src/GitVersion.Core/VersionCalculation/Mainline/Trunk/LastCommitOnTrunkWithPreReleaseTag.cs b/src/GitVersion.Core/VersionCalculation/Mainline/Trunk/LastCommitOnTrunkWithPreReleaseTag.cs index 97316952f6..fc7c263749 100644 --- a/src/GitVersion.Core/VersionCalculation/Mainline/Trunk/LastCommitOnTrunkWithPreReleaseTag.cs +++ b/src/GitVersion.Core/VersionCalculation/Mainline/Trunk/LastCommitOnTrunkWithPreReleaseTag.cs @@ -22,7 +22,7 @@ public override IEnumerable<IBaseVersionIncrement> GetIncrements( context.Increment = commit.GetIncrementForcedByBranch(context.Configuration); var effectiveConfiguration = commit.GetEffectiveConfiguration(context.Configuration); - context.Label = effectiveConfiguration.GetBranchSpecificLabel(commit.BranchName, null); + context.Label = effectiveConfiguration.GetBranchSpecificLabel(commit.BranchName, null, context.Environment); context.ForceIncrement = false; yield return new BaseVersionOperator diff --git a/src/GitVersion.Core/VersionCalculation/Mainline/Trunk/MergeCommitOnTrunkBase.cs b/src/GitVersion.Core/VersionCalculation/Mainline/Trunk/MergeCommitOnTrunkBase.cs index 26170a710c..84c7119052 100644 --- a/src/GitVersion.Core/VersionCalculation/Mainline/Trunk/MergeCommitOnTrunkBase.cs +++ b/src/GitVersion.Core/VersionCalculation/Mainline/Trunk/MergeCommitOnTrunkBase.cs @@ -20,7 +20,8 @@ IEnumerable<IBaseVersionIncrement> GetIncrementsInternal() iteration: commit.ChildIteration!, targetLabel: context.TargetLabel, incrementStrategyFinder: context.IncrementStrategyFinder, - configuration: context.Configuration + configuration: context.Configuration, + environment: context.Environment ); context.Label ??= baseVersion.Operator?.Label; diff --git a/src/GitVersion.Core/VersionCalculation/NextVersion.cs b/src/GitVersion.Core/VersionCalculation/NextVersion.cs index fb21719cd9..9c74d8a027 100644 --- a/src/GitVersion.Core/VersionCalculation/NextVersion.cs +++ b/src/GitVersion.Core/VersionCalculation/NextVersion.cs @@ -3,36 +3,55 @@ namespace GitVersion.VersionCalculation; -public class NextVersion(SemanticVersion incrementedVersion, IBaseVersion baseVersion, EffectiveBranchConfiguration configuration) +/// <summary>Represents the next calculated version together with its base version and branch configuration.</summary> +public class NextVersion( + SemanticVersion incrementedVersion, + IBaseVersion baseVersion, + EffectiveBranchConfiguration configuration) : IComparable<NextVersion>, IEquatable<NextVersion> { + /// <summary>Gets the base version that was used as the starting point for this calculation.</summary> public IBaseVersion BaseVersion { get; } = baseVersion.NotNull(); + /// <summary>Gets the semantic version after applying the required increments.</summary> public SemanticVersion IncrementedVersion { get; } = incrementedVersion.NotNull(); + /// <summary>Gets the effective branch configuration under which this version was calculated.</summary> public EffectiveBranchConfiguration BranchConfiguration { get; } = configuration; + /// <summary>Gets the effective configuration values for the branch.</summary> public EffectiveConfiguration Configuration => BranchConfiguration.Value; + /// <summary>Compares this version to <paramref name="other"/> by incremented version.</summary> public int CompareTo(NextVersion? other) => IncrementedVersion.CompareTo(other?.IncrementedVersion); + /// <summary>Returns <see langword="true"/> when the incremented versions of <paramref name="left"/> and <paramref name="right"/> are equal.</summary> public static bool operator ==(NextVersion left, NextVersion? right) => left.CompareTo(right) == 0; + /// <summary>Returns <see langword="true"/> when the incremented versions of <paramref name="left"/> and <paramref name="right"/> are not equal.</summary> public static bool operator !=(NextVersion left, NextVersion right) => left.CompareTo(right) != 0; + /// <summary>Returns <see langword="true"/> when <paramref name="left"/> is less than <paramref name="right"/>.</summary> public static bool operator <(NextVersion left, NextVersion right) => left.CompareTo(right) < 0; + /// <summary>Returns <see langword="true"/> when <paramref name="left"/> is less than or equal to <paramref name="right"/>.</summary> public static bool operator <=(NextVersion left, NextVersion right) => left.CompareTo(right) <= 0; + /// <summary>Returns <see langword="true"/> when <paramref name="left"/> is greater than <paramref name="right"/>.</summary> public static bool operator >(NextVersion left, NextVersion right) => left.CompareTo(right) > 0; + /// <summary>Returns <see langword="true"/> when <paramref name="left"/> is greater than or equal to <paramref name="right"/>.</summary> public static bool operator >=(NextVersion left, NextVersion right) => left.CompareTo(right) >= 0; + /// <summary>Returns <see langword="true"/> when this instance equals <paramref name="other"/>.</summary> public bool Equals(NextVersion? other) => this == other; + /// <summary>Returns <see langword="true"/> when <paramref name="other"/> is a <see cref="NextVersion"/> equal to this instance.</summary> public override bool Equals(object? other) => other is NextVersion nextVersion && Equals(nextVersion); + /// <summary>Returns a human-readable representation showing the base version and incremented version.</summary> public override string ToString() => $"{BaseVersion} | {IncrementedVersion}"; + /// <summary>Returns a hash code based on the string representation.</summary> public override int GetHashCode() => ToString().GetHashCode(); } diff --git a/src/GitVersion.Core/VersionCalculation/PathFilter.cs b/src/GitVersion.Core/VersionCalculation/PathFilter.cs index 75c93fbf13..aa724ecb58 100644 --- a/src/GitVersion.Core/VersionCalculation/PathFilter.cs +++ b/src/GitVersion.Core/VersionCalculation/PathFilter.cs @@ -24,10 +24,10 @@ public bool Exclude(IBaseVersion baseVersion, [NotNullWhen(true)] out string? re private bool IsMatch(string path) { - if (!pathMatchCache.TryGetValue(path, out var isMatch)) + if (!this.pathMatchCache.TryGetValue(path, out var isMatch)) { isMatch = this.pathsRegexes.Any(regex => regex.IsMatch(path)); - pathMatchCache[path] = isMatch; + this.pathMatchCache[path] = isMatch; } return isMatch; } @@ -44,7 +44,7 @@ public bool Exclude(ICommit? commit, [NotNullWhen(true)] out string? reason) { case PathFilterMode.Inclusive: { - if (commit.DiffPaths.All(this.IsMatch)) + if (commit.DiffPaths.All(IsMatch)) { reason = "Source was ignored due to all commit paths matching ignore regex"; return true; diff --git a/src/GitVersion.Core/VersionCalculation/SemanticVersioning/SemanticVersionFormatValues.cs b/src/GitVersion.Core/VersionCalculation/SemanticVersioning/SemanticVersionFormatValues.cs index 64913a061c..d4b70d031e 100644 --- a/src/GitVersion.Core/VersionCalculation/SemanticVersioning/SemanticVersionFormatValues.cs +++ b/src/GitVersion.Core/VersionCalculation/SemanticVersioning/SemanticVersionFormatValues.cs @@ -1,60 +1,95 @@ using System.Globalization; using GitVersion.Configuration; -using GitVersion.Core; using GitVersion.Extensions; namespace GitVersion; +/// <summary>Exposes all computed version format values used by custom format strings in GitVersion configuration.</summary> public class SemanticVersionFormatValues(SemanticVersion semver, IGitVersionConfiguration configuration, int preReleaseWeight) { + /// <summary>Gets the major version component as a string.</summary> public string Major => semver.Major.ToString(); + /// <summary>Gets the minor version component as a string.</summary> public string Minor => semver.Minor.ToString(); + /// <summary>Gets the patch version component as a string.</summary> public string Patch => semver.Patch.ToString(); + /// <summary>Gets the full pre-release tag (e.g. <c>beta.1</c>).</summary> public string PreReleaseTag => semver.PreReleaseTag.ToString(); - public string PreReleaseTagWithDash => this.PreReleaseTag.WithPrefixIfNotNullOrEmpty("-"); + /// <summary>Gets the pre-release tag prefixed with a dash (e.g. <c>-beta.1</c>), or empty string when there is no tag.</summary> + public string PreReleaseTagWithDash => PreReleaseTag.WithPrefixIfNotNullOrEmpty("-"); + /// <summary>Gets the pre-release label without the numeric identifier (e.g. <c>beta</c>).</summary> public string PreReleaseLabel => semver.PreReleaseTag.Name; - public string PreReleaseLabelWithDash => this.PreReleaseLabel.WithPrefixIfNotNullOrEmpty("-"); + /// <summary>Gets the pre-release label prefixed with a dash (e.g. <c>-beta</c>), or empty string when there is no label.</summary> + public string PreReleaseLabelWithDash => PreReleaseLabel.WithPrefixIfNotNullOrEmpty("-"); + /// <summary>Gets the numeric pre-release identifier as a string, or empty string when absent.</summary> public string PreReleaseNumber => semver.PreReleaseTag.Number?.ToString() ?? string.Empty; + /// <summary>Gets the pre-release number adjusted by the configured pre-release weight.</summary> public string WeightedPreReleaseNumber => semver.PreReleaseTag.Number.HasValue ? $"{semver.PreReleaseTag.Number.Value + preReleaseWeight}" : $"{configuration.TagPreReleaseWeight}"; + /// <summary>Gets the build metadata string (commits-since-tag).</summary> public string BuildMetaData => semver.BuildMetaData.ToString(); + /// <summary>Gets the full build metadata string including branch, SHA, and other fields.</summary> public string FullBuildMetaData => semver.BuildMetaData.ToString("f"); + /// <summary>Gets the version in <c>Major.Minor.Patch</c> format.</summary> public string MajorMinorPatch => $"{semver.Major}.{semver.Minor}.{semver.Patch}"; + /// <summary>Gets the default semantic version string (without build metadata).</summary> public string SemVer => semver.ToString(); + /// <summary>Gets the assembly version string computed according to the configured <see cref="AssemblyVersioningScheme"/>.</summary> public string? AssemblySemVer => semver.GetAssemblyVersion(configuration.AssemblyVersioningScheme!.Value); + /// <summary>Gets the assembly file version string computed according to the configured <see cref="AssemblyFileVersioningScheme"/>.</summary> public string? AssemblyFileSemVer => semver.GetAssemblyFileVersion(configuration.AssemblyFileVersioningScheme!.Value); + /// <summary>Gets the full semantic version string including build metadata.</summary> public string FullSemVer => semver.ToString("f"); + /// <summary>Gets the name of the branch on which this version was calculated.</summary> public string? BranchName => semver.BuildMetaData.Branch; - public string? EscapedBranchName => semver.BuildMetaData.Branch?.RegexReplace(RegexPatterns.Common.SanitizeNameRegexPattern, "-"); + /// <summary>Gets the branch name with characters that are invalid in environment variable names replaced by dashes.</summary> + public string? EscapedBranchName => semver.BuildMetaData.Branch?.RegexReplace(RegexPatterns.SanitizeNameRegexPattern, "-"); + /// <summary>Gets the full SHA of the current commit.</summary> public string? Sha => semver.BuildMetaData.Sha; + /// <summary>Gets the abbreviated SHA of the current commit.</summary> public string? ShortSha => semver.BuildMetaData.ShortSha; + /// <summary>Gets the commit date formatted according to the configured <c>CommitDateFormat</c>.</summary> public string? CommitDate => semver.BuildMetaData.CommitDate?.UtcDateTime.ToString(configuration.CommitDateFormat, CultureInfo.InvariantCulture); + /// <summary>Gets the informational version string (SemVer + full build metadata).</summary> public string InformationalVersion => semver.ToString("i"); + /// <summary>Gets the semantic version of the source tag from which the version was calculated.</summary> + public string? VersionSourceSemVer => semver.BuildMetaData.VersionSourceSemVer?.ToString(); + + /// <summary>Gets the SHA of the source tag commit.</summary> public string? VersionSourceSha => semver.BuildMetaData.VersionSourceSha; - public string CommitsSinceVersionSource => semver.BuildMetaData.CommitsSinceVersionSource.ToString(CultureInfo.InvariantCulture); + /// <summary>Gets the number of commits since the version source.</summary> + [Obsolete("CommitsSinceVersionSource has been deprecated. Use VersionSourceDistance instead.")] + public string CommitsSinceVersionSource => semver.BuildMetaData.VersionSourceDistance.ToString(CultureInfo.InvariantCulture); + + /// <summary>Gets the number of commits between the version source tag and the current commit.</summary> + public string VersionSourceDistance => semver.BuildMetaData.VersionSourceDistance.ToString(CultureInfo.InvariantCulture); + /// <summary>Gets the number of uncommitted changes in the working tree.</summary> public string UncommittedChanges => semver.BuildMetaData.UncommittedChanges.ToString(CultureInfo.InvariantCulture); + + /// <summary>Gets the version field that was incremented relative to the version source.</summary> + public string VersionSourceIncrement => semver.BuildMetaData.VersionSourceIncrement.ToString(); } diff --git a/src/GitVersion.Core/VersionCalculation/SemanticVersioning/SemanticVersionWithTag.cs b/src/GitVersion.Core/VersionCalculation/SemanticVersioning/SemanticVersionWithTag.cs index 823c182244..cec9062037 100644 --- a/src/GitVersion.Core/VersionCalculation/SemanticVersioning/SemanticVersionWithTag.cs +++ b/src/GitVersion.Core/VersionCalculation/SemanticVersioning/SemanticVersionWithTag.cs @@ -2,9 +2,12 @@ namespace GitVersion; +/// <summary>Pairs a parsed <see cref="SemanticVersion"/> with the <see cref="ITag"/> it was extracted from.</summary> public sealed record SemanticVersionWithTag(SemanticVersion Value, ITag Tag) : IComparable<SemanticVersionWithTag> { + /// <summary>Compares this instance to <paramref name="other"/> by semantic version.</summary> public int CompareTo(SemanticVersionWithTag? other) => Value.CompareTo(other?.Value); + /// <summary>Returns a human-readable representation showing the tag, its commit, and the parsed version.</summary> public override string ToString() => $"{Tag} | {Tag.Commit} | {Value}"; } diff --git a/src/GitVersion.Core/VersionCalculation/VariableProvider.cs b/src/GitVersion.Core/VersionCalculation/VariableProvider.cs index 424c91711b..656b6b0f12 100644 --- a/src/GitVersion.Core/VersionCalculation/VariableProvider.cs +++ b/src/GitVersion.Core/VersionCalculation/VariableProvider.cs @@ -1,5 +1,4 @@ using GitVersion.Configuration; -using GitVersion.Core; using GitVersion.Extensions; using GitVersion.Formatting; using GitVersion.OutputVariables; @@ -40,35 +39,37 @@ public GitVersionVariables GetVariablesFor( ); return new( - semverFormatValues.Major, - semverFormatValues.Minor, - semverFormatValues.Patch, - semverFormatValues.BuildMetaData, - semverFormatValues.FullBuildMetaData, - semverFormatValues.BranchName, - semverFormatValues.EscapedBranchName, - semverFormatValues.Sha, - semverFormatValues.ShortSha, - semverFormatValues.MajorMinorPatch, - semverFormatValues.SemVer, - semverFormatValues.FullSemVer, - assemblySemVer, - assemblyFileSemVer, - semverFormatValues.PreReleaseTag, - semverFormatValues.PreReleaseTagWithDash, - semverFormatValues.PreReleaseLabel, - semverFormatValues.PreReleaseLabelWithDash, - semverFormatValues.PreReleaseNumber, - semverFormatValues.WeightedPreReleaseNumber, - informationalVersion, - semverFormatValues.CommitDate, - semverFormatValues.VersionSourceSha, - semverFormatValues.CommitsSinceVersionSource, - semverFormatValues.UncommittedChanges - ); + AssemblySemFileVer: assemblyFileSemVer, + AssemblySemVer: assemblySemVer, + BranchName: semverFormatValues.BranchName, + BuildMetaData: semverFormatValues.BuildMetaData, + CommitDate: semverFormatValues.CommitDate, + CommitsSinceVersionSource: semverFormatValues.VersionSourceDistance, + EscapedBranchName: semverFormatValues.EscapedBranchName, + FullBuildMetaData: semverFormatValues.FullBuildMetaData, + FullSemVer: semverFormatValues.FullSemVer, + InformationalVersion: informationalVersion, + Major: semverFormatValues.Major, + MajorMinorPatch: semverFormatValues.MajorMinorPatch, + Minor: semverFormatValues.Minor, + Patch: semverFormatValues.Patch, + PreReleaseLabel: semverFormatValues.PreReleaseLabel, + PreReleaseLabelWithDash: semverFormatValues.PreReleaseLabelWithDash, + PreReleaseNumber: semverFormatValues.PreReleaseNumber, + PreReleaseTag: semverFormatValues.PreReleaseTag, + PreReleaseTagWithDash: semverFormatValues.PreReleaseTagWithDash, + SemVer: semverFormatValues.SemVer, + Sha: semverFormatValues.Sha, + ShortSha: semverFormatValues.ShortSha, + UncommittedChanges: semverFormatValues.UncommittedChanges, + VersionSourceDistance: semverFormatValues.VersionSourceDistance, + VersionSourceIncrement: semverFormatValues.VersionSourceIncrement, + VersionSourceSemVer: semverFormatValues.VersionSourceSemVer, + VersionSourceSha: semverFormatValues.VersionSourceSha, + WeightedPreReleaseNumber: semverFormatValues.WeightedPreReleaseNumber); } - private string? CheckAndFormatString<T>(string? formatString, T source, string? defaultValue, string formatVarName) + private string? CheckAndFormatString<T>(string? formatString, T source, string? defaultValue, string formatVarName) where T : notnull { string? formattedString; @@ -81,7 +82,7 @@ public GitVersionVariables GetVariablesFor( try { formattedString = formatString.FormatWith(source, this.environment) - .RegexReplace(RegexPatterns.Output.SanitizeAssemblyInfoRegexPattern, "-"); + .RegexReplace(RegexPatterns.Output.SanitizeAssemblyInfoRegexPattern, "-"); } catch (ArgumentException exception) { diff --git a/src/GitVersion.Core/VersionCalculation/VersionCalculationModule.cs b/src/GitVersion.Core/VersionCalculation/VersionCalculationModule.cs index 363f39584a..6b01eecb5d 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionCalculationModule.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionCalculationModule.cs @@ -1,10 +1,11 @@ using GitVersion.Extensions; -using Microsoft.Extensions.DependencyInjection; namespace GitVersion.VersionCalculation; +/// <summary>Registers the version-calculation services including version strategies, variable provider, deployment-mode calculators, and increment strategy finder.</summary> public class VersionCalculationModule : IGitVersionModule { + /// <summary>Registers all version-calculation services into the DI container.</summary> public void RegisterTypes(IServiceCollection services) { services.AddModule(new VersionStrategyModule()); diff --git a/src/GitVersion.Core/VersionCalculation/VersionCalculators/ContinuousDeliveryVersionCalculator.cs b/src/GitVersion.Core/VersionCalculation/VersionCalculators/ContinuousDeliveryVersionCalculator.cs index 91098dae31..69b298b183 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionCalculators/ContinuousDeliveryVersionCalculator.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionCalculators/ContinuousDeliveryVersionCalculator.cs @@ -1,5 +1,3 @@ -using GitVersion.Common; -using GitVersion.Git; using GitVersion.Logging; namespace GitVersion.VersionCalculation; @@ -8,7 +6,7 @@ internal sealed class ContinuousDeliveryVersionCalculator( ILog log, IRepositoryStore repositoryStore, Lazy<GitVersionContext> versionContext) : VersionCalculatorBase(log, repositoryStore, versionContext), IDeploymentModeCalculator { - public SemanticVersion Calculate(SemanticVersion semanticVersion, ICommit? baseVersionSource) + public SemanticVersion Calculate(SemanticVersion semanticVersion, IBaseVersion baseVersion) { using (this.log.IndentLog("Using continuous delivery workflow to calculate the incremented version.")) { @@ -18,13 +16,13 @@ public SemanticVersion Calculate(SemanticVersion semanticVersion, ICommit? baseV throw new WarningException("Continuous delivery requires a pre-release tag."); } - return CalculateInternal(semanticVersion, baseVersionSource); + return CalculateInternal(semanticVersion, baseVersion); } } - private SemanticVersion CalculateInternal(SemanticVersion semanticVersion, ICommit? baseVersionSource) + private SemanticVersion CalculateInternal(SemanticVersion semanticVersion, IBaseVersion baseVersion) { - var buildMetaData = CreateVersionBuildMetaData(baseVersionSource); + var buildMetaData = CreateVersionBuildMetaData(baseVersion); return new SemanticVersion(semanticVersion) { @@ -34,7 +32,7 @@ private SemanticVersion CalculateInternal(SemanticVersion semanticVersion, IComm }, BuildMetaData = new SemanticVersionBuildMetaData(buildMetaData) { - CommitsSinceVersionSource = buildMetaData.CommitsSinceTag!.Value, + VersionSourceDistance = buildMetaData.CommitsSinceTag!.Value, CommitsSinceTag = null } }; diff --git a/src/GitVersion.Core/VersionCalculation/VersionCalculators/ContinuousDeploymentVersionCalculator.cs b/src/GitVersion.Core/VersionCalculation/VersionCalculators/ContinuousDeploymentVersionCalculator.cs index eb8bcc3acc..f917e9454a 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionCalculators/ContinuousDeploymentVersionCalculator.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionCalculators/ContinuousDeploymentVersionCalculator.cs @@ -1,5 +1,3 @@ -using GitVersion.Common; -using GitVersion.Git; using GitVersion.Logging; namespace GitVersion.VersionCalculation; @@ -8,24 +6,24 @@ internal sealed class ContinuousDeploymentVersionCalculator( ILog log, IRepositoryStore repositoryStore, Lazy<GitVersionContext> versionContext) : VersionCalculatorBase(log, repositoryStore, versionContext), IDeploymentModeCalculator { - public SemanticVersion Calculate(SemanticVersion semanticVersion, ICommit? baseVersionSource) + public SemanticVersion Calculate(SemanticVersion semanticVersion, IBaseVersion baseVersion) { using (this.log.IndentLog("Using continuous deployment workflow to calculate the incremented version.")) { - return CalculateInternal(semanticVersion, baseVersionSource); + return CalculateInternal(semanticVersion, baseVersion); } } - private SemanticVersion CalculateInternal(SemanticVersion semanticVersion, ICommit? baseVersionSource) + private SemanticVersion CalculateInternal(SemanticVersion semanticVersion, IBaseVersion baseVersion) { - var buildMetaData = CreateVersionBuildMetaData(baseVersionSource); + var buildMetaData = CreateVersionBuildMetaData(baseVersion); return new SemanticVersion(semanticVersion) { PreReleaseTag = SemanticVersionPreReleaseTag.Empty, BuildMetaData = new SemanticVersionBuildMetaData(buildMetaData) { - CommitsSinceVersionSource = buildMetaData.CommitsSinceTag!.Value, + VersionSourceDistance = buildMetaData.CommitsSinceTag!.Value, CommitsSinceTag = null } }; diff --git a/src/GitVersion.Core/VersionCalculation/VersionCalculators/ManualDeploymentVersionCalculator.cs b/src/GitVersion.Core/VersionCalculation/VersionCalculators/ManualDeploymentVersionCalculator.cs index 537ee7b360..ddb64e7243 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionCalculators/ManualDeploymentVersionCalculator.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionCalculators/ManualDeploymentVersionCalculator.cs @@ -1,5 +1,3 @@ -using GitVersion.Common; -using GitVersion.Git; using GitVersion.Logging; namespace GitVersion.VersionCalculation; @@ -8,17 +6,17 @@ internal sealed class ManualDeploymentVersionCalculator( ILog log, IRepositoryStore repositoryStore, Lazy<GitVersionContext> versionContext) : VersionCalculatorBase(log, repositoryStore, versionContext), IDeploymentModeCalculator { - public SemanticVersion Calculate(SemanticVersion semanticVersion, ICommit? baseVersionSource) + public SemanticVersion Calculate(SemanticVersion semanticVersion, IBaseVersion baseVersion) { using (this.log.IndentLog("Using manual deployment workflow to calculate the incremented version.")) { - return CalculateInternal(semanticVersion, baseVersionSource); + return CalculateInternal(semanticVersion, baseVersion); } } - private SemanticVersion CalculateInternal(SemanticVersion semanticVersion, ICommit? baseVersionSource) + private SemanticVersion CalculateInternal(SemanticVersion semanticVersion, IBaseVersion baseVersion) { - var buildMetaData = CreateVersionBuildMetaData(baseVersionSource); + var buildMetaData = CreateVersionBuildMetaData(baseVersion); return new SemanticVersion(semanticVersion) { diff --git a/src/GitVersion.Core/VersionCalculation/VersionCalculators/NextVersionCalculator.cs b/src/GitVersion.Core/VersionCalculation/VersionCalculators/NextVersionCalculator.cs index fc38d26801..8d2852cf93 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionCalculators/NextVersionCalculator.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionCalculators/NextVersionCalculator.cs @@ -1,7 +1,6 @@ using System.ComponentModel; using System.Diagnostics.CodeAnalysis; using GitVersion.Configuration; -using GitVersion.Core; using GitVersion.Extensions; using GitVersion.Git; using GitVersion.Logging; @@ -14,13 +13,15 @@ internal class NextVersionCalculator( IEnumerable<IDeploymentModeCalculator> deploymentModeCalculators, IEnumerable<IVersionStrategy> versionStrategies, IEffectiveBranchConfigurationFinder effectiveBranchConfigurationFinder, - ITaggedSemanticVersionService taggedSemanticVersionService) + ITaggedSemanticVersionService taggedSemanticVersionService, + IEnvironment environment) : INextVersionCalculator { private readonly ILog log = log.NotNull(); private readonly Lazy<GitVersionContext> versionContext = versionContext.NotNull(); private readonly IVersionStrategy[] versionStrategies = [.. versionStrategies.NotNull()]; private readonly IEffectiveBranchConfigurationFinder effectiveBranchConfigurationFinder = effectiveBranchConfigurationFinder.NotNull(); + private readonly IEnvironment environment = environment.NotNull(); private GitVersionContext Context => this.versionContext.Value; @@ -73,7 +74,7 @@ public virtual SemanticVersion FindVersion() var semanticVersion = CalculateSemanticVersion( deploymentMode: nextVersion.Configuration.DeploymentMode, semanticVersion: nextVersion.IncrementedVersion, - baseVersionSource: nextVersion.BaseVersion.BaseVersionSource + baseVersion: nextVersion.BaseVersion ); var ignore = Context.Configuration.Ignore; @@ -108,20 +109,21 @@ private bool TryGetSemanticVersion( { result = null; - var label = effectiveConfiguration.GetBranchSpecificLabel(Context.CurrentBranch.Name, null); + var label = effectiveConfiguration.GetBranchSpecificLabel(Context.CurrentBranch.Name, null, this.environment); var currentCommitTaggedVersion = taggedSemanticVersionsOfCurrentCommit .Where(element => element.Value.IsMatchForBranchSpecificLabel(label)).Max(); if (currentCommitTaggedVersion is null) return result is not null; SemanticVersionBuildMetaData semanticVersionBuildMetaData = new( + versionSourceSemVer: currentCommitTaggedVersion.Value, versionSourceSha: Context.CurrentCommit.Sha, commitsSinceTag: null, branch: Context.CurrentBranch.Name.Friendly, commitSha: Context.CurrentCommit.Sha, commitShortSha: Context.CurrentCommit.Id.ToString(7), commitDate: Context.CurrentCommit.When, - numberOfUnCommittedChanges: Context.NumberOfUncommittedChanges - ); + numberOfUnCommittedChanges: Context.NumberOfUncommittedChanges, + versionSourceIncrement: VersionField.None); var preReleaseTag = currentCommitTaggedVersion.Value.PreReleaseTag; if (effectiveConfiguration.DeploymentMode == DeploymentMode.ContinuousDeployment) @@ -139,7 +141,7 @@ private bool TryGetSemanticVersion( } private SemanticVersion CalculateSemanticVersion( - DeploymentMode deploymentMode, SemanticVersion semanticVersion, ICommit? baseVersionSource) + DeploymentMode deploymentMode, SemanticVersion semanticVersion, IBaseVersion baseVersion) { IDeploymentModeCalculator deploymentModeCalculator = deploymentMode switch { @@ -148,13 +150,13 @@ private SemanticVersion CalculateSemanticVersion( DeploymentMode.ContinuousDeployment => deploymentModeCalculators.SingleOfType<ContinuousDeploymentVersionCalculator>(), _ => throw new InvalidEnumArgumentException(nameof(deploymentMode), (int)deploymentMode, typeof(DeploymentMode)) }; - return deploymentModeCalculator.Calculate(semanticVersion, baseVersionSource); + return deploymentModeCalculator.Calculate(semanticVersion, baseVersion); } private NextVersion CalculateNextVersion(IBranch branch, IGitVersionConfiguration configuration) { var nextVersions = GetNextVersions(branch, configuration); - log.Separator(); + this.log.Separator(); var maxVersion = nextVersions.Max() ?? throw new GitVersionException("No base versions determined on the current branch."); @@ -171,7 +173,7 @@ private NextVersion CalculateNextVersion(IBranch branch, IGitVersionConfiguratio var latestVersion = matchingVersionsOnceIncremented.Aggregate(CompareVersions); latestBaseVersionSource = latestVersion.BaseVersion.BaseVersionSource; maxVersion = latestVersion; - log.Info( + this.log.Info( $"Found multiple base versions which will produce the same SemVer ({maxVersion.IncrementedVersion}), " + $"taking latest source for commit counting ({latestVersion.BaseVersion.Source})"); } @@ -208,8 +210,8 @@ private NextVersion CalculateNextVersion(IBranch branch, IGitVersionConfiguratio } }; - log.Info($"Base version used: {calculatedBase}"); - log.Separator(); + this.log.Info($"Base version used: {calculatedBase}"); + this.log.Separator(); return new(maxVersion.IncrementedVersion, calculatedBase, maxVersion.BranchConfiguration); } @@ -229,7 +231,7 @@ private static NextVersion CompareVersions(NextVersion version1, NextVersion ver private List<NextVersion> GetNextVersions(IBranch branch, IGitVersionConfiguration configuration) { - using (log.IndentLog("Fetching the base versions for version calculation...")) + using (this.log.IndentLog("Fetching the base versions for version calculation...")) { if (branch.Tip == null) throw new GitVersionException("No commits found on the current branch."); @@ -261,7 +263,7 @@ IEnumerable<NextVersion> GetNextVersionsInternal() { foreach (var baseVersion in versionStrategy.GetBaseVersions(effectiveBranchConfiguration)) { - log.Info(baseVersion.ToString()); + this.log.Info(baseVersion.ToString()); if (!IncludeVersion(baseVersion, configuration.Ignore)) continue; atLeastOneBaseVersionReturned = true; diff --git a/src/GitVersion.Core/VersionCalculation/VersionCalculators/VersionCalculatorBase.cs b/src/GitVersion.Core/VersionCalculation/VersionCalculators/VersionCalculatorBase.cs index db6c3eb135..e25da432d5 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionCalculators/VersionCalculatorBase.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionCalculators/VersionCalculatorBase.cs @@ -1,6 +1,4 @@ -using GitVersion.Common; using GitVersion.Extensions; -using GitVersion.Git; using GitVersion.Logging; namespace GitVersion.VersionCalculation; @@ -14,26 +12,28 @@ internal abstract class VersionCalculatorBase( protected GitVersionContext Context => this.versionContext.Value; - protected SemanticVersionBuildMetaData CreateVersionBuildMetaData(ICommit? baseVersionSource) + protected SemanticVersionBuildMetaData CreateVersionBuildMetaData(IBaseVersion baseVersion) { var commitLogs = this.repositoryStore.GetCommitLog( - baseVersionSource: baseVersionSource, + baseVersionSource: baseVersion.BaseVersionSource, currentCommit: Context.CurrentCommit, ignore: Context.Configuration.Ignore ); var commitsSinceTag = commitLogs.Count; - this.log.Info($"{commitsSinceTag} commits found between {baseVersionSource} and {Context.CurrentCommit}"); + this.log.Info($"{commitsSinceTag} commits found between {baseVersion.BaseVersionSource} and {Context.CurrentCommit}"); var shortSha = Context.CurrentCommit.Id.ToString(7); return new SemanticVersionBuildMetaData( - versionSourceSha: baseVersionSource?.Sha, + versionSourceSemVer: baseVersion.SemanticVersion, + versionSourceSha: baseVersion.BaseVersionSource?.Sha, commitsSinceTag: commitsSinceTag, branch: Context.CurrentBranch.Name.Friendly, commitSha: Context.CurrentCommit.Sha, commitShortSha: shortSha, commitDate: Context.CurrentCommit.When, - numberOfUnCommittedChanges: Context.NumberOfUncommittedChanges + numberOfUnCommittedChanges: Context.NumberOfUncommittedChanges, + versionSourceIncrement: baseVersion.Increment ); } } diff --git a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/BaseVersion.cs b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/BaseVersion.cs index 28a574b6a0..8a0837c67a 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/BaseVersion.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/BaseVersion.cs @@ -4,30 +4,43 @@ namespace GitVersion.VersionCalculation; +/// <summary>Represents a resolved base version consisting of an operand (the discovered version) and an optional operator (the increment to apply).</summary> public sealed record BaseVersion(BaseVersionOperand Operand) : IBaseVersion { + /// <summary>Initializes an empty base version.</summary> public BaseVersion() : this(new BaseVersionOperand()) { } + /// <summary>Initializes a base version from a source description, semantic version, and optional source commit.</summary> public BaseVersion(string source, SemanticVersion semanticVersion, ICommit? baseVersionSource = null) : this(new BaseVersionOperand(source, semanticVersion, baseVersionSource)) { } + /// <summary>Gets the human-readable description of the source that produced this base version.</summary> public string Source => (Operator?.Source).IsNullOrEmpty() ? Operand.Source : Operator.Source; + /// <summary>Gets the base semantic version before any increment is applied.</summary> public SemanticVersion SemanticVersion => Operand.SemanticVersion; + /// <summary>Gets the version field that will be incremented, or <see cref="VersionField.None"/> when no increment is needed.</summary> + public VersionField Increment => Operator?.Increment ?? VersionField.None; + + /// <summary>Gets the commit that is the source of this base version.</summary> public ICommit? BaseVersionSource => Operator?.BaseVersionSource ?? Operand.BaseVersionSource; + /// <summary>Gets a value indicating whether this base version has a pending increment operator.</summary> [MemberNotNullWhen(true, nameof(Operator))] public bool ShouldIncrement => Operator is not null; + /// <summary>Gets or initializes the operand that holds the discovered version.</summary> public BaseVersionOperand Operand { get; init; } = Operand.NotNull(); + /// <summary>Gets or initializes the optional operator that describes the increment to apply.</summary> public BaseVersionOperator? Operator { get; init; } + /// <summary>Returns the semantic version after applying the operator increment, or the base version when no increment is needed.</summary> public SemanticVersion GetIncrementedVersion() { var result = SemanticVersion; @@ -45,6 +58,7 @@ public SemanticVersion GetIncrementedVersion() return result; } + /// <summary>Returns a human-readable description of this base version including source, version, increment, and commit anchor.</summary> public override string ToString() { var commitSource = BaseVersionSource?.Id.ToString(7) ?? "External"; diff --git a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/BaseVersionOperand.cs b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/BaseVersionOperand.cs index 0a46368ba5..80f9ff2bb2 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/BaseVersionOperand.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/BaseVersionOperand.cs @@ -3,17 +3,22 @@ namespace GitVersion.VersionCalculation; +/// <summary>Represents the discovered base version — the semantic version value and the commit it was found at.</summary> public sealed record BaseVersionOperand(string Source, SemanticVersion SemanticVersion, ICommit? BaseVersionSource = null) : IBaseVersionIncrement { + /// <summary>Initializes an empty operand.</summary> public BaseVersionOperand() : this(string.Empty, SemanticVersion.Empty) { } + /// <summary>Gets or initializes the human-readable description of the source that produced this operand.</summary> public string Source { get; init; } = Source.NotNull(); + /// <summary>Gets or initializes the discovered semantic version.</summary> public SemanticVersion SemanticVersion { get; init; } = SemanticVersion.NotNull(); + /// <summary>Returns a human-readable description of this operand including its source and version.</summary> public override string ToString() { StringBuilder stringBuilder = new(); diff --git a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/BaseVersionOperator.cs b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/BaseVersionOperator.cs index c76ce82d38..3549c93c1a 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/BaseVersionOperator.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/BaseVersionOperator.cs @@ -2,20 +2,28 @@ namespace GitVersion.VersionCalculation; +/// <summary>Describes the version increment operation that should be applied to a <see cref="BaseVersionOperand"/> to produce the next version.</summary> public sealed record BaseVersionOperator : IBaseVersionIncrement { + /// <summary>Gets or initializes the human-readable source description for this increment.</summary> public string Source { get; init; } = string.Empty; + /// <summary>Gets or initializes the commit that is the source of this operator.</summary> public ICommit? BaseVersionSource { get; init; } + /// <summary>Gets or initializes the version field to increment.</summary> public VersionField Increment { get; init; } + /// <summary>Gets or initializes a value indicating whether the increment should be applied unconditionally.</summary> public bool ForceIncrement { get; init; } + /// <summary>Gets or initializes the pre-release label to apply after incrementing.</summary> public string? Label { get; init; } + /// <summary>Gets or initializes an alternative semantic version that may be used instead when it is greater than the incremented version.</summary> public SemanticVersion? AlternativeSemanticVersion { get; init; } + /// <summary>Returns a human-readable description of this operator including source, increment field, label, and commit anchor.</summary> public override string ToString() { StringBuilder stringBuilder = new(); diff --git a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/ConfiguredNextVersionVersionStrategy.cs b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/ConfiguredNextVersionVersionStrategy.cs index 275aee185a..2c02b9821b 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/ConfiguredNextVersionVersionStrategy.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/ConfiguredNextVersionVersionStrategy.cs @@ -8,11 +8,12 @@ namespace GitVersion.VersionCalculation; /// BaseVersionSource is null. /// Does not increment. /// </summary> -internal sealed class ConfiguredNextVersionVersionStrategy(Lazy<GitVersionContext> contextLazy) : IVersionStrategy +internal sealed class ConfiguredNextVersionVersionStrategy(Lazy<GitVersionContext> contextLazy, IEnvironment environment) : IVersionStrategy { private readonly Lazy<GitVersionContext> contextLazy = contextLazy.NotNull(); + private readonly IEnvironment environment = environment.NotNull(); - private GitVersionContext Context => contextLazy.Value; + private GitVersionContext Context => this.contextLazy.Value; public IEnumerable<BaseVersion> GetBaseVersions(EffectiveBranchConfiguration configuration) { @@ -26,7 +27,7 @@ public IEnumerable<BaseVersion> GetBaseVersions(EffectiveBranchConfiguration con var semanticVersion = SemanticVersion.Parse( nextVersion, Context.Configuration.TagPrefixPattern, Context.Configuration.SemanticVersionFormat ); - var label = configuration.Value.GetBranchSpecificLabel(Context.CurrentBranch.Name, null); + var label = configuration.Value.GetBranchSpecificLabel(Context.CurrentBranch.Name, null, this.environment); if (!semanticVersion.IsMatchForBranchSpecificLabel(label)) yield break; BaseVersionOperator? operation = null; diff --git a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/FallbacktVersionStrategy.cs b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/FallbacktVersionStrategy.cs index 31858d5a4d..a5a1beb51d 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/FallbacktVersionStrategy.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/FallbacktVersionStrategy.cs @@ -1,5 +1,4 @@ using GitVersion.Configuration; -using GitVersion.Core; using GitVersion.Extensions; namespace GitVersion.VersionCalculation; @@ -12,14 +11,16 @@ namespace GitVersion.VersionCalculation; internal sealed class FallbackVersionStrategy( Lazy<GitVersionContext> contextLazy, IIncrementStrategyFinder incrementStrategyFinder, - ITaggedSemanticVersionService taggedSemanticVersionService) + ITaggedSemanticVersionService taggedSemanticVersionService, + IEnvironment environment) : IVersionStrategy { private readonly Lazy<GitVersionContext> contextLazy = contextLazy.NotNull(); private readonly IIncrementStrategyFinder incrementStrategyFinder = incrementStrategyFinder.NotNull(); private readonly ITaggedSemanticVersionService taggedSemanticVersionService = taggedSemanticVersionService.NotNull(); + private readonly IEnvironment environment = environment.NotNull(); - private GitVersionContext Context => contextLazy.Value; + private GitVersionContext Context => this.contextLazy.Value; public IEnumerable<BaseVersion> GetBaseVersions(EffectiveBranchConfiguration configuration) => GetBaseVersionsInternal(configuration); @@ -31,9 +32,9 @@ private IEnumerable<BaseVersion> GetBaseVersionsInternal(EffectiveBranchConfigur if (!Context.Configuration.VersionStrategy.HasFlag(VersionStrategies.Fallback)) yield break; - var label = configuration.Value.GetBranchSpecificLabel(Context.CurrentBranch.Name, null); + var label = configuration.Value.GetBranchSpecificLabel(Context.CurrentBranch.Name, null, this.environment); - var baseVersionSource = taggedSemanticVersionService.GetTaggedSemanticVersions( + var baseVersionSource = this.taggedSemanticVersionService.GetTaggedSemanticVersions( branch: Context.CurrentBranch, configuration: Context.Configuration, label: label, @@ -41,7 +42,7 @@ private IEnumerable<BaseVersion> GetBaseVersionsInternal(EffectiveBranchConfigur taggedSemanticVersion: configuration.Value.GetTaggedSemanticVersion() ).Select(element => element.Key).FirstOrDefault(); - var increment = incrementStrategyFinder.DetermineIncrementedField( + var increment = this.incrementStrategyFinder.DetermineIncrementedField( currentCommit: Context.CurrentCommit, baseVersionSource: baseVersionSource, shouldIncrement: true, diff --git a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/IBaseVersion.cs b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/IBaseVersion.cs index d8c2c1c8f4..30cdf490f1 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/IBaseVersion.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/IBaseVersion.cs @@ -1,6 +1,11 @@ namespace GitVersion.VersionCalculation; +/// <summary>Represents a resolved base version that carries both a semantic version value and a pending increment.</summary> public interface IBaseVersion : IBaseVersionIncrement { + /// <summary>Gets the discovered base semantic version.</summary> SemanticVersion SemanticVersion { get; } + + /// <summary>Gets the version field that will be incremented to produce the next version.</summary> + VersionField Increment { get; } } diff --git a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/IBaseVersionIncrement.cs b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/IBaseVersionIncrement.cs index 02f53b7cd1..296b65c491 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/IBaseVersionIncrement.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/IBaseVersionIncrement.cs @@ -2,9 +2,12 @@ namespace GitVersion.VersionCalculation; +/// <summary>Base interface for types that describe a version increment: a source description and the commit that anchors the calculation.</summary> public interface IBaseVersionIncrement { + /// <summary>Gets a human-readable description of the strategy or artifact that produced this increment.</summary> string Source { get; } + /// <summary>Gets the commit that the base version was derived from, or <see langword="null"/> when the version has an external source.</summary> ICommit? BaseVersionSource { get; } } diff --git a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/MainlineVersionStrategy.cs b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/MainlineVersionStrategy.cs index a1909b8362..03c45abc5a 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/MainlineVersionStrategy.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/MainlineVersionStrategy.cs @@ -1,6 +1,4 @@ -using GitVersion.Common; using GitVersion.Configuration; -using GitVersion.Core; using GitVersion.Extensions; using GitVersion.Git; using GitVersion.VersionCalculation.Mainline; @@ -13,7 +11,8 @@ internal sealed class MainlineVersionStrategy( Lazy<GitVersionContext> contextLazy, IRepositoryStore repositoryStore, ITaggedSemanticVersionService taggedSemanticVersionService, - IIncrementStrategyFinder incrementStrategyFinder) + IIncrementStrategyFinder incrementStrategyFinder, + IEnvironment environment) : IVersionStrategy { private volatile int iterationCounter; @@ -21,8 +20,10 @@ internal sealed class MainlineVersionStrategy( private readonly ITaggedSemanticVersionService taggedSemanticVersionService = taggedSemanticVersionService.NotNull(); private readonly IRepositoryStore repositoryStore = repositoryStore.NotNull(); private readonly IIncrementStrategyFinder incrementStrategyFinder = incrementStrategyFinder.NotNull(); + private readonly IEnvironment environment = environment.NotNull(); + private readonly Dictionary<string, Dictionary<ICommit, List<(IBranch, IBranchConfiguration)>>> commitsWasBranchedFromCache = new(); - private GitVersionContext Context => contextLazy.Value; + private GitVersionContext Context => this.contextLazy.Value; private static readonly IReadOnlyCollection<IContextPreEnricher> TrunkContextPreEnricherCollection = [ @@ -94,14 +95,14 @@ public IEnumerable<BaseVersion> GetBaseVersions(EffectiveBranchConfiguration con { taggedSemanticVersion |= TaggedSemanticVersions.OfMainBranches; } - var taggedSemanticVersions = taggedSemanticVersionService.GetTaggedSemanticVersions( + var taggedSemanticVersions = this.taggedSemanticVersionService.GetTaggedSemanticVersions( branch: Context.CurrentBranch, configuration: Context.Configuration, label: null, notOlderThan: Context.CurrentCommit.When, taggedSemanticVersion: taggedSemanticVersion ); - var targetLabel = configuration.Value.GetBranchSpecificLabel(Context.CurrentBranch.Name, null); + var targetLabel = configuration.Value.GetBranchSpecificLabel(Context.CurrentBranch.Name, null, this.environment); IterateOverCommitsRecursive( commitsInReverseOrder: commitsInReverseOrder, iteration: iteration, @@ -110,14 +111,14 @@ public IEnumerable<BaseVersion> GetBaseVersions(EffectiveBranchConfiguration con taggedSemanticVersions: taggedSemanticVersions ); - yield return DetermineBaseVersion(iteration, targetLabel, incrementStrategyFinder, Context.Configuration); + yield return DetermineBaseVersion(iteration, targetLabel, this.incrementStrategyFinder, Context.Configuration, this.environment); } private MainlineIteration CreateIteration( ReferenceName branchName, IBranchConfiguration configuration, MainlineIteration? parentIteration = null, MainlineCommit? parentCommit = null) { - var iterationCount = Interlocked.Increment(ref iterationCounter); + var iterationCount = Interlocked.Increment(ref this.iterationCounter); return new MainlineIteration( id: $"#{iterationCount}", branchName: branchName, @@ -137,7 +138,7 @@ private bool IterateOverCommitsRecursive( var configuration = iteration.Configuration; var branchName = iteration.BranchName; - var branch = repositoryStore.FindBranch(branchName); + var branch = this.repositoryStore.FindBranch(branchName); var currentBranch = branch; Lazy<IReadOnlyDictionary<ICommit, List<(IBranch Branch, IBranchConfiguration Value)>>> commitsWasBranchedFromLazy = new( @@ -164,7 +165,7 @@ private bool IterateOverCommitsRecursive( configuration = effectiveConfigurationWasBranchedFrom.Value; branchName = effectiveConfigurationWasBranchedFrom.Branch.Name; - branch = repositoryStore.FindBranch(branchName); + branch = this.repositoryStore.FindBranch(branchName); var branchPointer = branch; commitsWasBranchedFromLazy = new Lazy<IReadOnlyDictionary<ICommit, List<(IBranch Branch, IBranchConfiguration Configuration)>>> @@ -185,7 +186,7 @@ private bool IterateOverCommitsRecursive( { taggedSemanticVersion |= TaggedSemanticVersions.OfMainBranches; } - taggedSemanticVersions = taggedSemanticVersionService.GetTaggedSemanticVersions( + taggedSemanticVersions = this.taggedSemanticVersionService.GetTaggedSemanticVersions( branch: effectiveConfigurationWasBranchedFrom.Branch, configuration: Context.Configuration, label: null, @@ -203,7 +204,7 @@ private bool IterateOverCommitsRecursive( var label = targetLabel ?? new EffectiveConfiguration( configuration: Context.Configuration, branchConfiguration: configuration - ).GetBranchSpecificLabel(branchName, null); + ).GetBranchSpecificLabel(branchName, null, this.environment); foreach (var semanticVersion in semanticVersions) { @@ -221,7 +222,7 @@ private bool IterateOverCommitsRecursive( return true; } - if (!item.IsMergeCommit()) continue; + if (!item.IsMergeCommit) continue; Lazy<IReadOnlyCollection<ICommit>> mergedCommitsInReverseOrderLazy = new( () => [.. this.incrementStrategyFinder.GetMergedCommits(item, 1, Context.Configuration.Ignore).Reverse()] ); @@ -232,40 +233,42 @@ private bool IterateOverCommitsRecursive( continue; } - if (mergeMessage.MergedBranch is not null) + if (mergeMessage.MergedBranch is null || mergeMessage.MergedBranch.EquivalentTo(branchName.WithoutOrigin)) { - var childConfiguration = Context.Configuration.GetBranchConfiguration(mergeMessage.MergedBranch); - var childBranchName = mergeMessage.MergedBranch; + continue; + } - if (childConfiguration.IsMainBranch == true) - { - if (configuration.IsMainBranch == true) throw new NotImplementedException(); + var childConfiguration = Context.Configuration.GetBranchConfiguration(mergeMessage.MergedBranch); + var childBranchName = mergeMessage.MergedBranch; - mergedCommitsInReverseOrderLazy = new( - () => [.. this.incrementStrategyFinder.GetMergedCommits(item, 0, Context.Configuration.Ignore).Reverse()] - ); - childConfiguration = configuration; - childBranchName = iteration.BranchName; - } + if (childConfiguration.IsMainBranch == true) + { + if (configuration.IsMainBranch == true) throw new NotImplementedException(); - var childIteration = CreateIteration( - branchName: childBranchName, - configuration: childConfiguration, - parentIteration: iteration, - parentCommit: commit + mergedCommitsInReverseOrderLazy = new( + () => [.. this.incrementStrategyFinder.GetMergedCommits(item, 0, Context.Configuration.Ignore).Reverse()] ); + childConfiguration = configuration; + childBranchName = iteration.BranchName; + } + + var childIteration = CreateIteration( + branchName: childBranchName, + configuration: childConfiguration, + parentIteration: iteration, + parentCommit: commit + ); - var done = IterateOverCommitsRecursive( - commitsInReverseOrder: mergedCommitsInReverseOrderLazy.Value, - iteration: childIteration, - targetBranch: targetBranch, - targetLabel: targetLabel, - taggedSemanticVersions: taggedSemanticVersions, - traversedCommits: traversedCommits); + var done = IterateOverCommitsRecursive( + commitsInReverseOrder: mergedCommitsInReverseOrderLazy.Value, + iteration: childIteration, + targetBranch: targetBranch, + targetLabel: targetLabel, + taggedSemanticVersions: taggedSemanticVersions, + traversedCommits: traversedCommits); - commit.AddChildIteration(childIteration); - if (done) return true; - } + commit.AddChildIteration(childIteration); + if (done) return true; traversedCommits.AddRange(mergedCommitsInReverseOrderLazy.Value); } @@ -275,9 +278,18 @@ private bool IterateOverCommitsRecursive( private Dictionary<ICommit, List<(IBranch, IBranchConfiguration)>> GetCommitsWasBranchedFrom( IBranch branch, params IBranch[] excludedBranches) { + // Create cache key from canonical branch name and canonical excluded branch names + var cacheKey = $"{branch.Name.Canonical}|{string.Join(",", excludedBranches.Select(b => b.Name.Canonical).OrderBy(n => n))}"; + + // Return cached result if available + if (this.commitsWasBranchedFromCache.TryGetValue(cacheKey, out var cachedResult)) + { + return cachedResult; + } + Dictionary<ICommit, List<(IBranch, IBranchConfiguration Configuration)>> result = []; - var branchCommits = repositoryStore.FindCommitBranchesBranchedFrom( + var branchCommits = this.repositoryStore.FindCommitBranchesBranchedFrom( branch, Context.Configuration, excludedBranches: excludedBranches ).ToList(); @@ -296,8 +308,9 @@ private bool IterateOverCommitsRecursive( throw new InvalidOperationException(); } - if ((branchConfiguration.IsMainBranch ?? Context.Configuration.IsMainBranch) != true) continue; - foreach (var _ in value.ToArray()) + // Fix: Just add the item once instead of duplicating for each existing item + // The original logic caused exponential growth: 1→2→4→8→16 with multiple branches + if ((branchConfiguration.IsMainBranch ?? Context.Configuration.IsMainBranch).GetValueOrDefault()) { value.Add(new(item, branchConfiguration)); } @@ -313,19 +326,23 @@ private bool IterateOverCommitsRecursive( { result[item.Key] = [.. item.Value.OrderByDescending(element => (element.Configuration.IsMainBranch ?? Context.Configuration.IsMainBranch) == true)]; } + + // Cache the result for future calls + this.commitsWasBranchedFromCache[cacheKey] = result; + return result; } private static BaseVersion DetermineBaseVersion(MainlineIteration iteration, string? targetLabel, - IIncrementStrategyFinder incrementStrategyFinder, IGitVersionConfiguration configuration) - => DetermineBaseVersionRecursive(iteration, targetLabel, incrementStrategyFinder, configuration); + IIncrementStrategyFinder incrementStrategyFinder, IGitVersionConfiguration configuration, IEnvironment environment) + => DetermineBaseVersionRecursive(iteration, targetLabel, incrementStrategyFinder, configuration, environment); internal static BaseVersion DetermineBaseVersionRecursive(MainlineIteration iteration, string? targetLabel, - IIncrementStrategyFinder incrementStrategyFinder, IGitVersionConfiguration configuration) + IIncrementStrategyFinder incrementStrategyFinder, IGitVersionConfiguration configuration, IEnvironment environment) { iteration.NotNull(); - var incrementSteps = GetIncrements(iteration, targetLabel, incrementStrategyFinder, configuration).ToArray(); + var incrementSteps = GetIncrements(iteration, targetLabel, incrementStrategyFinder, configuration, environment).ToArray(); BaseVersion? result = null; foreach (var baseVersionIncrement in incrementSteps) @@ -348,9 +365,9 @@ internal static BaseVersion DetermineBaseVersionRecursive(MainlineIteration iter } private static IEnumerable<IBaseVersionIncrement> GetIncrements(MainlineIteration iteration, string? targetLabel, - IIncrementStrategyFinder incrementStrategyFinder, IGitVersionConfiguration configuration) + IIncrementStrategyFinder incrementStrategyFinder, IGitVersionConfiguration configuration, IEnvironment environment) { - MainlineContext context = new(incrementStrategyFinder, configuration) + MainlineContext context = new(incrementStrategyFinder, configuration, environment) { TargetLabel = targetLabel }; diff --git a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/MergeMessageVersionStrategy.cs b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/MergeMessageVersionStrategy.cs index 8731031a8d..d90485bb18 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/MergeMessageVersionStrategy.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/MergeMessageVersionStrategy.cs @@ -1,7 +1,5 @@ -using GitVersion.Common; using GitVersion.Configuration; using GitVersion.Extensions; -using GitVersion.Git; using GitVersion.Logging; namespace GitVersion.VersionCalculation; @@ -12,15 +10,16 @@ namespace GitVersion.VersionCalculation; /// Increments if PreventIncrementOfMergedBranchVersion (from the branch configuration) is false. /// </summary> internal sealed class MergeMessageVersionStrategy(ILog log, Lazy<GitVersionContext> contextLazy, - IRepositoryStore repositoryStore, IIncrementStrategyFinder incrementStrategyFinder) + IRepositoryStore repositoryStore, IIncrementStrategyFinder incrementStrategyFinder, IEnvironment environment) : IVersionStrategy { private readonly ILog log = log.NotNull(); private readonly Lazy<GitVersionContext> contextLazy = contextLazy.NotNull(); private readonly IRepositoryStore repositoryStore = repositoryStore.NotNull(); private readonly IIncrementStrategyFinder incrementStrategyFinder = incrementStrategyFinder.NotNull(); + private readonly IEnvironment environment = environment.NotNull(); - private GitVersionContext Context => contextLazy.Value; + private GitVersionContext Context => this.contextLazy.Value; public IEnumerable<BaseVersion> GetBaseVersions(EffectiveBranchConfiguration configuration) => GetBaseVersionsInternal(configuration).Take(5); @@ -47,12 +46,12 @@ private IEnumerable<BaseVersion> GetBaseVersionsInternal(EffectiveBranchConfigur this.log.Info($"Found commit [{commit}] matching merge message format: {mergeMessage.FormatName}"); var baseVersionSource = commit; - if (commit.IsMergeCommit()) + if (commit.IsMergeCommit) { baseVersionSource = this.repositoryStore.FindMergeBase(commit.Parents[0], commit.Parents[1]); } - var label = configuration.Value.GetBranchSpecificLabel(Context.CurrentBranch.Name, null); + var label = configuration.Value.GetBranchSpecificLabel(Context.CurrentBranch.Name, null, this.environment); var increment = configuration.Value.PreventIncrementOfMergedBranch ? VersionField.None : this.incrementStrategyFinder.DetermineIncrementedField( currentCommit: Context.CurrentCommit, diff --git a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/TaggedCommitVersionStrategy.cs b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/TaggedCommitVersionStrategy.cs index 4e08eef9c8..6ec001bca8 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/TaggedCommitVersionStrategy.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/TaggedCommitVersionStrategy.cs @@ -1,5 +1,4 @@ using GitVersion.Configuration; -using GitVersion.Core; using GitVersion.Extensions; using GitVersion.Logging; @@ -14,15 +13,17 @@ internal sealed class TaggedCommitVersionStrategy( ILog log, Lazy<GitVersionContext> contextLazy, ITaggedSemanticVersionService taggedSemanticVersionService, - IIncrementStrategyFinder incrementStrategyFinder) + IIncrementStrategyFinder incrementStrategyFinder, + IEnvironment environment) : IVersionStrategy { private readonly ILog log = log.NotNull(); private readonly ITaggedSemanticVersionService taggedSemanticVersionService = taggedSemanticVersionService.NotNull(); private readonly Lazy<GitVersionContext> contextLazy = contextLazy.NotNull(); private readonly IIncrementStrategyFinder incrementStrategyFinder = incrementStrategyFinder.NotNull(); + private readonly IEnvironment environment = environment.NotNull(); - private GitVersionContext Context => contextLazy.Value; + private GitVersionContext Context => this.contextLazy.Value; public IEnumerable<BaseVersion> GetBaseVersions(EffectiveBranchConfiguration configuration) => GetBaseVersionsInternal(configuration); @@ -34,7 +35,7 @@ private IEnumerable<BaseVersion> GetBaseVersionsInternal(EffectiveBranchConfigur if (!Context.Configuration.VersionStrategy.HasFlag(VersionStrategies.TaggedCommit)) yield break; - var taggedSemanticVersions = taggedSemanticVersionService.GetTaggedSemanticVersions( + var taggedSemanticVersions = this.taggedSemanticVersionService.GetTaggedSemanticVersions( branch: Context.CurrentBranch, configuration: Context.Configuration, label: null, @@ -42,7 +43,7 @@ private IEnumerable<BaseVersion> GetBaseVersionsInternal(EffectiveBranchConfigur taggedSemanticVersion: configuration.Value.GetTaggedSemanticVersion() ).SelectMany(elements => elements).Distinct().ToArray(); - var label = configuration.Value.GetBranchSpecificLabel(Context.CurrentBranch.Name, null); + var label = configuration.Value.GetBranchSpecificLabel(Context.CurrentBranch.Name, null, this.environment); var semanticVersionTreshold = SemanticVersion.Empty; List<SemanticVersionWithTag> alternativeSemanticVersionsWithTag = []; @@ -68,7 +69,7 @@ private IEnumerable<BaseVersion> GetBaseVersionsInternal(EffectiveBranchConfigur } var baseVersionSource = semanticVersion.Tag.Commit; - var increment = incrementStrategyFinder.DetermineIncrementedField( + var increment = this.incrementStrategyFinder.DetermineIncrementedField( currentCommit: Context.CurrentCommit, baseVersionSource: baseVersionSource, shouldIncrement: true, diff --git a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/TrackReleaseBranchesVersionStrategy.cs b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/TrackReleaseBranchesVersionStrategy.cs index 75dc51146e..7ee57f9abc 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/TrackReleaseBranchesVersionStrategy.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/TrackReleaseBranchesVersionStrategy.cs @@ -1,7 +1,5 @@ using System.Diagnostics.CodeAnalysis; -using GitVersion.Common; using GitVersion.Configuration; -using GitVersion.Core; using GitVersion.Extensions; using GitVersion.Git; @@ -11,16 +9,18 @@ internal sealed class TrackReleaseBranchesVersionStrategy( Lazy<GitVersionContext> contextLazy, IRepositoryStore repositoryStore, IBranchRepository branchRepository, - IIncrementStrategyFinder incrementStrategyFinder) + IIncrementStrategyFinder incrementStrategyFinder, + IEnvironment environment) : IVersionStrategy { private readonly Lazy<GitVersionContext> contextLazy = contextLazy.NotNull(); private readonly IRepositoryStore repositoryStore = repositoryStore.NotNull(); private readonly IBranchRepository branchRepository = branchRepository.NotNull(); private readonly IIncrementStrategyFinder incrementStrategyFinder = incrementStrategyFinder.NotNull(); - private readonly VersionInBranchNameVersionStrategy releaseVersionStrategy = new(contextLazy); + private readonly IEnvironment environment = environment.NotNull(); + private readonly VersionInBranchNameVersionStrategy releaseVersionStrategy = new(contextLazy, environment); - private GitVersionContext Context => contextLazy.Value; + private GitVersionContext Context => this.contextLazy.Value; public IEnumerable<BaseVersion> GetBaseVersions(EffectiveBranchConfiguration configuration) { @@ -48,7 +48,7 @@ private bool TryGetBaseVersion( if (!this.releaseVersionStrategy.TryGetBaseVersion(releaseBranchConfiguration, out var baseVersion)) return result is not null; // Find the commit where the child branch was created. var baseVersionSource = this.repositoryStore.FindMergeBase(releaseBranch, Context.CurrentBranch); - var label = configuration.Value.GetBranchSpecificLabel(Context.CurrentBranch.Name, null); + var label = configuration.Value.GetBranchSpecificLabel(Context.CurrentBranch.Name, null, this.environment); var increment = this.incrementStrategyFinder.DetermineIncrementedField( currentCommit: Context.CurrentCommit, baseVersionSource: baseVersionSource, diff --git a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/VersionInBranchNameVersionStrategy.cs b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/VersionInBranchNameVersionStrategy.cs index 67de10087a..5584345a53 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/VersionInBranchNameVersionStrategy.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/VersionInBranchNameVersionStrategy.cs @@ -9,11 +9,12 @@ namespace GitVersion.VersionCalculation; /// BaseVersionSource is the commit where the branch was branched from its parent. /// Does not increment. /// </summary> -internal sealed class VersionInBranchNameVersionStrategy(Lazy<GitVersionContext> contextLazy) : IVersionStrategy +internal sealed class VersionInBranchNameVersionStrategy(Lazy<GitVersionContext> contextLazy, IEnvironment environment) : IVersionStrategy { private readonly Lazy<GitVersionContext> contextLazy = contextLazy.NotNull(); + private readonly IEnvironment environment = environment.NotNull(); - private GitVersionContext Context => contextLazy.Value; + private GitVersionContext Context => this.contextLazy.Value; public IEnumerable<BaseVersion> GetBaseVersions(EffectiveBranchConfiguration configuration) { @@ -35,7 +36,7 @@ public bool TryGetBaseVersion(EffectiveBranchConfiguration configuration, [NotNu foreach (var branch in new[] { Context.CurrentBranch, configuration.Branch }) { - if (!branch.Name.TryGetSemanticVersion(out var result, configuration.Value)) continue; + if (!branch.Name.TryGetSemanticVersion(configuration.Value, out var result)) continue; string? branchNameOverride = null; if (!result.Name.IsNullOrEmpty() && (Context.CurrentBranch.Name.Equals(branch.Name) || Context.Configuration.GetBranchConfiguration(Context.CurrentBranch.Name).Label is null)) @@ -43,7 +44,7 @@ public bool TryGetBaseVersion(EffectiveBranchConfiguration configuration, [NotNu branchNameOverride = result.Name; } - var label = configuration.Value.GetBranchSpecificLabel(Context.CurrentBranch.Name, branchNameOverride); + var label = configuration.Value.GetBranchSpecificLabel(Context.CurrentBranch.Name, branchNameOverride, this.environment); baseVersion = new BaseVersion("Version in branch name", result.Value) { diff --git a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/VersionStrategyModule.cs b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/VersionStrategyModule.cs index 23d0580365..ff80c48871 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/VersionStrategyModule.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/VersionStrategyModule.cs @@ -1,9 +1,9 @@ -using Microsoft.Extensions.DependencyInjection; - namespace GitVersion.VersionCalculation; +/// <summary>Automatically discovers and registers all concrete <see cref="IVersionStrategy"/> implementations found in the current assembly.</summary> public class VersionStrategyModule : IGitVersionModule { + /// <summary>Scans the assembly for <see cref="IVersionStrategy"/> implementations and registers each as a singleton.</summary> public void RegisterTypes(IServiceCollection services) { var versionStrategies = IGitVersionModule.FindAllDerivedTypes<IVersionStrategy>(Assembly.GetAssembly(GetType())) diff --git a/src/GitVersion.Core/VersionCalculation/VersionStrategies.cs b/src/GitVersion.Core/VersionCalculation/VersionStrategies.cs index 4fe020c87a..c8c7d9307f 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionStrategies.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionStrategies.cs @@ -1,14 +1,30 @@ namespace GitVersion.VersionCalculation; +/// <summary>A bitmask that enables or disables individual version-discovery strategies.</summary> [Flags] public enum VersionStrategies { + /// <summary>No strategies are enabled.</summary> None = 0, + + /// <summary>Uses a fallback version (typically <c>0.1.0</c>) when no other strategy finds a version.</summary> Fallback = 1, + + /// <summary>Uses the <c>next-version</c> value from the configuration file.</summary> ConfiguredNextVersion = 2, + + /// <summary>Extracts the version from merge commit messages.</summary> MergeMessage = 4, + + /// <summary>Uses the most recent version tag reachable from the current commit.</summary> TaggedCommit = 8, + + /// <summary>Tracks the version from related release branches.</summary> TrackReleaseBranches = 16, + + /// <summary>Extracts the version embedded in the branch name.</summary> VersionInBranchName = 32, + + /// <summary>Uses the mainline development strategy to calculate the version from the commit graph.</summary> Mainline = 64 } diff --git a/src/GitVersion.LibGit2Sharp/Git/Commit.cs b/src/GitVersion.LibGit2Sharp/Git/Commit.cs index f7c59ed5eb..15286b54fd 100644 --- a/src/GitVersion.LibGit2Sharp/Git/Commit.cs +++ b/src/GitVersion.LibGit2Sharp/Git/Commit.cs @@ -33,14 +33,16 @@ internal Commit(LibGit2Sharp.Commit innerCommit, LibGit2Sharp.Diff repoDiff, Git public string Sha { get; } public DateTimeOffset When { get; } public string Message => this.innerCommit.Message; + public bool IsMergeCommit => Parents.Count >= 2; + public IReadOnlyList<string> DiffPaths { get { - if (!pathsCache.TryGetValue(this.Sha, out var paths)) + if (!pathsCache.TryGetValue(Sha, out var paths)) { - paths = this.CommitChanges.Paths; - pathsCache[this.Sha] = paths; + paths = CommitChanges.Paths; + pathsCache[Sha] = paths; } return paths; } diff --git a/src/GitVersion.LibGit2Sharp/Git/GitRepositoryCache.cs b/src/GitVersion.LibGit2Sharp/Git/GitRepositoryCache.cs index 8d8eba006b..01fe95c837 100644 --- a/src/GitVersion.LibGit2Sharp/Git/GitRepositoryCache.cs +++ b/src/GitVersion.LibGit2Sharp/Git/GitRepositoryCache.cs @@ -17,21 +17,21 @@ public Branch GetOrWrap(LibGit2Sharp.Branch innerBranch, Diff repoDiff) var cacheKey = innerBranch.Tip is null ? $"{innerBranch.RemoteName}/{innerBranch.CanonicalName}" : $"{innerBranch.RemoteName}/{innerBranch.CanonicalName}@{innerBranch.Tip.Sha}"; - return cachedBranches.GetOrAdd(cacheKey, _ => new Branch(innerBranch, repoDiff, this)); + return this.cachedBranches.GetOrAdd(cacheKey, _ => new Branch(innerBranch, repoDiff, this)); } public Commit GetOrWrap(LibGit2Sharp.Commit innerCommit, Diff repoDiff) - => cachedCommits.GetOrAdd(innerCommit.Sha, _ => new Commit(innerCommit, repoDiff, this)); + => this.cachedCommits.GetOrAdd(innerCommit.Sha, _ => new Commit(innerCommit, repoDiff, this)); public Tag GetOrWrap(LibGit2Sharp.Tag innerTag, Diff repoDiff) - => cachedTags.GetOrAdd(innerTag.CanonicalName, _ => new Tag(innerTag, repoDiff, this)); + => this.cachedTags.GetOrAdd(innerTag.CanonicalName, _ => new Tag(innerTag, repoDiff, this)); public Remote GetOrWrap(LibGit2Sharp.Remote innerRemote) - => cachedRemotes.GetOrAdd(innerRemote.Name, _ => new Remote(innerRemote, this)); + => this.cachedRemotes.GetOrAdd(innerRemote.Name, _ => new Remote(innerRemote, this)); public Reference GetOrWrap(LibGit2Sharp.Reference innerReference) - => cachedReferences.GetOrAdd(innerReference.CanonicalName, _ => new Reference(innerReference)); + => this.cachedReferences.GetOrAdd(innerReference.CanonicalName, _ => new Reference(innerReference)); public RefSpec GetOrWrap(LibGit2Sharp.RefSpec innerRefSpec) - => cachedRefSpecs.GetOrAdd(innerRefSpec.Specification, _ => new RefSpec(innerRefSpec)); + => this.cachedRefSpecs.GetOrAdd(innerRefSpec.Specification, _ => new RefSpec(innerRefSpec)); } diff --git a/src/GitVersion.LibGit2Sharp/Git/GitRepositoryInfo.cs b/src/GitVersion.LibGit2Sharp/Git/GitRepositoryInfo.cs index 44a58b6485..756951afcf 100644 --- a/src/GitVersion.LibGit2Sharp/Git/GitRepositoryInfo.cs +++ b/src/GitVersion.LibGit2Sharp/Git/GitRepositoryInfo.cs @@ -2,7 +2,6 @@ using GitVersion.Extensions; using GitVersion.Helpers; using LibGit2Sharp; -using Microsoft.Extensions.Options; namespace GitVersion.Git; @@ -34,7 +33,7 @@ public GitRepositoryInfo(IFileSystem fileSystem, IOptions<GitVersionOptions> opt private string? GetDynamicGitRepositoryPath() { - var repositoryInfo = gitVersionOptions.RepositoryInfo; + var repositoryInfo = this.gitVersionOptions.RepositoryInfo; if (repositoryInfo.TargetUrl.IsNullOrWhiteSpace()) return null; var targetUrl = repositoryInfo.TargetUrl; @@ -65,7 +64,7 @@ public GitRepositoryInfo(IFileSystem fileSystem, IOptions<GitVersionOptions> opt { var gitDirectory = !DynamicGitRepositoryPath.IsNullOrWhiteSpace() ? DynamicGitRepositoryPath - : Repository.Discover(gitVersionOptions.WorkingDirectory); + : Repository.Discover(this.gitVersionOptions.WorkingDirectory); gitDirectory = gitDirectory?.TrimEnd('/', '\\'); if (gitDirectory.IsNullOrEmpty()) @@ -81,10 +80,10 @@ private string GetProjectRootDirectory() { if (!DynamicGitRepositoryPath.IsNullOrWhiteSpace()) { - return gitVersionOptions.WorkingDirectory; + return this.gitVersionOptions.WorkingDirectory; } - var gitDirectory = Repository.Discover(gitVersionOptions.WorkingDirectory); + var gitDirectory = Repository.Discover(this.gitVersionOptions.WorkingDirectory); if (gitDirectory.IsNullOrEmpty()) throw new DirectoryNotFoundException("Cannot find the .git directory"); diff --git a/src/GitVersion.LibGit2Sharp/Git/ReferenceCollection.cs b/src/GitVersion.LibGit2Sharp/Git/ReferenceCollection.cs index 5e0b795cd3..6eed74bf4d 100644 --- a/src/GitVersion.LibGit2Sharp/Git/ReferenceCollection.cs +++ b/src/GitVersion.LibGit2Sharp/Git/ReferenceCollection.cs @@ -50,5 +50,5 @@ public void UpdateTarget(IReference directRef, IObjectId targetId) => }); private void InitializeReferencesLazy() - => this.references = new Lazy<IReadOnlyCollection<IReference>>(() => [.. this.innerCollection.Select(repositoryCache.GetOrWrap)]); + => this.references = new Lazy<IReadOnlyCollection<IReference>>(() => [.. this.innerCollection.Select(this.repositoryCache.GetOrWrap)]); } diff --git a/src/GitVersion.LibGit2Sharp/Git/RemoteCollection.cs b/src/GitVersion.LibGit2Sharp/Git/RemoteCollection.cs index c63f135823..01c9f2fbb9 100644 --- a/src/GitVersion.LibGit2Sharp/Git/RemoteCollection.cs +++ b/src/GitVersion.LibGit2Sharp/Git/RemoteCollection.cs @@ -43,5 +43,5 @@ public void Update(string remoteName, string refSpec) => }); private void InitializeRemotesLazy() - => this.remotes = new Lazy<IReadOnlyCollection<IRemote>>(() => [.. this.innerCollection.Select(repositoryCache.GetOrWrap)]); + => this.remotes = new Lazy<IReadOnlyCollection<IRemote>>(() => [.. this.innerCollection.Select(this.repositoryCache.GetOrWrap)]); } diff --git a/src/GitVersion.LibGit2Sharp/GitVersionLibGit2SharpModule.cs b/src/GitVersion.LibGit2Sharp/GitVersionLibGit2SharpModule.cs index 317a3a3af2..9afe62f13b 100644 --- a/src/GitVersion.LibGit2Sharp/GitVersionLibGit2SharpModule.cs +++ b/src/GitVersion.LibGit2Sharp/GitVersionLibGit2SharpModule.cs @@ -1,5 +1,4 @@ using GitVersion.Git; -using Microsoft.Extensions.DependencyInjection; namespace GitVersion; diff --git a/src/GitVersion.LibGit2Sharp/LibGit2SharpExtensions.cs b/src/GitVersion.LibGit2Sharp/LibGit2SharpExtensions.cs index 727e2c1fca..c2469a1eee 100644 --- a/src/GitVersion.LibGit2Sharp/LibGit2SharpExtensions.cs +++ b/src/GitVersion.LibGit2Sharp/LibGit2SharpExtensions.cs @@ -6,10 +6,13 @@ namespace GitVersion; public static class LibGit2SharpExtensions { - public static IGitRepository ToGitRepository(this IRepository repository) + extension(IRepository repository) { - var gitRepository = new GitRepository(new NullLog()); - gitRepository.DiscoverRepository(repository.Info.Path); - return gitRepository; + public IGitRepository ToGitRepository() + { + var gitRepository = new GitRepository(new NullLog()); + gitRepository.DiscoverRepository(repository.Info.Path); + return gitRepository; + } } } diff --git a/src/GitVersion.LibGit2Sharp/PublicAPI.Shipped.txt b/src/GitVersion.LibGit2Sharp/PublicAPI.Shipped.txt index 8a22a02e1b..7394ddfbb0 100644 --- a/src/GitVersion.LibGit2Sharp/PublicAPI.Shipped.txt +++ b/src/GitVersion.LibGit2Sharp/PublicAPI.Shipped.txt @@ -9,4 +9,6 @@ GitVersion.GitVersionLibGit2SharpModule GitVersion.GitVersionLibGit2SharpModule.GitVersionLibGit2SharpModule() -> void GitVersion.GitVersionLibGit2SharpModule.RegisterTypes(Microsoft.Extensions.DependencyInjection.IServiceCollection! services) -> void GitVersion.LibGit2SharpExtensions +GitVersion.LibGit2SharpExtensions.extension(LibGit2Sharp.IRepository!) +GitVersion.LibGit2SharpExtensions.extension(LibGit2Sharp.IRepository!).ToGitRepository() -> GitVersion.Git.IGitRepository! static GitVersion.LibGit2SharpExtensions.ToGitRepository(this LibGit2Sharp.IRepository! repository) -> GitVersion.Git.IGitRepository! diff --git a/src/GitVersion.MsBuild.Tests/AssemblyInfoFileHelperTests.cs b/src/GitVersion.MsBuild.Tests/AssemblyInfoFileHelperTests.cs index ddb4139b33..c10bebc401 100644 --- a/src/GitVersion.MsBuild.Tests/AssemblyInfoFileHelperTests.cs +++ b/src/GitVersion.MsBuild.Tests/AssemblyInfoFileHelperTests.cs @@ -16,7 +16,7 @@ public void GetFileExtensionShouldReturnCorrectExtension(string language, string } else { - Assert.That((TestDelegate)(() => AssemblyInfoFileHelper.GetFileExtension(language)), Throws.ArgumentException.With.Message.EqualTo($"Unknown language detected: '{language}'")); + Assert.That(() => AssemblyInfoFileHelper.GetFileExtension(language), Throws.ArgumentException.With.Message.EqualTo($"Unknown language detected: '{language}'")); } } diff --git a/src/GitVersion.MsBuild.Tests/GitVersion.MsBuild.Tests.csproj b/src/GitVersion.MsBuild.Tests/GitVersion.MsBuild.Tests.csproj index 50661ee216..e0f7f5cef9 100644 --- a/src/GitVersion.MsBuild.Tests/GitVersion.MsBuild.Tests.csproj +++ b/src/GitVersion.MsBuild.Tests/GitVersion.MsBuild.Tests.csproj @@ -1,10 +1,14 @@ <Project Sdk="Microsoft.NET.Sdk"> + <PropertyGroup> + <NoWarn>$(NoWarn);NU1903</NoWarn> + </PropertyGroup> + <ItemGroup> <PackageReference Include="Buildalyzer" /> <PackageReference Include="LibGit2Sharp" /> - <PackageReference Include="Microsoft.Bcl.AsyncInterfaces" /> <PackageReference Include="Microsoft.Build" /> + <PackageReference Include="Microsoft.Build.Tasks.Core" /> <PackageReference Include="Microsoft.Build.Utilities.Core" /> <PackageReference Include="Microsoft.CodeAnalysis.Common" /> <PackageReference Include="Microsoft.CodeAnalysis.CSharp" /> @@ -12,8 +16,6 @@ <PackageReference Include="Microsoft.Extensions.DependencyInjection" /> <PackageReference Include="Microsoft.IO.Redist" /> <PackageReference Include="MSBuild.ProjectCreation" /> - <PackageReference Include="System.Drawing.Common" /> - <PackageReference Include="System.Security.Cryptography.Xml" /> <PackageReference Include="System.Text.Json" /> </ItemGroup> diff --git a/src/GitVersion.MsBuild.Tests/Helpers/GitRepositoryTestingExtensions.cs b/src/GitVersion.MsBuild.Tests/Helpers/GitRepositoryTestingExtensions.cs deleted file mode 100644 index 068d0b0810..0000000000 --- a/src/GitVersion.MsBuild.Tests/Helpers/GitRepositoryTestingExtensions.cs +++ /dev/null @@ -1,43 +0,0 @@ -using GitVersion.Agents; -using GitVersion.Core.Tests.Helpers; -using GitVersion.Extensions; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Options; - -namespace GitVersion.MsBuild.Tests.Helpers; - -public static class GitRepositoryTestingExtensions -{ - /// <summary> - /// Simulates running on build server - /// </summary> - public static void InitializeRepo(this RemoteRepositoryFixture fixture) - { - var gitVersionOptions = new GitVersionOptions - { - WorkingDirectory = fixture.LocalRepositoryFixture.RepositoryPath - }; - var options = Options.Create(gitVersionOptions); - - var environment = new TestEnvironment(); - environment.SetEnvironmentVariable(AzurePipelines.EnvironmentVariableName, "true"); - - var serviceProvider = ConfigureServices(services => - { - services.AddSingleton(options); - services.AddSingleton(environment); - }); - - var gitPreparer = serviceProvider.GetRequiredService<IGitPreparer>(); - gitPreparer.Prepare(); - } - - private static ServiceProvider ConfigureServices(Action<IServiceCollection>? servicesOverrides = null) - { - var services = new ServiceCollection() - .AddModule(new GitVersionCoreTestModule()); - - servicesOverrides?.Invoke(services); - return services.BuildServiceProvider(); - } -} diff --git a/src/GitVersion.MsBuild.Tests/Helpers/MsBuildExeFixture.cs b/src/GitVersion.MsBuild.Tests/Helpers/MsBuildExeFixture.cs index 1d1c138d8c..98c4ae310d 100644 --- a/src/GitVersion.MsBuild.Tests/Helpers/MsBuildExeFixture.cs +++ b/src/GitVersion.MsBuild.Tests/Helpers/MsBuildExeFixture.cs @@ -1,7 +1,7 @@ using Buildalyzer; using Buildalyzer.Environment; -using GitVersion.Core.Tests; using GitVersion.Helpers; +using GitVersion.Tests; using Microsoft.Build.Framework; using Microsoft.Build.Logging; using Microsoft.Build.Utilities.ProjectCreation; @@ -18,13 +18,13 @@ public class MsBuildExeFixture public const string OutputTarget = "GitVersionOutput"; private readonly AnalyzerManager manager = new(); - private readonly string ProjectPath; + private readonly string projectPath; public MsBuildExeFixture(RepositoryFixtureBase fixture, string workingDirectory = "", string language = "C#") { var projectExtension = AssemblyInfoFileHelper.GetProjectExtension(language); this.fixture = fixture; - this.ProjectPath = FileSystemHelper.Path.Combine(workingDirectory, $"app.{projectExtension}"); + this.projectPath = FileSystemHelper.Path.Combine(workingDirectory, $"app.{projectExtension}"); var versionFile = FileSystemHelper.Path.Combine(workingDirectory, "gitversion.json"); @@ -33,7 +33,7 @@ public MsBuildExeFixture(RepositoryFixtureBase fixture, string workingDirectory public MsBuildExeFixtureResult Execute() { - var analyzer = this.manager.GetProject(this.ProjectPath); + var analyzer = this.manager.GetProject(this.projectPath); var output = new StringWriter(); analyzer.AddBuildLogger(new ConsoleLogger(LoggerVerbosity.Normal, output.Write, null, null)); @@ -54,7 +54,7 @@ public MsBuildExeFixtureResult Execute() return new MsBuildExeFixtureResult(this.fixture) { - ProjectPath = ProjectPath, + ProjectPath = this.projectPath, Output = output.ToString(), MsBuild = results }; @@ -62,7 +62,7 @@ public MsBuildExeFixtureResult Execute() public void CreateTestProject(Action<ProjectCreator> extendProject) { - var project = ProjectCreator.Templates.SdkCsproj(this.ProjectPath); + var project = ProjectCreator.Templates.SdkCsproj(this.projectPath); extendProject(project); project.Save(); diff --git a/src/GitVersion.MsBuild.Tests/Helpers/MsBuildExeFixtureResult.cs b/src/GitVersion.MsBuild.Tests/Helpers/MsBuildExeFixtureResult.cs index 02b7271a23..4a005cefdd 100644 --- a/src/GitVersion.MsBuild.Tests/Helpers/MsBuildExeFixtureResult.cs +++ b/src/GitVersion.MsBuild.Tests/Helpers/MsBuildExeFixtureResult.cs @@ -4,8 +4,8 @@ namespace GitVersion.MsBuild.Tests.Helpers; public sealed class MsBuildExeFixtureResult(IDisposable fixture) : IDisposable { - public IAnalyzerResults MsBuild { get; init; } - public string Output { get; init; } - public string ProjectPath { get; init; } + public required IAnalyzerResults MsBuild { get; init; } + public required string Output { get; init; } + public required string ProjectPath { get; init; } public void Dispose() => fixture.Dispose(); } diff --git a/src/GitVersion.MsBuild.Tests/Helpers/MsBuildTaskFixture.cs b/src/GitVersion.MsBuild.Tests/Helpers/MsBuildTaskFixture.cs index 3efac8d61d..73eea23c4a 100644 --- a/src/GitVersion.MsBuild.Tests/Helpers/MsBuildTaskFixture.cs +++ b/src/GitVersion.MsBuild.Tests/Helpers/MsBuildTaskFixture.cs @@ -1,7 +1,8 @@ using GitVersion.Agents; -using GitVersion.Core.Tests; using GitVersion.Helpers; +using GitVersion.MsBuild.Tasks; using GitVersion.MsBuild.Tests.Mocks; +using GitVersion.Tests; namespace GitVersion.MsBuild.Tests.Helpers; diff --git a/src/GitVersion.MsBuild.Tests/Helpers/MsBuildTaskFixtureResult.cs b/src/GitVersion.MsBuild.Tests/Helpers/MsBuildTaskFixtureResult.cs index e75a409360..56e8f73523 100644 --- a/src/GitVersion.MsBuild.Tests/Helpers/MsBuildTaskFixtureResult.cs +++ b/src/GitVersion.MsBuild.Tests/Helpers/MsBuildTaskFixtureResult.cs @@ -7,12 +7,12 @@ public sealed class MsBuildTaskFixtureResult<T>(IDisposable fixture) : IDisposab { public bool Success { get; init; } - public T Task { get; init; } + public required T Task { get; init; } public int Errors { get; init; } public int Warnings { get; set; } public int Messages { get; set; } - public string Log { get; init; } + public required string Log { get; init; } public void Dispose() => fixture.Dispose(); } diff --git a/src/GitVersion.MsBuild.Tests/InvalidFileCheckerTests.cs b/src/GitVersion.MsBuild.Tests/InvalidFileCheckerTests.cs index 3607471cd0..6555304558 100644 --- a/src/GitVersion.MsBuild.Tests/InvalidFileCheckerTests.cs +++ b/src/GitVersion.MsBuild.Tests/InvalidFileCheckerTests.cs @@ -1,17 +1,16 @@ using System.IO.Abstractions; -using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; using GitVersion.MsBuild.Tests.Mocks; -using Microsoft.Extensions.DependencyInjection; +using GitVersion.Tests; namespace GitVersion.MsBuild.Tests; [TestFixture] public class InvalidFileCheckerTests : TestBase { - private string projectDirectory; - private string projectFile; - private IFileSystem fileSystem; + private string projectDirectory = null!; + private string projectFile = null!; + private IFileSystem fileSystem = null!; [SetUp] public void CreateTemporaryProject() diff --git a/src/GitVersion.MsBuild.Tests/Mocks/MockEngine.cs b/src/GitVersion.MsBuild.Tests/Mocks/MockEngine.cs index 6e6a5671ed..bdd793ced3 100644 --- a/src/GitVersion.MsBuild.Tests/Mocks/MockEngine.cs +++ b/src/GitVersion.MsBuild.Tests/Mocks/MockEngine.cs @@ -96,7 +96,7 @@ public BuildEngineResult BuildProjectFilesInParallel( IDictionary[] globalProperties, IList<string>[] removeGlobalProperties, string[] toolsVersion, - bool returnTargetOutputs) => new(false, null); + bool returnTargetOutputs) => new(false, []); public void Yield() { diff --git a/src/GitVersion.MsBuild.Tests/Mocks/MockTaskItem.cs b/src/GitVersion.MsBuild.Tests/Mocks/MockTaskItem.cs index 68aee512ec..497f605281 100644 --- a/src/GitVersion.MsBuild.Tests/Mocks/MockTaskItem.cs +++ b/src/GitVersion.MsBuild.Tests/Mocks/MockTaskItem.cs @@ -4,11 +4,11 @@ namespace GitVersion.MsBuild.Tests.Mocks; internal class MockTaskItem : ITaskItem { - public string ItemSpec { get; set; } + public string ItemSpec { get; set; } = null!; public int MetadataCount { get; set; } - public ICollection MetadataNames { get; set; } + public ICollection MetadataNames { get; set; } = null!; public IDictionary CloneCustomMetadata() => throw new NotImplementedException(); diff --git a/src/GitVersion.MsBuild.Tests/Tasks/GenerateGitVersionInformationTest.cs b/src/GitVersion.MsBuild.Tests/Tasks/GenerateGitVersionInformationTest.cs index 5119afdb0f..7d22a25af2 100644 --- a/src/GitVersion.MsBuild.Tests/Tasks/GenerateGitVersionInformationTest.cs +++ b/src/GitVersion.MsBuild.Tests/Tasks/GenerateGitVersionInformationTest.cs @@ -345,7 +345,6 @@ private static ProjectCreator AddGenerateGitVersionInformationTask(ProjectCreato { var assemblyFileLocation = typeof(GitVersionTaskBase).Assembly.Location; return project.UsingTaskAssemblyFile(taskName, assemblyFileLocation) - .Property("ManagePackageVersionsCentrally", "false") .Property("GenerateAssemblyInfo", "false") .Property("Language", language) .Target(targetToRun, beforeTargets: "CoreCompile;GetAssemblyVersion;GenerateNuspec") diff --git a/src/GitVersion.MsBuild.Tests/Tasks/TestTaskBase.cs b/src/GitVersion.MsBuild.Tests/Tasks/TestTaskBase.cs index c0c7999983..494ef739b6 100644 --- a/src/GitVersion.MsBuild.Tests/Tasks/TestTaskBase.cs +++ b/src/GitVersion.MsBuild.Tests/Tasks/TestTaskBase.cs @@ -1,18 +1,19 @@ using System.IO.Abstractions; using GitVersion.Agents; using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; +using GitVersion.MsBuild.Tasks; using GitVersion.MsBuild.Tests.Helpers; +using GitVersion.Testing.Extensions; +using GitVersion.Tests; using LibGit2Sharp; using Microsoft.Build.Utilities.ProjectCreation; -using Microsoft.Extensions.DependencyInjection; namespace GitVersion.MsBuild.Tests.Tasks; public abstract class TestTaskBase : TestBase { - protected IFileSystem FileSystem; + protected IFileSystem FileSystem = null!; [SetUp] public void SetUp() @@ -119,7 +120,7 @@ private static RemoteRepositoryFixture CreateRemoteRepositoryFixture() Commands.Fetch(fixture.LocalRepositoryFixture.Repository, fixture.LocalRepositoryFixture.Repository.Network.Remotes.First().Name, [], new(), null); Commands.Checkout(fixture.LocalRepositoryFixture.Repository, fixture.Repository.Head.Tip); fixture.LocalRepositoryFixture.Repository.Branches.Remove(MainBranch); - fixture.InitializeRepo(); + fixture.InitializeRepository(); return fixture; } diff --git a/src/GitVersion.MsBuild.Tests/Tasks/UpdateAssemblyInfoTaskTest.cs b/src/GitVersion.MsBuild.Tests/Tasks/UpdateAssemblyInfoTaskTest.cs index dd8c9f7ca7..54f8765d3b 100644 --- a/src/GitVersion.MsBuild.Tests/Tasks/UpdateAssemblyInfoTaskTest.cs +++ b/src/GitVersion.MsBuild.Tests/Tasks/UpdateAssemblyInfoTaskTest.cs @@ -192,7 +192,6 @@ private static void AddUpdateAssemblyInfoTask(ProjectCreator project, string tar { var assemblyFileLocation = typeof(GitVersionTaskBase).Assembly.Location; project.UsingTaskAssemblyFile(taskName, assemblyFileLocation) - .Property("ManagePackageVersionsCentrally", "false") .Property("GenerateAssemblyInfo", "false") .Property("Language", language) .Target(targetToRun, beforeTargets: "CoreCompile;GetAssemblyVersion;GenerateNuspec") diff --git a/src/GitVersion.MsBuild/GitVersion.MsBuild.csproj b/src/GitVersion.MsBuild/GitVersion.MsBuild.csproj index 2de6d91a22..da67b011a6 100644 --- a/src/GitVersion.MsBuild/GitVersion.MsBuild.csproj +++ b/src/GitVersion.MsBuild/GitVersion.MsBuild.csproj @@ -41,6 +41,7 @@ <None Include="$(ExePublishPath)/net8.0/publish/**/*;$(BinPath)/net8.0/GitVersion.MsBuild.*" Pack="true" PackagePath="tools/net8.0" /> <None Include="$(ExePublishPath)/net9.0/publish/**/*;$(BinPath)/net9.0/GitVersion.MsBuild.*" Pack="true" PackagePath="tools/net9.0" /> + <None Include="$(ExePublishPath)/net10.0/publish/**/*;$(BinPath)/net10.0/GitVersion.MsBuild.*" Pack="true" PackagePath="tools/net10.0" /> </ItemGroup> </Project> diff --git a/src/GitVersion.MsBuild/GitVersionMsBuildModule.cs b/src/GitVersion.MsBuild/GitVersionMsBuildModule.cs index 0d314115ca..3af25d2523 100644 --- a/src/GitVersion.MsBuild/GitVersionMsBuildModule.cs +++ b/src/GitVersion.MsBuild/GitVersionMsBuildModule.cs @@ -1,8 +1,16 @@ -using Microsoft.Extensions.DependencyInjection; +using GitVersion.Logging; +using GitVersion.MsBuild.Tasks; namespace GitVersion.MsBuild; -public class GitVersionMsBuildModule : IGitVersionModule +internal class GitVersionMsBuildModule(GitVersionTaskBase task) : IGitVersionModule { - public void RegisterTypes(IServiceCollection services) => services.AddSingleton<IGitVersionTaskExecutor, GitVersionTaskExecutor>(); + public void RegisterTypes(IServiceCollection services) + { + var gitVersionOptions = new GitVersionOptions { WorkingDirectory = task.SolutionDirectory }; + + services.AddSingleton(Options.Create(gitVersionOptions)); + services.AddSingleton<IConsole>(new MsBuildAdapter(task.Log)); + services.AddSingleton<IGitVersionTaskExecutor, GitVersionTaskExecutor>(); + } } diff --git a/src/GitVersion.MsBuild/GitVersionTaskExecutor.cs b/src/GitVersion.MsBuild/GitVersionTaskExecutor.cs index e0e3a0052f..06f53ee930 100644 --- a/src/GitVersion.MsBuild/GitVersionTaskExecutor.cs +++ b/src/GitVersion.MsBuild/GitVersionTaskExecutor.cs @@ -4,7 +4,6 @@ using GitVersion.Helpers; using GitVersion.MsBuild.Tasks; using GitVersion.OutputVariables; -using Microsoft.Extensions.Options; namespace GitVersion.MsBuild; @@ -40,7 +39,7 @@ public void UpdateAssemblyInfo(UpdateAssemblyInfo task) if (!string.IsNullOrEmpty(task.IntermediateOutputPath)) { // Ensure provided output path exists first. Fixes issue #2815. - fileSystem.Directory.CreateDirectory(task.IntermediateOutputPath); + this.fileSystem.Directory.CreateDirectory(task.IntermediateOutputPath); } var fileWriteInfo = task.IntermediateOutputPath.GetFileWriteInfo(task.Language, task.ProjectFile, "AssemblyInfo"); @@ -56,7 +55,7 @@ public void UpdateAssemblyInfo(UpdateAssemblyInfo task) gitVersionOptions.AssemblySettingsInfo.EnsureAssemblyInfo = true; gitVersionOptions.AssemblySettingsInfo.Files.Add(fileWriteInfo.FileName); - gitVersionOutputTool.UpdateAssemblyInfo(versionVariables); + this.gitVersionOutputTool.UpdateAssemblyInfo(versionVariables); } public void GenerateGitVersionInformation(GenerateGitVersionInformation task) @@ -66,7 +65,7 @@ public void GenerateGitVersionInformation(GenerateGitVersionInformation task) if (!string.IsNullOrEmpty(task.IntermediateOutputPath)) { // Ensure provided output path exists first. Fixes issue #2815. - fileSystem.Directory.CreateDirectory(task.IntermediateOutputPath); + this.fileSystem.Directory.CreateDirectory(task.IntermediateOutputPath); } var fileWriteInfo = task.IntermediateOutputPath.GetFileWriteInfo(task.Language, task.ProjectFile, "GitVersionInformation"); @@ -79,7 +78,7 @@ public void GenerateGitVersionInformation(GenerateGitVersionInformation task) var gitVersionOptions = this.options.Value; gitVersionOptions.WorkingDirectory = fileWriteInfo.WorkingDirectory; var targetNamespace = GetTargetNamespace(task); - gitVersionOutputTool.GenerateGitVersionInformation(versionVariables, fileWriteInfo, targetNamespace); + this.gitVersionOutputTool.GenerateGitVersionInformation(versionVariables, fileWriteInfo, targetNamespace); return; static string? GetTargetNamespace(GenerateGitVersionInformation task) @@ -103,8 +102,8 @@ public void WriteVersionInfoToBuildLog(WriteVersionInfoToBuildLog task) var gitVersionOptions = this.options.Value; var configuration = this.configurationProvider.Provide(gitVersionOptions.ConfigurationInfo.OverrideConfiguration); - gitVersionOutputTool.OutputVariables(versionVariables, configuration.UpdateBuildNumber); + this.gitVersionOutputTool.OutputVariables(versionVariables, configuration.UpdateBuildNumber); } - private GitVersionVariables GitVersionVariables(GitVersionTaskBase task) => serializer.FromFile(task.VersionFile); + private GitVersionVariables GitVersionVariables(GitVersionTaskBase task) => this.serializer.FromFile(task.VersionFile); } diff --git a/src/GitVersion.MsBuild/GitVersionTasks.cs b/src/GitVersion.MsBuild/GitVersionTasks.cs index d0860b20e9..a91a5dd73f 100644 --- a/src/GitVersion.MsBuild/GitVersionTasks.cs +++ b/src/GitVersion.MsBuild/GitVersionTasks.cs @@ -1,11 +1,6 @@ using GitVersion.Agents; -using GitVersion.Configuration; -using GitVersion.Extensions; using GitVersion.Logging; using GitVersion.MsBuild.Tasks; -using GitVersion.Output; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Options; namespace GitVersion.MsBuild; @@ -17,21 +12,21 @@ public static bool Execute(GitVersionTaskBase task) var executor = serviceProvider.GetRequiredService<IGitVersionTaskExecutor>(); return task switch { - GetVersion getVersion => ExecuteGitVersionTask(getVersion, () => executor.GetVersion(getVersion)), - UpdateAssemblyInfo updateAssemblyInfo => ExecuteGitVersionTask(updateAssemblyInfo, () => executor.UpdateAssemblyInfo(updateAssemblyInfo)), - GenerateGitVersionInformation generateGitVersionInformation => ExecuteGitVersionTask(generateGitVersionInformation, () => executor.GenerateGitVersionInformation(generateGitVersionInformation)), - WriteVersionInfoToBuildLog writeVersionInfoToBuildLog => ExecuteGitVersionTask(writeVersionInfoToBuildLog, () => executor.WriteVersionInfoToBuildLog(writeVersionInfoToBuildLog)), + GetVersion getVersion => ExecuteGitVersionTask(getVersion, executor.GetVersion), + UpdateAssemblyInfo updateAssemblyInfo => ExecuteGitVersionTask(updateAssemblyInfo, executor.UpdateAssemblyInfo), + GenerateGitVersionInformation generateGitVersionInformation => ExecuteGitVersionTask(generateGitVersionInformation, executor.GenerateGitVersionInformation), + WriteVersionInfoToBuildLog writeVersionInfoToBuildLog => ExecuteGitVersionTask(writeVersionInfoToBuildLog, executor.WriteVersionInfoToBuildLog), _ => throw new NotSupportedException($"Task type {task.GetType().Name} is not supported") }; } - private static bool ExecuteGitVersionTask<T>(T task, Action action) + private static bool ExecuteGitVersionTask<T>(T task, Action<T> action) where T : GitVersionTaskBase { var taskLog = task.Log; try { - action(); + action(task); } catch (WarningException errorException) { @@ -66,18 +61,7 @@ private static ServiceProvider BuildServiceProvider(GitVersionTaskBase task) { var services = new ServiceCollection(); - var gitVersionOptions = new GitVersionOptions - { - WorkingDirectory = task.SolutionDirectory - }; - - services.AddSingleton(Options.Create(gitVersionOptions)); - services.AddModule(new GitVersionConfigurationModule()); - services.AddModule(new GitVersionCoreModule()); - services.AddModule(new GitVersionBuildAgentsModule()); - services.AddModule(new GitVersionOutputModule()); - services.AddModule(new GitVersionMsBuildModule()); - services.AddSingleton<IConsole>(new MsBuildAdapter(task.Log)); + MsBuildHost.RegisterGitVersionModules(services, task); var sp = services.BuildServiceProvider(); Configure(sp, task); diff --git a/src/GitVersion.MsBuild/Helpers/AssemblyInfoFileHelper.cs b/src/GitVersion.MsBuild/Helpers/AssemblyInfoFileHelper.cs index 5f96caead6..1aaecdee67 100644 --- a/src/GitVersion.MsBuild/Helpers/AssemblyInfoFileHelper.cs +++ b/src/GitVersion.MsBuild/Helpers/AssemblyInfoFileHelper.cs @@ -3,7 +3,7 @@ using GitVersion.Helpers; using Microsoft.Build.Framework; -using static GitVersion.Core.RegexPatterns.AssemblyVersion; +using static GitVersion.RegexPatterns.AssemblyVersion; namespace GitVersion.MsBuild; @@ -44,9 +44,9 @@ private static bool FileContainsVersionAttribute(IFileSystem fileSystem, string var (attributeRegex, triviaRegex) = compileFileExtension switch { - ".cs" => (CSharp.AttributeRegex(), CSharp.TriviaRegex()), - ".fs" => (FSharp.AttributeRegex(), FSharp.TriviaRegex()), - ".vb" => (VisualBasic.AttributeRegex(), VisualBasic.TriviaRegex()), + ".cs" => (CSharp.AttributeRegex, CSharp.TriviaRegex), + ".fs" => (FSharp.AttributeRegex, FSharp.TriviaRegex), + ".vb" => (VisualBasic.AttributeRegex, VisualBasic.TriviaRegex), _ => throw new WarningException("File with name containing AssemblyInfo could not be checked for assembly version attributes which conflict with the attributes generated by GitVersion " + compileFile) }; @@ -68,22 +68,25 @@ private static IEnumerable<string> GetInvalidFiles(IFileSystem fileSystem, IEnum .Where(compileFile => compileFile.Contains("AssemblyInfo")) .Where(filePath => FileContainsVersionAttribute(fileSystem, filePath, projectFile)); - public static FileWriteInfo GetFileWriteInfo(this string? intermediateOutputPath, string language, string projectFile, string outputFileName) + extension(string? intermediateOutputPath) { - var fileExtension = GetFileExtension(language); - string workingDirectory, fileName; - - if (intermediateOutputPath == null) - { - fileName = $"{outputFileName}_{FileSystemHelper.Path.GetFileNameWithoutExtension(projectFile)}_{FileSystemHelper.Path.GetRandomFileName()}.g.{fileExtension}"; - workingDirectory = TempPath; - } - else + public FileWriteInfo GetFileWriteInfo(string language, string projectFile, string outputFileName) { - fileName = $"{outputFileName}.g.{fileExtension}"; - workingDirectory = intermediateOutputPath; + var fileExtension = GetFileExtension(language); + string workingDirectory, fileName; + + if (intermediateOutputPath == null) + { + fileName = $"{outputFileName}_{FileSystemHelper.Path.GetFileNameWithoutExtension(projectFile)}_{FileSystemHelper.Path.GetRandomFileName()}.g.{fileExtension}"; + workingDirectory = TempPath; + } + else + { + fileName = $"{outputFileName}.g.{fileExtension}"; + workingDirectory = intermediateOutputPath; + } + + return new FileWriteInfo(workingDirectory, fileName, fileExtension); } - - return new FileWriteInfo(workingDirectory, fileName, fileExtension); } } diff --git a/src/GitVersion.MsBuild/MsBuildHost.cs b/src/GitVersion.MsBuild/MsBuildHost.cs new file mode 100644 index 0000000000..11a96d20d1 --- /dev/null +++ b/src/GitVersion.MsBuild/MsBuildHost.cs @@ -0,0 +1,20 @@ +using GitVersion.Agents; +using GitVersion.Configuration; +using GitVersion.Extensions; +using GitVersion.MsBuild.Tasks; +using GitVersion.Output; + +namespace GitVersion.MsBuild; + +internal static class MsBuildHost +{ + internal static void RegisterGitVersionModules(IServiceCollection services, GitVersionTaskBase task) + { + services.AddModule(new GitVersionCoreModule()); + services.AddModule(new GitVersionBuildAgentsModule()); + services.AddModule(new GitVersionConfigurationModule()); + services.AddModule(new GitVersionOutputModule()); + + services.AddModule(new GitVersionMsBuildModule(task)); + } +} diff --git a/src/GitVersion.MsBuild/PublicAPI.Shipped.txt b/src/GitVersion.MsBuild/PublicAPI.Shipped.txt index 000e4d9453..b329f671c2 100644 --- a/src/GitVersion.MsBuild/PublicAPI.Shipped.txt +++ b/src/GitVersion.MsBuild/PublicAPI.Shipped.txt @@ -1,19 +1,4 @@ #nullable enable -GitVersion.MsBuild.GitVersionMsBuildModule -GitVersion.MsBuild.GitVersionMsBuildModule.GitVersionMsBuildModule() -> void -GitVersion.MsBuild.GitVersionMsBuildModule.RegisterTypes(Microsoft.Extensions.DependencyInjection.IServiceCollection! services) -> void -GitVersion.MsBuild.GitVersionTaskBase -GitVersion.MsBuild.GitVersionTaskBase.BuildEngine.get -> Microsoft.Build.Framework.IBuildEngine! -GitVersion.MsBuild.GitVersionTaskBase.BuildEngine.set -> void -GitVersion.MsBuild.GitVersionTaskBase.Execute() -> bool -GitVersion.MsBuild.GitVersionTaskBase.GitVersionTaskBase() -> void -GitVersion.MsBuild.GitVersionTaskBase.HostObject.get -> Microsoft.Build.Framework.ITaskHost! -GitVersion.MsBuild.GitVersionTaskBase.HostObject.set -> void -GitVersion.MsBuild.GitVersionTaskBase.Log.get -> Microsoft.Build.Utilities.TaskLoggingHelper! -GitVersion.MsBuild.GitVersionTaskBase.SolutionDirectory.get -> string! -GitVersion.MsBuild.GitVersionTaskBase.SolutionDirectory.set -> void -GitVersion.MsBuild.GitVersionTaskBase.VersionFile.get -> string! -GitVersion.MsBuild.GitVersionTaskBase.VersionFile.set -> void GitVersion.MsBuild.Tasks.GenerateGitVersionInformation GitVersion.MsBuild.Tasks.GenerateGitVersionInformation.GenerateGitVersionInformation() -> void GitVersion.MsBuild.Tasks.GenerateGitVersionInformation.GitVersionInformationFilePath.get -> string! @@ -21,7 +6,7 @@ GitVersion.MsBuild.Tasks.GenerateGitVersionInformation.GitVersionInformationFile GitVersion.MsBuild.Tasks.GenerateGitVersionInformation.IntermediateOutputPath.get -> string! GitVersion.MsBuild.Tasks.GenerateGitVersionInformation.Language.get -> string! GitVersion.MsBuild.Tasks.GenerateGitVersionInformation.ProjectFile.get -> string! -GitVersion.MsBuild.Tasks.GenerateGitVersionInformation.RootNamespace.get -> string! +GitVersion.MsBuild.Tasks.GenerateGitVersionInformation.RootNamespace.get -> string? GitVersion.MsBuild.Tasks.GenerateGitVersionInformation.UseProjectNamespaceForGitVersionInformation.get -> string? GitVersion.MsBuild.Tasks.GetVersion GitVersion.MsBuild.Tasks.GetVersion.AssemblySemFileVer.get -> string! @@ -71,10 +56,28 @@ GitVersion.MsBuild.Tasks.GetVersion.ShortSha.get -> string! GitVersion.MsBuild.Tasks.GetVersion.ShortSha.set -> void GitVersion.MsBuild.Tasks.GetVersion.UncommittedChanges.get -> string! GitVersion.MsBuild.Tasks.GetVersion.UncommittedChanges.set -> void +GitVersion.MsBuild.Tasks.GetVersion.VersionSourceDistance.get -> string! +GitVersion.MsBuild.Tasks.GetVersion.VersionSourceDistance.set -> void +GitVersion.MsBuild.Tasks.GetVersion.VersionSourceIncrement.get -> string! +GitVersion.MsBuild.Tasks.GetVersion.VersionSourceIncrement.set -> void +GitVersion.MsBuild.Tasks.GetVersion.VersionSourceSemVer.get -> string! +GitVersion.MsBuild.Tasks.GetVersion.VersionSourceSemVer.set -> void GitVersion.MsBuild.Tasks.GetVersion.VersionSourceSha.get -> string! GitVersion.MsBuild.Tasks.GetVersion.VersionSourceSha.set -> void GitVersion.MsBuild.Tasks.GetVersion.WeightedPreReleaseNumber.get -> string! GitVersion.MsBuild.Tasks.GetVersion.WeightedPreReleaseNumber.set -> void +GitVersion.MsBuild.Tasks.GitVersionTaskBase +GitVersion.MsBuild.Tasks.GitVersionTaskBase.BuildEngine.get -> Microsoft.Build.Framework.IBuildEngine! +GitVersion.MsBuild.Tasks.GitVersionTaskBase.BuildEngine.set -> void +GitVersion.MsBuild.Tasks.GitVersionTaskBase.Execute() -> bool +GitVersion.MsBuild.Tasks.GitVersionTaskBase.GitVersionTaskBase() -> void +GitVersion.MsBuild.Tasks.GitVersionTaskBase.HostObject.get -> Microsoft.Build.Framework.ITaskHost! +GitVersion.MsBuild.Tasks.GitVersionTaskBase.HostObject.set -> void +GitVersion.MsBuild.Tasks.GitVersionTaskBase.Log.get -> Microsoft.Build.Utilities.TaskLoggingHelper! +GitVersion.MsBuild.Tasks.GitVersionTaskBase.SolutionDirectory.get -> string! +GitVersion.MsBuild.Tasks.GitVersionTaskBase.SolutionDirectory.set -> void +GitVersion.MsBuild.Tasks.GitVersionTaskBase.VersionFile.get -> string! +GitVersion.MsBuild.Tasks.GitVersionTaskBase.VersionFile.set -> void GitVersion.MsBuild.Tasks.UpdateAssemblyInfo GitVersion.MsBuild.Tasks.UpdateAssemblyInfo.AssemblyInfoTempFilePath.get -> string! GitVersion.MsBuild.Tasks.UpdateAssemblyInfo.AssemblyInfoTempFilePath.set -> void diff --git a/src/GitVersion.MsBuild/Tasks/GenerateGitVersionInformation.cs b/src/GitVersion.MsBuild/Tasks/GenerateGitVersionInformation.cs index 93b4f5da23..cac0668129 100644 --- a/src/GitVersion.MsBuild/Tasks/GenerateGitVersionInformation.cs +++ b/src/GitVersion.MsBuild/Tasks/GenerateGitVersionInformation.cs @@ -5,18 +5,18 @@ namespace GitVersion.MsBuild.Tasks; public class GenerateGitVersionInformation : GitVersionTaskBase { [Required] - public string ProjectFile { get; internal init; } + public string ProjectFile { get; internal init; } = null!; [Required] - public string IntermediateOutputPath { get; internal init; } + public string IntermediateOutputPath { get; internal init; } = null!; [Required] public string Language { get; internal init; } = "C#"; public string? UseProjectNamespaceForGitVersionInformation { get; internal init; } - public string RootNamespace { get; internal init; } + public string? RootNamespace { get; internal init; } [Output] - public string GitVersionInformationFilePath { get; set; } + public string GitVersionInformationFilePath { get; set; } = null!; } diff --git a/src/GitVersion.MsBuild/Tasks/GetVersion.cs b/src/GitVersion.MsBuild/Tasks/GetVersion.cs index 2a3e695a99..89c2351fa4 100644 --- a/src/GitVersion.MsBuild/Tasks/GetVersion.cs +++ b/src/GitVersion.MsBuild/Tasks/GetVersion.cs @@ -5,77 +5,87 @@ namespace GitVersion.MsBuild.Tasks; public class GetVersion : GitVersionTaskBase { [Output] - public string Major { get; set; } + public string AssemblySemFileVer { get; set; } = null!; [Output] - public string Minor { get; set; } + public string AssemblySemVer { get; set; } = null!; [Output] - public string Patch { get; set; } + public string BranchName { get; set; } = null!; [Output] - public string PreReleaseTag { get; set; } + public string BuildMetaData { get; set; } = null!; [Output] - public string PreReleaseTagWithDash { get; set; } + public string CommitDate { get; set; } = null!; [Output] - public string PreReleaseLabel { get; set; } + [Obsolete("CommitsSinceVersionSource has been deprecated. Use VersionSourceDistance instead.")] + public string CommitsSinceVersionSource { get; set; } = null!; [Output] - public string PreReleaseLabelWithDash { get; set; } + public string EscapedBranchName { get; set; } = null!; [Output] - public string PreReleaseNumber { get; set; } + public string FullBuildMetaData { get; set; } = null!; [Output] - public string WeightedPreReleaseNumber { get; set; } + public string FullSemVer { get; set; } = null!; [Output] - public string BuildMetaData { get; set; } + public string InformationalVersion { get; set; } = null!; [Output] - public string FullBuildMetaData { get; set; } + public string Major { get; set; } = null!; [Output] - public string MajorMinorPatch { get; set; } + public string MajorMinorPatch { get; set; } = null!; [Output] - public string SemVer { get; set; } + public string Minor { get; set; } = null!; [Output] - public string AssemblySemVer { get; set; } + public string Patch { get; set; } = null!; [Output] - public string AssemblySemFileVer { get; set; } + public string PreReleaseLabel { get; set; } = null!; [Output] - public string FullSemVer { get; set; } + public string PreReleaseLabelWithDash { get; set; } = null!; [Output] - public string InformationalVersion { get; set; } + public string PreReleaseNumber { get; set; } = null!; [Output] - public string BranchName { get; set; } + public string PreReleaseTag { get; set; } = null!; [Output] - public string EscapedBranchName { get; set; } + public string PreReleaseTagWithDash { get; set; } = null!; [Output] - public string Sha { get; set; } + public string SemVer { get; set; } = null!; [Output] - public string ShortSha { get; set; } + public string Sha { get; set; } = null!; [Output] - public string CommitDate { get; set; } + public string ShortSha { get; set; } = null!; [Output] - public string VersionSourceSha { get; set; } + public string UncommittedChanges { get; set; } = null!; [Output] - public string CommitsSinceVersionSource { get; set; } + public string VersionSourceDistance { get; set; } = null!; [Output] - public string UncommittedChanges { get; set; } + public string VersionSourceIncrement { get; set; } = null!; + + [Output] + public string VersionSourceSemVer { get; set; } = null!; + + [Output] + public string VersionSourceSha { get; set; } = null!; + + [Output] + public string WeightedPreReleaseNumber { get; set; } = null!; } diff --git a/src/GitVersion.MsBuild/GitVersionTaskBase.cs b/src/GitVersion.MsBuild/Tasks/GitVersionTaskBase.cs similarity index 53% rename from src/GitVersion.MsBuild/GitVersionTaskBase.cs rename to src/GitVersion.MsBuild/Tasks/GitVersionTaskBase.cs index a7fb78a9ac..8c2d37fe3f 100644 --- a/src/GitVersion.MsBuild/GitVersionTaskBase.cs +++ b/src/GitVersion.MsBuild/Tasks/GitVersionTaskBase.cs @@ -1,19 +1,19 @@ using Microsoft.Build.Framework; using Microsoft.Build.Utilities; -namespace GitVersion.MsBuild; +namespace GitVersion.MsBuild.Tasks; public abstract class GitVersionTaskBase : ITask { - public IBuildEngine BuildEngine { get; set; } - public ITaskHost HostObject { get; set; } + public IBuildEngine BuildEngine { get; set; } = null!; + public ITaskHost HostObject { get; set; } = null!; protected GitVersionTaskBase() => Log = new(this); [Required] - public string SolutionDirectory { get; set; } + public string SolutionDirectory { get; set; } = null!; - public string VersionFile { get; set; } + public string VersionFile { get; set; } = null!; public TaskLoggingHelper Log { get; } diff --git a/src/GitVersion.MsBuild/Tasks/UpdateAssemblyInfo.cs b/src/GitVersion.MsBuild/Tasks/UpdateAssemblyInfo.cs index f95a5c1803..121cade54f 100644 --- a/src/GitVersion.MsBuild/Tasks/UpdateAssemblyInfo.cs +++ b/src/GitVersion.MsBuild/Tasks/UpdateAssemblyInfo.cs @@ -5,10 +5,10 @@ namespace GitVersion.MsBuild.Tasks; public class UpdateAssemblyInfo : GitVersionTaskBase { [Required] - public string ProjectFile { get; internal init; } + public string ProjectFile { get; internal init; } = null!; [Required] - public string IntermediateOutputPath { get; internal init; } + public string IntermediateOutputPath { get; internal init; } = null!; [Required] public ITaskItem[] CompileFiles { get; internal init; } = []; @@ -17,5 +17,5 @@ public class UpdateAssemblyInfo : GitVersionTaskBase public string Language { get; internal init; } = "C#"; [Output] - public string AssemblyInfoTempFilePath { get; set; } + public string AssemblyInfoTempFilePath { get; set; } = null!; } diff --git a/src/GitVersion.MsBuild/msbuild/tools/GitVersion.MsBuild.props b/src/GitVersion.MsBuild/msbuild/tools/GitVersion.MsBuild.props index c497718e77..0b63e3feee 100644 --- a/src/GitVersion.MsBuild/msbuild/tools/GitVersion.MsBuild.props +++ b/src/GitVersion.MsBuild/msbuild/tools/GitVersion.MsBuild.props @@ -21,11 +21,11 @@ </PropertyGroup> <PropertyGroup> - <!-- The GitVersion task is explicitly disabled when running on the .NET Framework because it's no longer supported. - If a project that uses GitVersion.MsBuild is opened in Visual Studio, + <!-- The GitVersion task is explicitly disabled when running on the .NET Framework with MSBuild version lower than 18 + or in Visual Studio 2022 or earlier (which uses MSBuild version 17 and below). In these scenarios, the task will be turned off because Visual Studio operates on the .NET Framework's version of MSBuild. - However, you can still execute GitVersion.MsBuild as part of the `dotnet build` or `dotnet msbuild` commands. --> - <DisableGitVersionTask Condition=" '$(MSBuildRuntimeType)' != 'Core' ">true</DisableGitVersionTask> + However, it is supported from msbuild version 18 or Visual Studio 2026, or using the .NET version `dotnet build` --> + <DisableGitVersionTask Condition=" '$(MSBuildRuntimeType)' == 'Full' AND $([System.Version]::Parse('$(MSBuildVersion)').Major) < 18 ">true</DisableGitVersionTask> <DisableGitVersionTask Condition=" '$(DisableGitVersionTask)' == '' ">false</DisableGitVersionTask> diff --git a/src/GitVersion.MsBuild/msbuild/tools/GitVersion.MsBuild.targets b/src/GitVersion.MsBuild/msbuild/tools/GitVersion.MsBuild.targets index 680bf52a1a..43b18b00e9 100644 --- a/src/GitVersion.MsBuild/msbuild/tools/GitVersion.MsBuild.targets +++ b/src/GitVersion.MsBuild/msbuild/tools/GitVersion.MsBuild.targets @@ -11,16 +11,22 @@ <!-- Validates the target framework and sets the GitVersionTargetFramework property to the target framework that is compatible with the target framework of the project --> <GitVersionTargetFramework Condition="'$(GitVersionTargetFramework)' == '' and $([MSBuild]::IsTargetFrameworkCompatible($(TargetFramework), 'net8.0')) == 'true'">net8.0</GitVersionTargetFramework> <GitVersionTargetFramework Condition="'$(GitVersionTargetFramework)' == '' and $([MSBuild]::IsTargetFrameworkCompatible($(TargetFramework), 'net9.0')) == 'true'">net9.0</GitVersionTargetFramework> - <!-- Fall back to net8.0 if the target framework is not compatible with net9.0 and net8.0 --> + <GitVersionTargetFramework Condition="'$(GitVersionTargetFramework)' == '' and $([MSBuild]::IsTargetFrameworkCompatible($(TargetFramework), 'net10.0')) == 'true'">net10.0</GitVersionTargetFramework> + <!-- Fall back to net8.0 if the target framework is not compatible with net10.0, net9.0 and net8.0 --> <GitVersionTargetFramework Condition="'$(GitVersionTargetFramework)' == ''">net8.0</GitVersionTargetFramework> <GitVersionFileExe Condition="'$(GitVersionFileExe)' == ''">dotnet --roll-forward Major "$([MSBuild]::EnsureTrailingSlash($(MSBuildThisFileDirectory)$(GitVersionTargetFramework)))gitversion.dll"</GitVersionFileExe> <GitVersionAssemblyFile Condition="'$(GitVersionAssemblyFile)' == ''">$([MSBuild]::EnsureTrailingSlash($(MSBuildThisFileDirectory)$(GitVersionTargetFramework)))GitVersion.MsBuild.dll</GitVersionAssemblyFile> </PropertyGroup> - <UsingTask TaskName="GetVersion" AssemblyFile="$(GitVersionAssemblyFile)" /> - <UsingTask TaskName="GenerateGitVersionInformation" AssemblyFile="$(GitVersionAssemblyFile)" /> - <UsingTask TaskName="WriteVersionInfoToBuildLog" AssemblyFile="$(GitVersionAssemblyFile)" /> - <UsingTask TaskName="UpdateAssemblyInfo" AssemblyFile="$(GitVersionAssemblyFile)" /> + <UsingTask TaskName="GetVersion" AssemblyFile="$(GitVersionAssemblyFile)" Runtime="NET" TaskFactory="TaskHostFactory" Condition=" '$(MSBuildRuntimeType)' == 'Full' " /> + <UsingTask TaskName="GenerateGitVersionInformation" AssemblyFile="$(GitVersionAssemblyFile)" Runtime="NET" TaskFactory="TaskHostFactory" Condition=" '$(MSBuildRuntimeType)' == 'Full' " /> + <UsingTask TaskName="WriteVersionInfoToBuildLog" AssemblyFile="$(GitVersionAssemblyFile)" Runtime="NET" TaskFactory="TaskHostFactory" Condition=" '$(MSBuildRuntimeType)' == 'Full' " /> + <UsingTask TaskName="UpdateAssemblyInfo" AssemblyFile="$(GitVersionAssemblyFile)" Runtime="NET" TaskFactory="TaskHostFactory" Condition=" '$(MSBuildRuntimeType)' == 'Full' " /> + + <UsingTask TaskName="GetVersion" AssemblyFile="$(GitVersionAssemblyFile)" Runtime="NET" Condition=" '$(MSBuildRuntimeType)' == 'Core' " /> + <UsingTask TaskName="GenerateGitVersionInformation" AssemblyFile="$(GitVersionAssemblyFile)" Runtime="NET" Condition=" '$(MSBuildRuntimeType)' == 'Core' " /> + <UsingTask TaskName="WriteVersionInfoToBuildLog" AssemblyFile="$(GitVersionAssemblyFile)" Runtime="NET" Condition=" '$(MSBuildRuntimeType)' == 'Core' " /> + <UsingTask TaskName="UpdateAssemblyInfo" AssemblyFile="$(GitVersionAssemblyFile)" Runtime="NET" Condition=" '$(MSBuildRuntimeType)' == 'Core' " /> <Target Name="RunGitVersion" Condition="'$(DisableGitVersionTask)' == 'false'"> <Exec Command="$(GitVersionFileExe) "$(MSBuildProjectDirectory)" $(GitVersion_ToolArgments)" /> @@ -33,31 +39,34 @@ <Target Name="GetVersion" DependsOnTargets="RunGitVersion" BeforeTargets="$(GitVersionTargetsBefore)" Condition="'$(DisableGitVersionTask)' == 'false'"> <GetVersion SolutionDirectory="$(GitVersionPath)" VersionFile="$(GitVersionOutputFile)"> + <Output TaskParameter="AssemblySemFileVer" PropertyName="GitVersion_AssemblySemFileVer" /> + <Output TaskParameter="AssemblySemVer" PropertyName="GitVersion_AssemblySemVer" /> + <Output TaskParameter="BranchName" PropertyName="GitVersion_BranchName" /> + <Output TaskParameter="BuildMetaData" PropertyName="GitVersion_BuildMetaData" /> + <Output TaskParameter="CommitDate" PropertyName="GitVersion_CommitDate" /> + <Output TaskParameter="CommitsSinceVersionSource" PropertyName="GitVersion_CommitsSinceVersionSource" /> + <Output TaskParameter="EscapedBranchName" PropertyName="GitVersion_EscapedBranchName" /> + <Output TaskParameter="FullBuildMetaData" PropertyName="GitVersion_FullBuildMetaData" /> + <Output TaskParameter="FullSemVer" PropertyName="GitVersion_FullSemVer" /> + <Output TaskParameter="InformationalVersion" PropertyName="GitVersion_InformationalVersion" /> <Output TaskParameter="Major" PropertyName="GitVersion_Major" /> + <Output TaskParameter="MajorMinorPatch" PropertyName="GitVersion_MajorMinorPatch" /> <Output TaskParameter="Minor" PropertyName="GitVersion_Minor" /> <Output TaskParameter="Patch" PropertyName="GitVersion_Patch" /> - <Output TaskParameter="PreReleaseTag" PropertyName="GitVersion_PreReleaseTag" /> - <Output TaskParameter="PreReleaseTagWithDash" PropertyName="GitVersion_PreReleaseTagWithDash" /> <Output TaskParameter="PreReleaseLabel" PropertyName="GitVersion_PreReleaseLabel" /> <Output TaskParameter="PreReleaseLabelWithDash" PropertyName="GitVersion_PreReleaseLabelWithDash" /> <Output TaskParameter="PreReleaseNumber" PropertyName="GitVersion_PreReleaseNumber" /> - <Output TaskParameter="WeightedPreReleaseNumber" PropertyName="GitVersion_WeightedPreReleaseNumber" /> - <Output TaskParameter="BuildMetaData" PropertyName="GitVersion_BuildMetaData" /> - <Output TaskParameter="FullBuildMetaData" PropertyName="GitVersion_FullBuildMetaData" /> - <Output TaskParameter="MajorMinorPatch" PropertyName="GitVersion_MajorMinorPatch" /> + <Output TaskParameter="PreReleaseTag" PropertyName="GitVersion_PreReleaseTag" /> + <Output TaskParameter="PreReleaseTagWithDash" PropertyName="GitVersion_PreReleaseTagWithDash" /> <Output TaskParameter="SemVer" PropertyName="GitVersion_SemVer" /> - <Output TaskParameter="AssemblySemVer" PropertyName="GitVersion_AssemblySemVer" /> - <Output TaskParameter="AssemblySemFileVer" PropertyName="GitVersion_AssemblySemFileVer" /> - <Output TaskParameter="FullSemVer" PropertyName="GitVersion_FullSemVer" /> - <Output TaskParameter="InformationalVersion" PropertyName="GitVersion_InformationalVersion" /> - <Output TaskParameter="BranchName" PropertyName="GitVersion_BranchName" /> - <Output TaskParameter="EscapedBranchName" PropertyName="GitVersion_EscapedBranchName" /> <Output TaskParameter="Sha" PropertyName="GitVersion_Sha" /> <Output TaskParameter="ShortSha" PropertyName="GitVersion_ShortSha" /> - <Output TaskParameter="CommitDate" PropertyName="GitVersion_CommitDate" /> - <Output TaskParameter="VersionSourceSha" PropertyName="GitVersion_VersionSourceSha" /> - <Output TaskParameter="CommitsSinceVersionSource" PropertyName="GitVersion_CommitsSinceVersionSource" /> <Output TaskParameter="UncommittedChanges" PropertyName="GitVersion_UncommittedChanges" /> + <Output TaskParameter="VersionSourceDistance" PropertyName="GitVersion_VersionSourceDistance" /> + <Output TaskParameter="VersionSourceIncrement" PropertyName="GitVersion_VersionSourceIncrement" /> + <Output TaskParameter="VersionSourceSemVer" PropertyName="GitVersion_VersionSourceSemVer" /> + <Output TaskParameter="VersionSourceSha" PropertyName="GitVersion_VersionSourceSha" /> + <Output TaskParameter="WeightedPreReleaseNumber" PropertyName="GitVersion_WeightedPreReleaseNumber" /> </GetVersion> <PropertyGroup Condition=" '$(UpdateVersionProperties)' == 'true' "> @@ -73,31 +82,34 @@ </PropertyGroup> <PropertyGroup Condition=" '$(WixTargetsImported)' == 'true' And '$(GenerateGitVersionWixDefines)' == 'true' "> + <DefineConstants Condition=" '$(GitVersion_AssemblySemFileVer)' != '' ">GitVersion_AssemblySemFileVer=$(GitVersion_AssemblySemFileVer);$(DefineConstants)</DefineConstants> + <DefineConstants Condition=" '$(GitVersion_AssemblySemVer)' != '' ">GitVersion_AssemblySemVer=$(GitVersion_AssemblySemVer);$(DefineConstants)</DefineConstants> + <DefineConstants Condition=" '$(GitVersion_BranchName)' != '' ">GitVersion_BranchName=$(GitVersion_BranchName);$(DefineConstants)</DefineConstants> + <DefineConstants Condition=" '$(GitVersion_BuildMetaData)' != '' ">GitVersion_BuildMetaData=$(GitVersion_BuildMetaData);$(DefineConstants)</DefineConstants> + <DefineConstants Condition=" '$(GitVersion_CommitDate)' != '' ">GitVersion_CommitDate=$(GitVersion_CommitDate);$(DefineConstants)</DefineConstants> + <DefineConstants Condition=" '$(GitVersion_CommitsSinceVersionSource)' != '' ">GitVersion_CommitsSinceVersionSource=$(GitVersion_CommitsSinceVersionSource);$(DefineConstants)</DefineConstants> + <DefineConstants Condition=" '$(GitVersion_EscapedBranchName)' != '' ">GitVersion_EscapedBranchName=$(GitVersion_EscapedBranchName);$(DefineConstants)</DefineConstants> + <DefineConstants Condition=" '$(GitVersion_FullBuildMetaData)' != '' ">GitVersion_FullBuildMetaData=$(GitVersion_FullBuildMetaData);$(DefineConstants)</DefineConstants> + <DefineConstants Condition=" '$(GitVersion_FullSemVer)' != '' ">GitVersion_FullSemVer=$(GitVersion_FullSemVer);$(DefineConstants)</DefineConstants> + <DefineConstants Condition=" '$(GitVersion_InformationalVersion)' != '' ">GitVersion_InformationalVersion=$(GitVersion_InformationalVersion);$(DefineConstants)</DefineConstants> <DefineConstants Condition=" '$(GitVersion_Major)' != '' ">GitVersion_Major=$(GitVersion_Major);$(DefineConstants)</DefineConstants> + <DefineConstants Condition=" '$(GitVersion_MajorMinorPatch)' != '' ">GitVersion_MajorMinorPatch=$(GitVersion_MajorMinorPatch);$(DefineConstants)</DefineConstants> <DefineConstants Condition=" '$(GitVersion_Minor)' != '' ">GitVersion_Minor=$(GitVersion_Minor);$(DefineConstants)</DefineConstants> <DefineConstants Condition=" '$(GitVersion_Patch)' != '' ">GitVersion_Patch=$(GitVersion_Patch);$(DefineConstants)</DefineConstants> - <DefineConstants Condition=" '$(GitVersion_PreReleaseTag)' != '' ">GitVersion_PreReleaseTag=$(GitVersion_PreReleaseTag);$(DefineConstants)</DefineConstants> - <DefineConstants Condition=" '$(GitVersion_PreReleaseTagWithDash)' != '' ">GitVersion_PreReleaseTagWithDash=$(GitVersion_PreReleaseTagWithDash);$(DefineConstants)</DefineConstants> <DefineConstants Condition=" '$(GitVersion_PreReleaseLabel)' != '' ">GitVersion_PreReleaseLabel=$(GitVersion_PreReleaseLabel);$(DefineConstants)</DefineConstants> - <DefineConstants Condition=" '$(GitVersion_PreReleaseLabelWithDash)' != '' ">GitVersion_PreReleaseLabelWithDash=$(GitVersion_PreReleaseLabeWithDashl);$(DefineConstants)</DefineConstants> + <DefineConstants Condition=" '$(GitVersion_PreReleaseLabelWithDash)' != '' ">GitVersion_PreReleaseLabelWithDash=$(GitVersion_PreReleaseLabelWithDash);$(DefineConstants)</DefineConstants> <DefineConstants Condition=" '$(GitVersion_PreReleaseNumber)' != '' ">GitVersion_PreReleaseNumber=$(GitVersion_PreReleaseNumber);$(DefineConstants)</DefineConstants> - <DefineConstants Condition=" '$(GitVersion_WeightedPreReleaseNumber)' != '' ">GitVersion_WeightedPreReleaseNumber=$(GitVersion_WeightedPreReleaseNumber);$(DefineConstants)</DefineConstants> - <DefineConstants Condition=" '$(GitVersion_BuildMetaData)' != '' ">GitVersion_BuildMetaData=$(GitVersion_BuildMetaData);$(DefineConstants)</DefineConstants> - <DefineConstants Condition=" '$(GitVersion_FullBuildMetaData)' != '' ">GitVersion_FullBuildMetaData=$(GitVersion_FullBuildMetaData);$(DefineConstants)</DefineConstants> - <DefineConstants Condition=" '$(GitVersion_MajorMinorPatch)' != '' ">GitVersion_MajorMinorPatch=$(GitVersion_MajorMinorPatch);$(DefineConstants)</DefineConstants> + <DefineConstants Condition=" '$(GitVersion_PreReleaseTag)' != '' ">GitVersion_PreReleaseTag=$(GitVersion_PreReleaseTag);$(DefineConstants)</DefineConstants> + <DefineConstants Condition=" '$(GitVersion_PreReleaseTagWithDash)' != '' ">GitVersion_PreReleaseTagWithDash=$(GitVersion_PreReleaseTagWithDash);$(DefineConstants)</DefineConstants> <DefineConstants Condition=" '$(GitVersion_SemVer)' != '' ">GitVersion_SemVer=$(GitVersion_SemVer);$(DefineConstants)</DefineConstants> - <DefineConstants Condition=" '$(GitVersion_AssemblySemVer)' != '' ">GitVersion_AssemblySemVer=$(GitVersion_AssemblySemVer);$(DefineConstants)</DefineConstants> - <DefineConstants Condition=" '$(GitVersion_AssemblySemFileVer)' != '' ">GitVersion_AssemblySemFileVer=$(GitVersion_AssemblySemFileVer);$(DefineConstants)</DefineConstants> - <DefineConstants Condition=" '$(GitVersion_FullSemVer)' != '' ">GitVersion_FullSemVer=$(GitVersion_FullSemVer);$(DefineConstants)</DefineConstants> - <DefineConstants Condition=" '$(GitVersion_InformationalVersion)' != '' ">GitVersion_InformationalVersion=$(GitVersion_InformationalVersion);$(DefineConstants)</DefineConstants> - <DefineConstants Condition=" '$(GitVersion_BranchName)' != '' ">GitVersion_BranchName=$(GitVersion_BranchName);$(DefineConstants)</DefineConstants> - <DefineConstants Condition=" '$(GitVersion_EscapedBranchName)' != '' ">GitVersion_EscapedBranchName=$(GitVersion_EscapedBranchName);$(DefineConstants)</DefineConstants> <DefineConstants Condition=" '$(GitVersion_Sha)' != '' ">GitVersion_Sha=$(GitVersion_Sha);$(DefineConstants)</DefineConstants> <DefineConstants Condition=" '$(GitVersion_ShortSha)' != '' ">GitVersion_ShortSha=$(GitVersion_ShortSha);$(DefineConstants)</DefineConstants> - <DefineConstants Condition=" '$(GitVersion_CommitDate)' != '' ">GitVersion_CommitDate=$(GitVersion_CommitDate);$(DefineConstants)</DefineConstants> - <DefineConstants Condition=" '$(GitVersion_VersionSourceSha)' != '' ">GitVersion_VersionSourceSha=$(GitVersion_VersionSourceSha);$(DefineConstants)</DefineConstants> - <DefineConstants Condition=" '$(GitVersion_CommitsSinceVersionSource)' != '' ">GitVersion_CommitsSinceVersionSource=$(GitVersion_CommitsSinceVersionSource);$(DefineConstants)</DefineConstants> <DefineConstants Condition=" '$(GitVersion_UncommittedChanges)' != '' ">GitVersion_UncommittedChanges=$(GitVersion_UncommittedChanges);$(DefineConstants)</DefineConstants> + <DefineConstants Condition=" '$(GitVersion_VersionSourceDistance)' != '' ">GitVersion_VersionSourceDistance=$(GitVersion_VersionSourceDistance);$(DefineConstants)</DefineConstants> + <DefineConstants Condition=" '$(GitVersion_VersionSourceIncrement)' != '' ">GitVersion_VersionSourceIncrement=$(GitVersion_VersionSourceIncrement);$(DefineConstants)</DefineConstants> + <DefineConstants Condition=" '$(GitVersion_VersionSourceSemVer)' != '' ">GitVersion_VersionSourceSemVer=$(GitVersion_VersionSourceSemVer);$(DefineConstants)</DefineConstants> + <DefineConstants Condition=" '$(GitVersion_VersionSourceSha)' != '' ">GitVersion_VersionSourceSha=$(GitVersion_VersionSourceSha);$(DefineConstants)</DefineConstants> + <DefineConstants Condition=" '$(GitVersion_WeightedPreReleaseNumber)' != '' ">GitVersion_WeightedPreReleaseNumber=$(GitVersion_WeightedPreReleaseNumber);$(DefineConstants)</DefineConstants> </PropertyGroup> <!-- <Message Importance="High" Text="$(GitVersion_FullSemVer)" /> --> diff --git a/src/GitVersion.Output.Tests/Output/Approved/WixFileTests.UpdateWixVersionFile.approved.txt b/src/GitVersion.Output.Tests/Output/Approved/WixFileTests.UpdateWixVersionFile.approved.txt index d935478f68..71739ed61f 100644 --- a/src/GitVersion.Output.Tests/Output/Approved/WixFileTests.UpdateWixVersionFile.approved.txt +++ b/src/GitVersion.Output.Tests/Output/Approved/WixFileTests.UpdateWixVersionFile.approved.txt @@ -23,6 +23,9 @@ <?define Sha="commitSha"?> <?define ShortSha="commitShortSha"?> <?define UncommittedChanges="0"?> + <?define VersionSourceDistance="5"?> + <?define VersionSourceIncrement="None"?> + <?define VersionSourceSemVer=""?> <?define VersionSourceSha="versionSourceSha"?> <?define WeightedPreReleaseNumber="0"?> </Include> \ No newline at end of file diff --git a/src/GitVersion.Output.Tests/Output/Approved/WixFileTests.UpdateWixVersionFileWhenFileAlreadyExists.approved.txt b/src/GitVersion.Output.Tests/Output/Approved/WixFileTests.UpdateWixVersionFileWhenFileAlreadyExists.approved.txt index d935478f68..71739ed61f 100644 --- a/src/GitVersion.Output.Tests/Output/Approved/WixFileTests.UpdateWixVersionFileWhenFileAlreadyExists.approved.txt +++ b/src/GitVersion.Output.Tests/Output/Approved/WixFileTests.UpdateWixVersionFileWhenFileAlreadyExists.approved.txt @@ -23,6 +23,9 @@ <?define Sha="commitSha"?> <?define ShortSha="commitShortSha"?> <?define UncommittedChanges="0"?> + <?define VersionSourceDistance="5"?> + <?define VersionSourceIncrement="None"?> + <?define VersionSourceSemVer=""?> <?define VersionSourceSha="versionSourceSha"?> <?define WeightedPreReleaseNumber="0"?> </Include> \ No newline at end of file diff --git a/src/GitVersion.Output.Tests/Output/Approved/cs/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt b/src/GitVersion.Output.Tests/Output/Approved/cs/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt index 1289bd4dc8..93e2f292df 100644 --- a/src/GitVersion.Output.Tests/Output/Approved/cs/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt +++ b/src/GitVersion.Output.Tests/Output/Approved/cs/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt @@ -35,6 +35,9 @@ static class GitVersionInformation public const string Sha = "commitSha"; public const string ShortSha = "commitShortSha"; public const string UncommittedChanges = "0"; + public const string VersionSourceDistance = "5"; + public const string VersionSourceIncrement = "Patch"; + public const string VersionSourceSemVer = "1.2.2"; public const string VersionSourceSha = "versionSourceSha"; public const string WeightedPreReleaseNumber = "4"; } diff --git a/src/GitVersion.Output.Tests/Output/Approved/cs/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt b/src/GitVersion.Output.Tests/Output/Approved/cs/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt index 8cb6fbe737..7ba1fe1304 100644 --- a/src/GitVersion.Output.Tests/Output/Approved/cs/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt +++ b/src/GitVersion.Output.Tests/Output/Approved/cs/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt @@ -37,6 +37,9 @@ namespace My.Custom.Namespace public const string Sha = "commitSha"; public const string ShortSha = "commitShortSha"; public const string UncommittedChanges = "0"; + public const string VersionSourceDistance = "5"; + public const string VersionSourceIncrement = "Patch"; + public const string VersionSourceSemVer = "1.2.2"; public const string VersionSourceSha = "versionSourceSha"; public const string WeightedPreReleaseNumber = "4"; } diff --git a/src/GitVersion.Output.Tests/Output/Approved/fs/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt b/src/GitVersion.Output.Tests/Output/Approved/fs/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt index f653c20b31..3d29d5aae5 100644 --- a/src/GitVersion.Output.Tests/Output/Approved/fs/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt +++ b/src/GitVersion.Output.Tests/Output/Approved/fs/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt @@ -37,5 +37,8 @@ type GitVersionInformation = static member Sha = "commitSha" static member ShortSha = "commitShortSha" static member UncommittedChanges = "0" + static member VersionSourceDistance = "5" + static member VersionSourceIncrement = "Patch" + static member VersionSourceSemVer = "1.2.2" static member VersionSourceSha = "versionSourceSha" static member WeightedPreReleaseNumber = "4" diff --git a/src/GitVersion.Output.Tests/Output/Approved/fs/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt b/src/GitVersion.Output.Tests/Output/Approved/fs/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt index ac564fb232..5d6f1e25ca 100644 --- a/src/GitVersion.Output.Tests/Output/Approved/fs/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt +++ b/src/GitVersion.Output.Tests/Output/Approved/fs/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt @@ -37,5 +37,8 @@ type GitVersionInformation = static member Sha = "commitSha" static member ShortSha = "commitShortSha" static member UncommittedChanges = "0" + static member VersionSourceDistance = "5" + static member VersionSourceIncrement = "Patch" + static member VersionSourceSemVer = "1.2.2" static member VersionSourceSha = "versionSourceSha" static member WeightedPreReleaseNumber = "4" diff --git a/src/GitVersion.Output.Tests/Output/Approved/vb/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt b/src/GitVersion.Output.Tests/Output/Approved/vb/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt index 91cb09fa24..c75d2c99e2 100644 --- a/src/GitVersion.Output.Tests/Output/Approved/vb/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt +++ b/src/GitVersion.Output.Tests/Output/Approved/vb/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt @@ -38,6 +38,9 @@ Namespace Global Public Shared Sha As String = "commitSha" Public Shared ShortSha As String = "commitShortSha" Public Shared UncommittedChanges As String = "0" + Public Shared VersionSourceDistance As String = "5" + Public Shared VersionSourceIncrement As String = "Patch" + Public Shared VersionSourceSemVer As String = "1.2.2" Public Shared VersionSourceSha As String = "versionSourceSha" Public Shared WeightedPreReleaseNumber As String = "4" End Class diff --git a/src/GitVersion.Output.Tests/Output/Approved/vb/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt b/src/GitVersion.Output.Tests/Output/Approved/vb/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt index f1fc481aaa..a05afbc157 100644 --- a/src/GitVersion.Output.Tests/Output/Approved/vb/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt +++ b/src/GitVersion.Output.Tests/Output/Approved/vb/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt @@ -38,6 +38,9 @@ Namespace My.Custom.Namespace Public Shared Sha As String = "commitSha" Public Shared ShortSha As String = "commitShortSha" Public Shared UncommittedChanges As String = "0" + Public Shared VersionSourceDistance As String = "5" + Public Shared VersionSourceIncrement As String = "Patch" + Public Shared VersionSourceSemVer As String = "1.2.2" Public Shared VersionSourceSha As String = "versionSourceSha" Public Shared WeightedPreReleaseNumber As String = "4" End Class diff --git a/src/GitVersion.Output.Tests/Output/AssemblyFileVersionTests.cs b/src/GitVersion.Output.Tests/Output/AssemblyFileVersionTests.cs index d6f50b26ee..c2df5a2bdd 100644 --- a/src/GitVersion.Output.Tests/Output/AssemblyFileVersionTests.cs +++ b/src/GitVersion.Output.Tests/Output/AssemblyFileVersionTests.cs @@ -1,8 +1,8 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using GitVersion.Extensions; +using GitVersion.Tests; -namespace GitVersion.Core.Tests; +namespace GitVersion.Output.Tests; [TestFixture] public class AssemblyFileVersionTests : TestBase diff --git a/src/GitVersion.Output.Tests/Output/AssemblyInfoFileUpdaterTests.cs b/src/GitVersion.Output.Tests/Output/AssemblyInfoFileUpdaterTests.cs index 3b05e42d85..3551a56d69 100644 --- a/src/GitVersion.Output.Tests/Output/AssemblyInfoFileUpdaterTests.cs +++ b/src/GitVersion.Output.Tests/Output/AssemblyInfoFileUpdaterTests.cs @@ -1,29 +1,28 @@ using System.IO.Abstractions; using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; using GitVersion.Logging; using GitVersion.Output.AssemblyInfo; using GitVersion.OutputVariables; +using GitVersion.Tests; using GitVersion.VersionCalculation; -using Microsoft.Extensions.DependencyInjection; -namespace GitVersion.Core.Tests; +namespace GitVersion.Output.Tests; [TestFixture] [Parallelizable(ParallelScope.None)] public class AssemblyInfoFileUpdaterTests : TestBase { - private IVariableProvider variableProvider; - private ILog log; - private IFileSystem fileSystem; - private string workingDir; + private IVariableProvider variableProvider = null!; + private ILog log = null!; + private IFileSystem fileSystem = null!; + private string workingDir = null!; [OneTimeSetUp] - public void OneTimeSetUp() => workingDir = FileSystemHelper.Path.Combine(FileSystemHelper.Path.GetTempPath(), nameof(AssemblyInfoFileUpdaterTests)); + public void OneTimeSetUp() => this.workingDir = FileSystemHelper.Path.Combine(FileSystemHelper.Path.GetTempPath(), nameof(AssemblyInfoFileUpdaterTests)); [OneTimeTearDown] - public void OneTimeTearDown() => FileSystemHelper.Directory.DeleteDirectory(workingDir); + public void OneTimeTearDown() => FileSystemHelper.Directory.DeleteDirectory(this.workingDir); [SetUp] public void Setup() @@ -43,13 +42,13 @@ public void Setup() public void ShouldCreateAssemblyInfoFileWhenNotExistsAndEnsureAssemblyInfo(string fileExtension) { var assemblyInfoFile = "VersionAssemblyInfo." + fileExtension; - var fullPath = FileSystemHelper.Path.Combine(workingDir, assemblyInfoFile); + var fullPath = FileSystemHelper.Path.Combine(this.workingDir, assemblyInfoFile); var variables = this.variableProvider.GetVariablesFor( SemanticVersion.Parse("1.0.0", RegexPatterns.Configuration.DefaultTagPrefixRegexPattern), EmptyConfigurationBuilder.New.Build(), 0); using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(this.log, this.fileSystem); - assemblyInfoFileUpdater.Execute(variables, new(workingDir, true, assemblyInfoFile)); + assemblyInfoFileUpdater.Execute(variables, new(this.workingDir, true, assemblyInfoFile)); this.fileSystem.File.ReadAllText(fullPath).ShouldMatchApproved(c => c.SubFolder(FileSystemHelper.Path.Combine("Approved", fileExtension))); } @@ -60,13 +59,13 @@ public void ShouldCreateAssemblyInfoFileWhenNotExistsAndEnsureAssemblyInfo(strin public void ShouldCreateAssemblyInfoFileAtPathWhenNotExistsAndEnsureAssemblyInfo(string fileExtension) { var assemblyInfoFile = FileSystemHelper.Path.Combine("src", "Project", "Properties", $"VersionAssemblyInfo.{fileExtension}"); - var fullPath = FileSystemHelper.Path.Combine(workingDir, assemblyInfoFile); + var fullPath = FileSystemHelper.Path.Combine(this.workingDir, assemblyInfoFile); var variables = this.variableProvider.GetVariablesFor( SemanticVersion.Parse("1.0.0", RegexPatterns.Configuration.DefaultTagPrefixRegexPattern), EmptyConfigurationBuilder.New.Build(), 0 ); using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(this.log, this.fileSystem); - assemblyInfoFileUpdater.Execute(variables, new(workingDir, true, assemblyInfoFile)); + assemblyInfoFileUpdater.Execute(variables, new(this.workingDir, true, assemblyInfoFile)); this.fileSystem.File.ReadAllText(fullPath).ShouldMatchApproved(c => c.SubFolder(FileSystemHelper.Path.Combine("Approved", fileExtension))); } @@ -80,11 +79,11 @@ public void ShouldCreateAssemblyInfoFilesAtPathWhenNotExistsAndEnsureAssemblyInf var variables = this.variableProvider.GetVariablesFor(SemanticVersion.Parse("1.0.0", RegexPatterns.Configuration.DefaultTagPrefixRegexPattern), EmptyConfigurationBuilder.New.Build(), 0); using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(this.log, this.fileSystem); - assemblyInfoFileUpdater.Execute(variables, new(workingDir, true, [.. assemblyInfoFiles])); + assemblyInfoFileUpdater.Execute(variables, new(this.workingDir, true, [.. assemblyInfoFiles])); foreach (var item in assemblyInfoFiles) { - var fullPath = FileSystemHelper.Path.Combine(workingDir, item); + var fullPath = FileSystemHelper.Path.Combine(this.workingDir, item); this.fileSystem.File.ReadAllText(fullPath).ShouldMatchApproved(c => c.SubFolder(FileSystemHelper.Path.Combine("Approved", fileExtension))); } } @@ -95,13 +94,13 @@ public void ShouldCreateAssemblyInfoFilesAtPathWhenNotExistsAndEnsureAssemblyInf public void ShouldNotCreateAssemblyInfoFileWhenNotExistsAndNotEnsureAssemblyInfo(string fileExtension) { var assemblyInfoFile = "NoVersionAssemblyInfo." + fileExtension; - var fullPath = FileSystemHelper.Path.Combine(workingDir, assemblyInfoFile); + var fullPath = FileSystemHelper.Path.Combine(this.workingDir, assemblyInfoFile); var variables = this.variableProvider.GetVariablesFor( SemanticVersion.Parse("1.0.0", RegexPatterns.Configuration.DefaultTagPrefixRegexPattern), EmptyConfigurationBuilder.New.Build(), 0 ); using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(this.log, this.fileSystem); - assemblyInfoFileUpdater.Execute(variables, new(workingDir, false, assemblyInfoFile)); + assemblyInfoFileUpdater.Execute(variables, new(this.workingDir, false, assemblyInfoFile)); this.fileSystem.File.Exists(fullPath).ShouldBeFalse(); } @@ -112,13 +111,13 @@ public void ShouldNotCreateAssemblyInfoFileForUnknownSourceCodeAndEnsureAssembly this.fileSystem = Substitute.For<IFileSystem>(); const string assemblyInfoFile = "VersionAssemblyInfo.js"; - var fullPath = FileSystemHelper.Path.Combine(workingDir, assemblyInfoFile); + var fullPath = FileSystemHelper.Path.Combine(this.workingDir, assemblyInfoFile); var variables = this.variableProvider.GetVariablesFor( SemanticVersion.Parse("1.0.0", RegexPatterns.Configuration.DefaultTagPrefixRegexPattern), EmptyConfigurationBuilder.New.Build(), 0 ); using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(this.log, this.fileSystem); - assemblyInfoFileUpdater.Execute(variables, new(workingDir, true, assemblyInfoFile)); + assemblyInfoFileUpdater.Execute(variables, new(this.workingDir, true, assemblyInfoFile)); this.fileSystem.Received(1).File.WriteAllText(fullPath, Arg.Any<string>()); } @@ -134,9 +133,9 @@ public void ShouldStartSearchFromWorkingDirectory() ); using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(this.log, this.fileSystem); - assemblyInfoFileUpdater.Execute(variables, new(workingDir, false, [.. assemblyInfoFiles])); + assemblyInfoFileUpdater.Execute(variables, new(this.workingDir, false, [.. assemblyInfoFiles])); - this.fileSystem.Received(1).Directory.EnumerateFiles(Arg.Is(workingDir), Arg.Any<string>(), Arg.Any<SearchOption>()); + this.fileSystem.Received(1).Directory.EnumerateFiles(Arg.Is(this.workingDir), Arg.Any<string>(), Arg.Any<SearchOption>()); } [TestCase("cs", "[assembly: AssemblyVersion(\"1.0.0.0\")]\r\n[assembly: AssemblyInformationalVersion(\"1.0.0.0\")]\r\n[assembly: AssemblyFileVersion(\"1.0.0.0\")]")] @@ -145,12 +144,12 @@ public void ShouldStartSearchFromWorkingDirectory() public void ShouldReplaceAssemblyVersion(string fileExtension, string assemblyFileContent) { var assemblyInfoFile = "AssemblyInfo." + fileExtension; - var fileName = FileSystemHelper.Path.Combine(workingDir, assemblyInfoFile); + var fileName = FileSystemHelper.Path.Combine(this.workingDir, assemblyInfoFile); VerifyAssemblyInfoFile(assemblyFileContent, fileName, AssemblyVersioningScheme.MajorMinor, (fs, variables) => { using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(this.log, fs); - assemblyInfoFileUpdater.Execute(variables, new(workingDir, false, assemblyInfoFile)); + assemblyInfoFileUpdater.Execute(variables, new(this.workingDir, false, assemblyInfoFile)); fs.Received().File.WriteAllText(fileName, Arg.Is<string>(s => s.Contains("""AssemblyVersion("2.3.0.0")""") && @@ -165,12 +164,12 @@ public void ShouldReplaceAssemblyVersion(string fileExtension, string assemblyFi public void ShouldNotReplaceAssemblyVersionWhenVersionSchemeIsNone(string fileExtension, string assemblyFileContent) { var assemblyInfoFile = "AssemblyInfo." + fileExtension; - var fileName = FileSystemHelper.Path.Combine(workingDir, assemblyInfoFile); + var fileName = FileSystemHelper.Path.Combine(this.workingDir, assemblyInfoFile); VerifyAssemblyInfoFile(assemblyFileContent, fileName, AssemblyVersioningScheme.None, (fs, variables) => { using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(this.log, fs); - assemblyInfoFileUpdater.Execute(variables, new(workingDir, false, assemblyInfoFile)); + assemblyInfoFileUpdater.Execute(variables, new(this.workingDir, false, assemblyInfoFile)); assemblyFileContent = fs.File.ReadAllText(fileName); assemblyFileContent.ShouldMatchApproved(c => c.SubFolder(FileSystemHelper.Path.Combine("Approved", fileExtension))); @@ -183,12 +182,12 @@ public void ShouldNotReplaceAssemblyVersionWhenVersionSchemeIsNone(string fileEx public void ShouldReplaceAssemblyVersionInRelativePath(string fileExtension, string assemblyFileContent) { var assemblyInfoFile = FileSystemHelper.Path.Combine("Project", "src", "Properties", "AssemblyInfo." + fileExtension); - var fileName = FileSystemHelper.Path.Combine(workingDir, assemblyInfoFile); + var fileName = FileSystemHelper.Path.Combine(this.workingDir, assemblyInfoFile); VerifyAssemblyInfoFile(assemblyFileContent, fileName, AssemblyVersioningScheme.MajorMinor, (fs, variables) => { using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(this.log, fs); - assemblyInfoFileUpdater.Execute(variables, new(workingDir, false, assemblyInfoFile)); + assemblyInfoFileUpdater.Execute(variables, new(this.workingDir, false, assemblyInfoFile)); fs.Received().File.WriteAllText(fileName, Arg.Is<string>(s => s.Contains("""AssemblyVersion("2.3.0.0")""") && @@ -203,12 +202,12 @@ public void ShouldReplaceAssemblyVersionInRelativePath(string fileExtension, str public void ShouldReplaceAssemblyVersionInRelativePathWithWhiteSpace(string fileExtension, string assemblyFileContent) { var assemblyInfoFile = FileSystemHelper.Path.Combine("Project", "src", "Properties", "AssemblyInfo." + fileExtension); - var fileName = FileSystemHelper.Path.Combine(workingDir, assemblyInfoFile); + var fileName = FileSystemHelper.Path.Combine(this.workingDir, assemblyInfoFile); VerifyAssemblyInfoFile(assemblyFileContent, fileName, AssemblyVersioningScheme.MajorMinor, (fs, variables) => { using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(this.log, fs); - assemblyInfoFileUpdater.Execute(variables, new(workingDir, false, assemblyInfoFile)); + assemblyInfoFileUpdater.Execute(variables, new(this.workingDir, false, assemblyInfoFile)); fs.Received().File.WriteAllText(fileName, Arg.Is<string>(s => s.Contains("""AssemblyVersion("2.3.0.0")""") && @@ -223,12 +222,12 @@ public void ShouldReplaceAssemblyVersionInRelativePathWithWhiteSpace(string file public void ShouldReplaceAssemblyVersionWithStar(string fileExtension, string assemblyFileContent) { var assemblyInfoFile = "AssemblyInfo." + fileExtension; - var fileName = FileSystemHelper.Path.Combine(workingDir, assemblyInfoFile); + var fileName = FileSystemHelper.Path.Combine(this.workingDir, assemblyInfoFile); VerifyAssemblyInfoFile(assemblyFileContent, fileName, AssemblyVersioningScheme.MajorMinor, (fs, variables) => { using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(this.log, fs); - assemblyInfoFileUpdater.Execute(variables, new(workingDir, false, assemblyInfoFile)); + assemblyInfoFileUpdater.Execute(variables, new(this.workingDir, false, assemblyInfoFile)); fs.Received().File.WriteAllText(fileName, Arg.Is<string>(s => s.Contains("""AssemblyVersion("2.3.0.0")""") && @@ -243,12 +242,12 @@ public void ShouldReplaceAssemblyVersionWithStar(string fileExtension, string as public void ShouldReplaceAssemblyVersionWithAttributeSuffix(string fileExtension, string assemblyFileContent) { var assemblyInfoFile = "AssemblyInfo." + fileExtension; - var fileName = FileSystemHelper.Path.Combine(workingDir, assemblyInfoFile); + var fileName = FileSystemHelper.Path.Combine(this.workingDir, assemblyInfoFile); VerifyAssemblyInfoFile(assemblyFileContent, fileName, verify: (fs, variables) => { using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(this.log, fs); - assemblyInfoFileUpdater.Execute(variables, new(workingDir, false, assemblyInfoFile)); + assemblyInfoFileUpdater.Execute(variables, new(this.workingDir, false, assemblyInfoFile)); fs.Received().File.WriteAllText(fileName, Arg.Is<string>(s => !s.Contains("""AssemblyVersionAttribute("1.0.0.0")""") && @@ -266,12 +265,12 @@ public void ShouldReplaceAssemblyVersionWithAttributeSuffix(string fileExtension public void ShouldAddAssemblyVersionIfMissingFromInfoFile(string fileExtension) { var assemblyInfoFile = "AssemblyInfo." + fileExtension; - var fileName = FileSystemHelper.Path.Combine(workingDir, assemblyInfoFile); + var fileName = FileSystemHelper.Path.Combine(this.workingDir, assemblyInfoFile); VerifyAssemblyInfoFile("", fileName, AssemblyVersioningScheme.MajorMinor, (fs, variables) => { using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(this.log, fs); - assemblyInfoFileUpdater.Execute(variables, new(workingDir, false, assemblyInfoFile)); + assemblyInfoFileUpdater.Execute(variables, new(this.workingDir, false, assemblyInfoFile)); fs.Received().File.WriteAllText(fileName, Arg.Is<string>(s => s.Contains("""AssemblyVersion("2.3.0.0")""") && @@ -286,12 +285,12 @@ public void ShouldAddAssemblyVersionIfMissingFromInfoFile(string fileExtension) public void ShouldReplaceAlreadySubstitutedValues(string fileExtension, string assemblyFileContent) { var assemblyInfoFile = "AssemblyInfo." + fileExtension; - var fileName = FileSystemHelper.Path.Combine(workingDir, assemblyInfoFile); + var fileName = FileSystemHelper.Path.Combine(this.workingDir, assemblyInfoFile); VerifyAssemblyInfoFile(assemblyFileContent, fileName, AssemblyVersioningScheme.MajorMinor, (fs, variables) => { using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(this.log, fs); - assemblyInfoFileUpdater.Execute(variables, new(workingDir, false, assemblyInfoFile)); + assemblyInfoFileUpdater.Execute(variables, new(this.workingDir, false, assemblyInfoFile)); fs.Received().File.WriteAllText(fileName, Arg.Is<string>(s => s.Contains("""AssemblyVersion("2.3.0.0")""") && @@ -306,12 +305,12 @@ public void ShouldReplaceAlreadySubstitutedValues(string fileExtension, string a public void ShouldReplaceAssemblyVersionWhenCreatingAssemblyVersionFileAndEnsureAssemblyInfo(string fileExtension, string assemblyFileContent) { var assemblyInfoFile = "AssemblyInfo." + fileExtension; - var fileName = FileSystemHelper.Path.Combine(workingDir, assemblyInfoFile); + var fileName = FileSystemHelper.Path.Combine(this.workingDir, assemblyInfoFile); VerifyAssemblyInfoFile(assemblyFileContent, fileName, verify: (fs, variables) => { using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(this.log, fs); - assemblyInfoFileUpdater.Execute(variables, new(workingDir, false, assemblyInfoFile)); + assemblyInfoFileUpdater.Execute(variables, new(this.workingDir, false, assemblyInfoFile)); fs.Received().File.WriteAllText(fileName, Arg.Is<string>(s => s.Contains("""AssemblyVersion("2.3.1.0")""") && @@ -326,12 +325,12 @@ public void ShouldReplaceAssemblyVersionWhenCreatingAssemblyVersionFileAndEnsure public void ShouldReplaceAssemblyVersionInRelativePathWithVariables(string fileExtension, string assemblyFileContent) { var assemblyInfoFile = FileSystemHelper.Path.Combine("Project", "src", "Properties", "AssemblyInfo." + fileExtension); - var fileName = FileSystemHelper.Path.Combine(workingDir, assemblyInfoFile); + var fileName = FileSystemHelper.Path.Combine(this.workingDir, assemblyInfoFile); VerifyAssemblyInfoFile(assemblyFileContent, fileName, AssemblyVersioningScheme.MajorMinor, (fs, variables) => { using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(this.log, fs); - assemblyInfoFileUpdater.Execute(variables, new(workingDir, false, assemblyInfoFile)); + assemblyInfoFileUpdater.Execute(variables, new(this.workingDir, false, assemblyInfoFile)); fs.Received().File.WriteAllText(fileName, Arg.Is<string>(s => s.Contains("""AssemblyVersion("2.3.0.0")""") && @@ -346,12 +345,12 @@ public void ShouldReplaceAssemblyVersionInRelativePathWithVariables(string fileE public void ShouldReplaceAssemblyVersionInRelativePathWithVariablesAndWhiteSpace(string fileExtension, string assemblyFileContent) { var assemblyInfoFile = FileSystemHelper.Path.Combine("Project", "src", "Properties", "AssemblyInfo." + fileExtension); - var fileName = FileSystemHelper.Path.Combine(workingDir, assemblyInfoFile); + var fileName = FileSystemHelper.Path.Combine(this.workingDir, assemblyInfoFile); VerifyAssemblyInfoFile(assemblyFileContent, fileName, AssemblyVersioningScheme.MajorMinor, (fs, variables) => { using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(this.log, fs); - assemblyInfoFileUpdater.Execute(variables, new(workingDir, false, assemblyInfoFile)); + assemblyInfoFileUpdater.Execute(variables, new(this.workingDir, false, assemblyInfoFile)); fs.Received().File.WriteAllText(fileName, Arg.Is<string>(s => s.Contains("""AssemblyVersion("2.3.0.0")""") && @@ -366,12 +365,12 @@ public void ShouldReplaceAssemblyVersionInRelativePathWithVariablesAndWhiteSpace public void ShouldAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFile(string fileExtension, string assemblyFileContent) { var assemblyInfoFile = "AssemblyInfo." + fileExtension; - var fileName = FileSystemHelper.Path.Combine(workingDir, assemblyInfoFile); + var fileName = FileSystemHelper.Path.Combine(this.workingDir, assemblyInfoFile); VerifyAssemblyInfoFile(assemblyFileContent, fileName, verify: (fs, variables) => { using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(this.log, fs); - assemblyInfoFileUpdater.Execute(variables, new(workingDir, false, assemblyInfoFile)); + assemblyInfoFileUpdater.Execute(variables, new(this.workingDir, false, assemblyInfoFile)); assemblyFileContent = fs.File.ReadAllText(fileName); assemblyFileContent.ShouldMatchApproved(c => c.SubFolder(FileSystemHelper.Path.Combine("Approved", fileExtension))); @@ -384,12 +383,12 @@ public void ShouldAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFile public void Issue1183ShouldAddFSharpAssemblyInformationalVersionBesideOtherAttributes(string fileExtension, string assemblyFileContent) { var assemblyInfoFile = "AssemblyInfo." + fileExtension; - var fileName = FileSystemHelper.Path.Combine(workingDir, assemblyInfoFile); + var fileName = FileSystemHelper.Path.Combine(this.workingDir, assemblyInfoFile); VerifyAssemblyInfoFile(assemblyFileContent, fileName, verify: (fs, variables) => { using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(this.log, fs); - assemblyInfoFileUpdater.Execute(variables, new(workingDir, false, assemblyInfoFile)); + assemblyInfoFileUpdater.Execute(variables, new(this.workingDir, false, assemblyInfoFile)); assemblyFileContent = fs.File.ReadAllText(fileName); assemblyFileContent.ShouldMatchApproved(c => c.SubFolder(FileSystemHelper.Path.Combine("Approved", fileExtension))); @@ -402,12 +401,12 @@ public void Issue1183ShouldAddFSharpAssemblyInformationalVersionBesideOtherAttri public void ShouldNotAddAssemblyInformationalVersionWhenVersionSchemeIsNone(string fileExtension, string assemblyFileContent) { var assemblyInfoFile = "AssemblyInfo." + fileExtension; - var fileName = FileSystemHelper.Path.Combine(workingDir, assemblyInfoFile); + var fileName = FileSystemHelper.Path.Combine(this.workingDir, assemblyInfoFile); VerifyAssemblyInfoFile(assemblyFileContent, fileName, AssemblyVersioningScheme.None, (fs, variables) => { using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(this.log, fs); - assemblyInfoFileUpdater.Execute(variables, new(workingDir, false, assemblyInfoFile)); + assemblyInfoFileUpdater.Execute(variables, new(this.workingDir, false, assemblyInfoFile)); assemblyFileContent = fs.File.ReadAllText(fileName); assemblyFileContent.ShouldMatchApproved(c => c.SubFolder(FileSystemHelper.Path.Combine("Approved", fileExtension))); @@ -421,7 +420,24 @@ private void VerifyAssemblyInfoFile( Action<IFileSystem, GitVersionVariables>? verify = null) { var file = Substitute.For<IFile>(); - var version = new SemanticVersion { BuildMetaData = new("versionSourceHash", 3, "foo", "hash", "shortHash", DateTimeOffset.Now, 0), Major = 2, Minor = 3, Patch = 1 }; + var versionSourceSemVer = new SemanticVersion(1, 2, 2); + var version = new SemanticVersion + { + Major = 2, + Minor = 3, + Patch = 1, + BuildMetaData = new( + versionSourceSemVer, + "versionSourceHash", + 3, + "foo", + "hash", + "shortHash", + DateTimeOffset.Now, + 0, + VersionField.Major + ) + }; file.Exists(fileName).Returns(true); file.ReadAllText(fileName).Returns(assemblyFileContent); diff --git a/src/GitVersion.Output.Tests/Output/FormatArgumentTests.cs b/src/GitVersion.Output.Tests/Output/FormatArgumentTests.cs index b93fdec479..549d4093d3 100644 --- a/src/GitVersion.Output.Tests/Output/FormatArgumentTests.cs +++ b/src/GitVersion.Output.Tests/Output/FormatArgumentTests.cs @@ -1,11 +1,10 @@ -using GitVersion.Core.Tests.Helpers; using GitVersion.Logging; using GitVersion.Output.OutputGenerator; +using GitVersion.Testing.Extensions; +using GitVersion.Tests; using LibGit2Sharp; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Options; -namespace GitVersion.Core.Tests; +namespace GitVersion.Output.Tests; [TestFixture] public class FormatArgumentTests : TestBase @@ -16,15 +15,15 @@ public class FormatArgumentTests : TestBase [TestCase("{Major}.{Minor}.{Patch}.{PreReleaseTag}", "1.1.0.foo.1")] public void ShouldOutputFormatTests(string format, string expectedValue) { - var fixture = CreateTestRepository(); + using var fixture = CreateTestRepository(); var consoleBuilder = new StringBuilder(); IConsole consoleAdapter = new TestConsoleAdapter(consoleBuilder); - var sp = ConfigureServices(services => + var sp = fixture.ConfigureServices((services, testFixture) => { - var options = Options.Create(new GitVersionOptions { WorkingDirectory = fixture.RepositoryPath, RepositoryInfo = { TargetBranch = fixture.Repository.Head.CanonicalName }, Format = format, Output = { OutputType.Json } }); - var repository = fixture.Repository.ToGitRepository(); + var options = Options.Create(new GitVersionOptions { WorkingDirectory = testFixture.RepositoryPath, RepositoryInfo = { TargetBranch = testFixture.Repository.Head.CanonicalName }, Format = format, Output = { OutputType.Json } }); + var repository = testFixture.Repository.ToGitRepository(); services.AddSingleton(options); services.AddSingleton(repository); @@ -43,16 +42,16 @@ public void ShouldOutputFormatTests(string format, string expectedValue) [TestCase("{Major}.{Minor}.{Patch}.{env:CustomVar}", "1.1.0.foo")] public void ShouldOutputFormatWithEnvironmentVariablesTests(string format, string expectedValue) { - var fixture = CreateTestRepository(); + using var fixture = CreateTestRepository(); var consoleBuilder = new StringBuilder(); IConsole console = new TestConsoleAdapter(consoleBuilder); var environment = new TestEnvironment(); environment.SetEnvironmentVariable("CustomVar", "foo"); - var sp = ConfigureServices(services => + var sp = fixture.ConfigureServices((services, testFixture) => { - var options = Options.Create(new GitVersionOptions { WorkingDirectory = fixture.RepositoryPath, RepositoryInfo = { TargetBranch = fixture.Repository.Head.CanonicalName }, Format = format, Output = { OutputType.Json } }); - var repository = fixture.Repository.ToGitRepository(); + var options = Options.Create(new GitVersionOptions { WorkingDirectory = testFixture.RepositoryPath, RepositoryInfo = { TargetBranch = testFixture.Repository.Head.CanonicalName }, Format = format, Output = { OutputType.Json } }); + var repository = testFixture.Repository.ToGitRepository(); services.AddSingleton(options); services.AddSingleton(repository); @@ -77,15 +76,15 @@ public void ShouldOutputFormatWithEnvironmentVariablesTests(string format, strin [TestCase("FullSemVer", "'1.1.0-foo.1+1'")] public void ShouldOutputDotEnvEntries(string variableName, string expectedValue) { - var fixture = CreateTestRepository(); + using var fixture = CreateTestRepository(); var consoleBuilder = new StringBuilder(); IConsole consoleAdapter = new TestConsoleAdapter(consoleBuilder); - var sp = ConfigureServices(services => + var sp = fixture.ConfigureServices((services, testFixture) => { - var options = Options.Create(new GitVersionOptions { WorkingDirectory = fixture.RepositoryPath, RepositoryInfo = { TargetBranch = fixture.Repository.Head.CanonicalName }, Output = { OutputType.DotEnv } }); - var repository = fixture.Repository.ToGitRepository(); + var options = Options.Create(new GitVersionOptions { WorkingDirectory = testFixture.RepositoryPath, RepositoryInfo = { TargetBranch = testFixture.Repository.Head.CanonicalName }, Output = { OutputType.DotEnv } }); + var repository = testFixture.Repository.ToGitRepository(); services.AddSingleton(options); services.AddSingleton(repository); @@ -103,15 +102,15 @@ public void ShouldOutputDotEnvEntries(string variableName, string expectedValue) [TestCase] public void ShouldOutputAllCalculatedVariablesAsDotEnvEntries() { - var fixture = CreateTestRepository(); + using var fixture = CreateTestRepository(); var consoleBuilder = new StringBuilder(); IConsole consoleAdapter = new TestConsoleAdapter(consoleBuilder); - var sp = ConfigureServices(services => + var sp = fixture.ConfigureServices((services, testFixture) => { - var options = Options.Create(new GitVersionOptions { WorkingDirectory = fixture.RepositoryPath, RepositoryInfo = { TargetBranch = fixture.Repository.Head.CanonicalName }, Output = { OutputType.DotEnv } }); - var repository = fixture.Repository.ToGitRepository(); + var options = Options.Create(new GitVersionOptions { WorkingDirectory = testFixture.RepositoryPath, RepositoryInfo = { TargetBranch = testFixture.Repository.Head.CanonicalName }, Output = { OutputType.DotEnv } }); + var repository = testFixture.Repository.ToGitRepository(); services.AddSingleton(options); services.AddSingleton(repository); @@ -138,15 +137,15 @@ public void ShouldOutputAllCalculatedVariablesAsDotEnvEntries() [TestCase("PreReleaseLabelWithDash", "''")] public void ShouldOutputAllDotEnvEntriesEvenForMinimalRepositories(string variableName, string expectedValue) { - var fixture = CreateMinimalTestRepository(); + using var fixture = CreateMinimalTestRepository(); var consoleBuilder = new StringBuilder(); IConsole consoleAdapter = new TestConsoleAdapter(consoleBuilder); - var sp = ConfigureServices(services => + var sp = fixture.ConfigureServices((services, testFixture) => { - var options = Options.Create(new GitVersionOptions { WorkingDirectory = fixture.RepositoryPath, RepositoryInfo = { TargetBranch = fixture.Repository.Head.CanonicalName }, Output = { OutputType.DotEnv } }); - var repository = fixture.Repository.ToGitRepository(); + var options = Options.Create(new GitVersionOptions { WorkingDirectory = testFixture.RepositoryPath, RepositoryInfo = { TargetBranch = testFixture.Repository.Head.CanonicalName }, Output = { OutputType.DotEnv } }); + var repository = testFixture.Repository.ToGitRepository(); services.AddSingleton(options); services.AddSingleton(repository); @@ -164,15 +163,15 @@ public void ShouldOutputAllDotEnvEntriesEvenForMinimalRepositories(string variab [TestCase] public void ShouldOutputAllCalculatedVariablesAsDotEnvEntriesEvenForMinimalRepositories() { - var fixture = CreateMinimalTestRepository(); + using var fixture = CreateMinimalTestRepository(); var consoleBuilder = new StringBuilder(); IConsole consoleAdapter = new TestConsoleAdapter(consoleBuilder); - var sp = ConfigureServices(services => + var sp = fixture.ConfigureServices((services, testFixture) => { - var options = Options.Create(new GitVersionOptions { WorkingDirectory = fixture.RepositoryPath, RepositoryInfo = { TargetBranch = fixture.Repository.Head.CanonicalName }, Output = { OutputType.DotEnv } }); - var repository = fixture.Repository.ToGitRepository(); + var options = Options.Create(new GitVersionOptions { WorkingDirectory = testFixture.RepositoryPath, RepositoryInfo = { TargetBranch = testFixture.Repository.Head.CanonicalName }, Output = { OutputType.DotEnv } }); + var repository = testFixture.Repository.ToGitRepository(); services.AddSingleton(options); services.AddSingleton(repository); diff --git a/src/GitVersion.Output.Tests/Output/GitVersionInfoGeneratorTests.cs b/src/GitVersion.Output.Tests/Output/GitVersionInfoGeneratorTests.cs index f179c64469..3dcebb1892 100644 --- a/src/GitVersion.Output.Tests/Output/GitVersionInfoGeneratorTests.cs +++ b/src/GitVersion.Output.Tests/Output/GitVersionInfoGeneratorTests.cs @@ -1,12 +1,12 @@ +using System.Globalization; using System.IO.Abstractions; using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; using GitVersion.Output.GitVersionInfo; +using GitVersion.Tests; using GitVersion.VersionCalculation; -using Microsoft.Extensions.DependencyInjection; -namespace GitVersion.Core.Tests; +namespace GitVersion.Output.Tests; [TestFixture] [Parallelizable(ParallelScope.None)] @@ -20,35 +20,9 @@ public class GitVersionInfoGeneratorTests : TestBase [TestCase("vb")] public void ShouldCreateFile(string fileExtension) { - var semanticVersion = new SemanticVersion - { - Major = 1, - Minor = 2, - Patch = 3, - PreReleaseTag = "unstable4", - BuildMetaData = new("versionSourceSha", 5, - "feature1", "commitSha", "commitShortSha", DateTimeOffset.Parse("2014-03-06 23:59:59Z"), 0) - }; - - var sp = ConfigureServices(); - - var fileSystem = sp.GetRequiredService<IFileSystem>(); - - var directory = FileSystemHelper.Path.Combine(FileSystemHelper.Path.GetTempPath(), "GitVersionInfoGeneratorTests", Guid.NewGuid().ToString()); - if (!fileSystem.Directory.Exists(directory)) - fileSystem.Directory.CreateDirectory(directory); - var fileName = "GitVersionInformation.g." + fileExtension; - var fullPath = FileSystemHelper.Path.Combine(directory, fileName); - - var variableProvider = sp.GetRequiredService<IVariableProvider>(); - var variables = variableProvider.GetVariablesFor(semanticVersion, EmptyConfigurationBuilder.New.Build(), 0); - using var generator = sp.GetRequiredService<IGitVersionInfoGenerator>(); - - generator.Execute(variables, new(directory, fileName)); - - fileSystem.File.ReadAllText(fullPath).ShouldMatchApproved(c => c.SubFolder(FileSystemHelper.Path.Combine("Approved", fileExtension))); + var fileContents = GenerateGitVersionInformationFile(fileExtension); - FileSystemHelper.Directory.DeleteDirectory(directory); + fileContents.ShouldMatchApproved(c => c.SubFolder(FileSystemHelper.Path.Combine("Approved", fileExtension))); } /// <summary> @@ -61,34 +35,69 @@ public void ShouldProperlyOutputNamespaceDeclaration(string fileExtension) { const string targetNamespace = "My.Custom.Namespace"; - var semanticVersion = new SemanticVersion + var fileContents = GenerateGitVersionInformationFile(fileExtension, targetNamespace); + + fileContents.ShouldMatchApproved(c => c.SubFolder(FileSystemHelper.Path.Combine("Approved", fileExtension))); + } + + private static SemanticVersion CreateSemanticVersion() + { + var versionSourceSemVer = new SemanticVersion(1, 2, 2); + return new SemanticVersion { Major = 1, Minor = 2, Patch = 3, PreReleaseTag = "unstable4", - BuildMetaData = new("versionSourceSha", 5, - "feature1", "commitSha", "commitShortSha", DateTimeOffset.Parse("2014-03-06 23:59:59Z"), 0) + BuildMetaData = new( + versionSourceSemVer, + "versionSourceSha", + 5, + "feature1", + "commitSha", + "commitShortSha", + DateTimeOffset.Parse("2014-03-06 23:59:59Z", CultureInfo.InvariantCulture), + 0, + VersionField.Patch) }; + } - var sp = ConfigureServices(); - - var fileSystem = sp.GetRequiredService<IFileSystem>(); + private static (string Directory, string FileName, string FullPath) CreateTempOutputPath(IFileSystem fileSystem, string fileExtension) + { + var directory = FileSystemHelper.Path.Combine( + FileSystemHelper.Path.GetTempPath(), + nameof(GitVersionInfoGeneratorTests), + Guid.NewGuid().ToString()); - var directory = FileSystemHelper.Path.Combine(FileSystemHelper.Path.GetTempPath(), "GitVersionInfoGeneratorTests", Guid.NewGuid().ToString()); if (!fileSystem.Directory.Exists(directory)) fileSystem.Directory.CreateDirectory(directory); + var fileName = "GitVersionInformation.g." + fileExtension; var fullPath = FileSystemHelper.Path.Combine(directory, fileName); + return (directory, fileName, fullPath); + } + + private static string GenerateGitVersionInformationFile(string fileExtension, string? targetNamespace = null) + { + var semanticVersion = CreateSemanticVersion(); - var variableProvider = sp.GetRequiredService<IVariableProvider>(); - var variables = variableProvider.GetVariablesFor(semanticVersion, EmptyConfigurationBuilder.New.Build(), 0); - using var generator = sp.GetRequiredService<IGitVersionInfoGenerator>(); + var sp = ConfigureServices(); + var fileSystem = sp.GetRequiredService<IFileSystem>(); - generator.Execute(variables, new(directory, fileName, targetNamespace)); + var (directory, fileName, fullPath) = CreateTempOutputPath(fileSystem, fileExtension); + try + { + var variables = sp.GetRequiredService<IVariableProvider>() + .GetVariablesFor(semanticVersion, EmptyConfigurationBuilder.New.Build(), 0); - fileSystem.File.ReadAllText(fullPath).ShouldMatchApproved(c => c.SubFolder(FileSystemHelper.Path.Combine("Approved", fileExtension))); + using var generator = sp.GetRequiredService<IGitVersionInfoGenerator>(); + generator.Execute(variables, new(directory, fileName, targetNamespace)); - FileSystemHelper.Directory.DeleteDirectory(directory); + return fileSystem.File.ReadAllText(fullPath); + } + finally + { + FileSystemHelper.Directory.DeleteDirectory(directory); + } } } diff --git a/src/GitVersion.Output.Tests/Output/InformationalVersionBuilderTests.cs b/src/GitVersion.Output.Tests/Output/InformationalVersionBuilderTests.cs index b9e1bb6a24..2f5bd51147 100644 --- a/src/GitVersion.Output.Tests/Output/InformationalVersionBuilderTests.cs +++ b/src/GitVersion.Output.Tests/Output/InformationalVersionBuilderTests.cs @@ -1,6 +1,6 @@ -using GitVersion.Core.Tests.Helpers; +using GitVersion.Tests; -namespace GitVersion.Core.Tests; +namespace GitVersion.Output.Tests; [TestFixture] public class InformationalVersionBuilderTests : TestBase @@ -21,13 +21,14 @@ public class InformationalVersionBuilderTests : TestBase public void ValidateInformationalVersionBuilder(string branchName, string sha, string shortSha, int major, int minor, int patch, string? tag, string? versionSourceSha, int? commitsSinceTag, string versionString) { + var versionSourceSemVer = new SemanticVersion(1, 1, 1); var semanticVersion = new SemanticVersion { Major = major, Minor = minor, Patch = patch, PreReleaseTag = tag, - BuildMetaData = new(versionSourceSha, commitsSinceTag, branchName, sha, shortSha, DateTimeOffset.MinValue, 0) + BuildMetaData = new(versionSourceSemVer, versionSourceSha, commitsSinceTag, branchName, sha, shortSha, DateTimeOffset.MinValue, 0, VersionField.Minor) }; var informationalVersion = semanticVersion.ToString("i"); diff --git a/src/GitVersion.Output.Tests/Output/ProjectFileUpdaterTests.cs b/src/GitVersion.Output.Tests/Output/ProjectFileUpdaterTests.cs index aac07abadb..c2f919f79d 100644 --- a/src/GitVersion.Output.Tests/Output/ProjectFileUpdaterTests.cs +++ b/src/GitVersion.Output.Tests/Output/ProjectFileUpdaterTests.cs @@ -1,26 +1,25 @@ using System.IO.Abstractions; using System.Xml.Linq; using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; using GitVersion.Logging; using GitVersion.Output.AssemblyInfo; using GitVersion.OutputVariables; +using GitVersion.Tests; using GitVersion.VersionCalculation; -using Microsoft.Extensions.DependencyInjection; -namespace GitVersion.Core.Tests; +namespace GitVersion.Output.Tests; [TestFixture] [Parallelizable(ParallelScope.None)] public class ProjectFileUpdaterTests : TestBase { - private const string TargetFramework = "net8.0"; - private IVariableProvider variableProvider; - private ILog log; - private IFileSystem fileSystem; - private ProjectFileUpdater projectFileUpdater; - private List<string> logMessages; + private const string TargetFramework = "net10.0"; + private IVariableProvider variableProvider = null!; + private ILog log = null!; + private IFileSystem fileSystem = null!; + private ProjectFileUpdater projectFileUpdater = null!; + private List<string> logMessages = null!; [SetUp] public void Setup() @@ -56,10 +55,10 @@ public void CanUpdateProjectFileWithSdkProjectFileXml(string sdk) </PropertyGroup> </Project> """; - var canUpdate = projectFileUpdater.CanUpdateProjectFile(XElement.Parse(xml)); + var canUpdate = this.projectFileUpdater.CanUpdateProjectFile(XElement.Parse(xml)); canUpdate.ShouldBe(true); - logMessages.ShouldBeEmpty(); + this.logMessages.ShouldBeEmpty(); } [TestCase($""" @@ -72,13 +71,13 @@ public void CanUpdateProjectFileWithSdkProjectFileXml(string sdk) """)] public void CannotUpdateProjectFileWithIncorrectProjectSdk(string xml) { - var canUpdate = projectFileUpdater.CanUpdateProjectFile(XElement.Parse(xml)); + var canUpdate = this.projectFileUpdater.CanUpdateProjectFile(XElement.Parse(xml)); canUpdate.ShouldBe(false); - logMessages.ShouldNotBeEmpty(); - logMessages.Count.ShouldBe(1); - logMessages[0].ShouldContain("Specified project file Sdk (SomeOtherProject.Sdk) is not supported, please ensure the project sdk starts with 'Microsoft.NET.Sdk' or 'Microsoft.Build.Sql'"); + this.logMessages.ShouldNotBeEmpty(); + this.logMessages.Count.ShouldBe(1); + this.logMessages[0].ShouldContain("Specified project file Sdk (SomeOtherProject.Sdk) is not supported, please ensure the project sdk starts with 'Microsoft.NET.Sdk' or 'Microsoft.Build.Sql'"); } [TestCase($""" @@ -91,13 +90,13 @@ public void CannotUpdateProjectFileWithIncorrectProjectSdk(string xml) """)] public void CannotUpdateProjectFileWithMissingProjectSdk(string xml) { - var canUpdate = projectFileUpdater.CanUpdateProjectFile(XElement.Parse(xml)); + var canUpdate = this.projectFileUpdater.CanUpdateProjectFile(XElement.Parse(xml)); canUpdate.ShouldBe(false); - logMessages.ShouldNotBeEmpty(); - logMessages.Count.ShouldBe(1); - logMessages[0].ShouldContain("Specified project file Sdk () is not supported, please ensure the project sdk starts with 'Microsoft.NET.Sdk' or 'Microsoft.Build.Sql'"); + this.logMessages.ShouldNotBeEmpty(); + this.logMessages.Count.ShouldBe(1); + this.logMessages[0].ShouldContain("Specified project file Sdk () is not supported, please ensure the project sdk starts with 'Microsoft.NET.Sdk' or 'Microsoft.Build.Sql'"); } [TestCase($""" @@ -111,13 +110,13 @@ public void CannotUpdateProjectFileWithMissingProjectSdk(string xml) """)] public void CannotUpdateProjectFileWithoutAssemblyInfoGeneration(string xml) { - var canUpdate = projectFileUpdater.CanUpdateProjectFile(XElement.Parse(xml)); + var canUpdate = this.projectFileUpdater.CanUpdateProjectFile(XElement.Parse(xml)); canUpdate.ShouldBe(false); - logMessages.ShouldNotBeEmpty(); - logMessages.Count.ShouldBe(1); - logMessages[0].ShouldContain("Project file specifies <GenerateAssemblyInfo>false</GenerateAssemblyInfo>: versions set in this project file will not affect the output artifacts"); + this.logMessages.ShouldNotBeEmpty(); + this.logMessages.Count.ShouldBe(1); + this.logMessages[0].ShouldContain("Project file specifies <GenerateAssemblyInfo>false</GenerateAssemblyInfo>: versions set in this project file will not affect the output artifacts"); } [TestCase(""" @@ -126,13 +125,13 @@ public void CannotUpdateProjectFileWithoutAssemblyInfoGeneration(string xml) """)] public void CannotUpdateProjectFileWithoutAPropertyGroup(string xml) { - var canUpdate = projectFileUpdater.CanUpdateProjectFile(XElement.Parse(xml)); + var canUpdate = this.projectFileUpdater.CanUpdateProjectFile(XElement.Parse(xml)); canUpdate.ShouldBe(false); - logMessages.ShouldNotBeEmpty(); - logMessages.Count.ShouldBe(1); - logMessages[0].ShouldContain("Unable to locate any <PropertyGroup> elements in specified project file. Are you sure it is in a correct format?"); + this.logMessages.ShouldNotBeEmpty(); + this.logMessages.Count.ShouldBe(1); + this.logMessages[0].ShouldContain("Unable to locate any <PropertyGroup> elements in specified project file. Are you sure it is in a correct format?"); } [TestCase($""" @@ -271,7 +270,7 @@ public void UpdateProjectFileAddsVersionToFile(string sdk, string projectName) var xml = $""" <Project Sdk="{sdk}"> <PropertyGroup> - <TargetFramework>net8.0</TargetFramework> + <TargetFramework>net10.0</TargetFramework> </PropertyGroup> </Project> """; @@ -306,7 +305,15 @@ private void VerifyAssemblyInfoFile( Action<IFileSystem, GitVersionVariables>? verify = null) { var file = Substitute.For<IFile>(); - var version = new SemanticVersion { BuildMetaData = new("versionSourceHash", 3, "foo", "hash", "shortHash", DateTimeOffset.Now, 0), Major = 2, Minor = 3, Patch = 1 }; + var versionSourceSemVer = new SemanticVersion(1, 2, 2); + + var version = new SemanticVersion + { + BuildMetaData = new(versionSourceSemVer, "versionSourceHash", 3, "foo", "hash", "shortHash", DateTimeOffset.Now, 0, VersionField.Major), + Major = 2, + Minor = 3, + Patch = 1 + }; file.Exists(fileName).Returns(true); file.ReadAllText(fileName).Returns(projectFileContent); diff --git a/src/GitVersion.Output.Tests/Output/WixFileTests.cs b/src/GitVersion.Output.Tests/Output/WixFileTests.cs index 1fff03bd17..76ded1fd8c 100644 --- a/src/GitVersion.Output.Tests/Output/WixFileTests.cs +++ b/src/GitVersion.Output.Tests/Output/WixFileTests.cs @@ -1,25 +1,24 @@ using System.IO.Abstractions; using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; using GitVersion.Logging; using GitVersion.Output.WixUpdater; +using GitVersion.Tests; using GitVersion.VersionCalculation; -using Microsoft.Extensions.DependencyInjection; -namespace GitVersion.Core.Tests; +namespace GitVersion.Output.Tests; [TestFixture] [Parallelizable(ParallelScope.None)] internal class WixFileTests : TestBase { - private string workingDir; + private string workingDir = null!; [OneTimeSetUp] - public void OneTimeSetUp() => workingDir = FileSystemHelper.Path.Combine(FileSystemHelper.Path.GetTempPath(), "WixFileTests"); + public void OneTimeSetUp() => this.workingDir = FileSystemHelper.Path.Combine(FileSystemHelper.Path.GetTempPath(), "WixFileTests"); [OneTimeTearDown] - public void OneTimeTearDown() => FileSystemHelper.Directory.DeleteDirectory(workingDir); + public void OneTimeTearDown() => FileSystemHelper.Directory.DeleteDirectory(this.workingDir); [SetUp] public void Setup() => ShouldlyConfiguration.ShouldMatchApprovedDefaults.LocateTestMethodUsingAttribute<TestAttribute>(); @@ -54,9 +53,9 @@ public void UpdateWixVersionFile() using var wixVersionFileUpdater = sp.GetRequiredService<IWixVersionFileUpdater>(); - wixVersionFileUpdater.Execute(versionVariables, new(workingDir)); + wixVersionFileUpdater.Execute(versionVariables, new(this.workingDir)); - var file = FileSystemHelper.Path.Combine(workingDir, WixVersionFileUpdater.WixVersionFileName); + var file = FileSystemHelper.Path.Combine(this.workingDir, WixVersionFileUpdater.WixVersionFileName); fileSystem .File.ReadAllText(file) .ShouldMatchApproved(c => c.SubFolder(FileSystemHelper.Path.Combine("Approved"))); @@ -96,14 +95,14 @@ public void UpdateWixVersionFileWhenFileAlreadyExists() using var wixVersionFileUpdater = sp.GetRequiredService<IWixVersionFileUpdater>(); // fake an already existing file - var file = FileSystemHelper.Path.Combine(workingDir, WixVersionFileUpdater.WixVersionFileName); - if (!fileSystem.Directory.Exists(workingDir)) + var file = FileSystemHelper.Path.Combine(this.workingDir, WixVersionFileUpdater.WixVersionFileName); + if (!fileSystem.Directory.Exists(this.workingDir)) { - fileSystem.Directory.CreateDirectory(workingDir); + fileSystem.Directory.CreateDirectory(this.workingDir); } fileSystem.File.WriteAllText(file, new('x', 1024 * 1024)); - wixVersionFileUpdater.Execute(versionVariables, new(workingDir)); + wixVersionFileUpdater.Execute(versionVariables, new(this.workingDir)); fileSystem .File.ReadAllText(file) diff --git a/src/GitVersion.Output/AssemblyInfo/AssemblyInfoFileUpdater.cs b/src/GitVersion.Output/AssemblyInfo/AssemblyInfoFileUpdater.cs index 3b531597ee..a5fad2179e 100644 --- a/src/GitVersion.Output/AssemblyInfo/AssemblyInfoFileUpdater.cs +++ b/src/GitVersion.Output/AssemblyInfo/AssemblyInfoFileUpdater.cs @@ -1,6 +1,5 @@ using System.IO.Abstractions; using System.Text.RegularExpressions; -using GitVersion.Core; using GitVersion.Extensions; using GitVersion.Helpers; using GitVersion.Logging; @@ -17,9 +16,9 @@ internal sealed class AssemblyInfoFileUpdater(ILog log, IFileSystem fileSystem) private readonly Dictionary<string, Regex> assemblyAttributeRegexes = new() { - [".cs"] = RegexPatterns.Output.CsharpAssemblyAttributeRegex(), - [".fs"] = RegexPatterns.Output.FsharpAssemblyAttributeRegex(), - [".vb"] = RegexPatterns.Output.VisualBasicAssemblyAttributeRegex() + [".cs"] = RegexPatterns.Output.CsharpAssemblyAttributeRegex, + [".fs"] = RegexPatterns.Output.FsharpAssemblyAttributeRegex, + [".vb"] = RegexPatterns.Output.VisualBasicAssemblyAttributeRegex }; private const string NewLine = "\r\n"; @@ -65,17 +64,17 @@ public void Execute(GitVersionVariables variables, AssemblyInfoContext context) if (!assemblyVersion.IsNullOrWhiteSpace()) { - fileContents = ReplaceOrInsertAfterLastAssemblyAttributeOrAppend(RegexPatterns.Output.AssemblyVersionRegex(), fileContents, assemblyVersionString, assemblyInfoFile.Extension, ref appendedAttributes); + fileContents = ReplaceOrInsertAfterLastAssemblyAttributeOrAppend(RegexPatterns.Output.AssemblyVersionRegex, fileContents, assemblyVersionString, assemblyInfoFile.Extension, ref appendedAttributes); } if (!assemblyFileVersion.IsNullOrWhiteSpace()) { - fileContents = ReplaceOrInsertAfterLastAssemblyAttributeOrAppend(RegexPatterns.Output.AssemblyFileVersionRegex(), fileContents, assemblyFileVersionString, assemblyInfoFile.Extension, ref appendedAttributes); + fileContents = ReplaceOrInsertAfterLastAssemblyAttributeOrAppend(RegexPatterns.Output.AssemblyFileVersionRegex, fileContents, assemblyFileVersionString, assemblyInfoFile.Extension, ref appendedAttributes); } if (!assemblyInfoVersion.IsNullOrWhiteSpace()) { - fileContents = ReplaceOrInsertAfterLastAssemblyAttributeOrAppend(RegexPatterns.Output.AssemblyInfoVersionRegex(), fileContents, assemblyInfoVersionString, assemblyInfoFile.Extension, ref appendedAttributes); + fileContents = ReplaceOrInsertAfterLastAssemblyAttributeOrAppend(RegexPatterns.Output.AssemblyInfoVersionRegex, fileContents, assemblyInfoVersionString, assemblyInfoFile.Extension, ref appendedAttributes); } if (appendedAttributes) diff --git a/src/GitVersion.Output/GitVersionOutputModule.cs b/src/GitVersion.Output/GitVersionOutputModule.cs index 3787e1b9e2..8b929dfcf4 100644 --- a/src/GitVersion.Output/GitVersionOutputModule.cs +++ b/src/GitVersion.Output/GitVersionOutputModule.cs @@ -3,7 +3,6 @@ using GitVersion.Output.OutputGenerator; using GitVersion.Output.WixUpdater; using GitVersion.OutputVariables; -using Microsoft.Extensions.DependencyInjection; namespace GitVersion.Output; diff --git a/src/GitVersion.Output/GitVersionOutputTool.cs b/src/GitVersion.Output/GitVersionOutputTool.cs index 76dac75b27..a3c77598a3 100644 --- a/src/GitVersion.Output/GitVersionOutputTool.cs +++ b/src/GitVersion.Output/GitVersionOutputTool.cs @@ -4,7 +4,6 @@ using GitVersion.Output.OutputGenerator; using GitVersion.Output.WixUpdater; using GitVersion.OutputVariables; -using Microsoft.Extensions.Options; namespace GitVersion; @@ -28,22 +27,22 @@ public void OutputVariables(GitVersionVariables variables, bool updateBuildNumbe { using (this.outputGenerator) { - this.outputGenerator.Execute(variables, new OutputContext(gitVersionOptions.OutputFile, updateBuildNumber)); + this.outputGenerator.Execute(variables, new OutputContext(this.gitVersionOptions.OutputFile, updateBuildNumber)); } } public void UpdateAssemblyInfo(GitVersionVariables variables) { - var assemblyInfoContext = new AssemblyInfoContext(gitVersionOptions.WorkingDirectory, gitVersionOptions.AssemblySettingsInfo.EnsureAssemblyInfo, [.. gitVersionOptions.AssemblySettingsInfo.Files]); + var assemblyInfoContext = new AssemblyInfoContext(this.gitVersionOptions.WorkingDirectory, this.gitVersionOptions.AssemblySettingsInfo.EnsureAssemblyInfo, [.. this.gitVersionOptions.AssemblySettingsInfo.Files]); - if (gitVersionOptions.AssemblySettingsInfo.UpdateProjectFiles) + if (this.gitVersionOptions.AssemblySettingsInfo.UpdateProjectFiles) { using (this.projectFileUpdater) { this.projectFileUpdater.Execute(variables, assemblyInfoContext); } } - else if (gitVersionOptions.AssemblySettingsInfo.UpdateAssemblyInfo) + else if (this.gitVersionOptions.AssemblySettingsInfo.UpdateAssemblyInfo) { using (this.assemblyInfoFileUpdater) { @@ -65,7 +64,7 @@ public void GenerateGitVersionInformation(GitVersionVariables variables, FileWri { using (this.gitVersionInfoGenerator) { - this.gitVersionInfoGenerator.Execute(variables, new GitVersionInfoContext(gitVersionOptions.WorkingDirectory, fileWriteInfo.FileName, targetNamespace)); + this.gitVersionInfoGenerator.Execute(variables, new GitVersionInfoContext(this.gitVersionOptions.WorkingDirectory, fileWriteInfo.FileName, targetNamespace)); } } } diff --git a/src/GitVersion.Output/OutputGenerator/OutputGenerator.cs b/src/GitVersion.Output/OutputGenerator/OutputGenerator.cs index 971e165c70..e440eb549b 100644 --- a/src/GitVersion.Output/OutputGenerator/OutputGenerator.cs +++ b/src/GitVersion.Output/OutputGenerator/OutputGenerator.cs @@ -5,7 +5,6 @@ using GitVersion.Helpers; using GitVersion.Logging; using GitVersion.OutputVariables; -using Microsoft.Extensions.Options; namespace GitVersion.Output.OutputGenerator; diff --git a/src/GitVersion.Output/Serializer/VersionVariableSerializer.cs b/src/GitVersion.Output/Serializer/VersionVariableSerializer.cs index eb5c7fc536..af5c40bbc6 100644 --- a/src/GitVersion.Output/Serializer/VersionVariableSerializer.cs +++ b/src/GitVersion.Output/Serializer/VersionVariableSerializer.cs @@ -1,5 +1,4 @@ using System.IO.Abstractions; -using System.Text.Encodings.Web; using GitVersion.Extensions; using GitVersion.Helpers; @@ -9,8 +8,7 @@ internal class VersionVariableSerializer(IFileSystem fileSystem) : IVersionVaria { public static GitVersionVariables FromJson(string json) { - var serializeOptions = JsonSerializerOptions(); - var variablePairs = JsonSerializer.Deserialize<Dictionary<string, string>>(json, serializeOptions); + var variablePairs = JsonSerializer.Deserialize(json, VersionVariablesJsonContext.Custom.DictionaryStringString); return FromDictionary(variablePairs); } @@ -25,9 +23,7 @@ public string ToJson(GitVersionVariables gitVersionVariables) propertyInfo?.SetValue(variables, ChangeType(value, propertyInfo.PropertyType)); } - var serializeOptions = JsonSerializerOptions(); - - return JsonSerializer.Serialize(variables, serializeOptions); + return JsonSerializer.Serialize(variables, VersionVariablesJsonContext.Custom.VersionVariablesJsonModel); } public GitVersionVariables FromFile(string filePath) @@ -94,8 +90,6 @@ private void ToFileInternal(GitVersionVariables gitVersionVariables, string file fileSystem.File.WriteAllText(filePath, json); } - private static JsonSerializerOptions JsonSerializerOptions() => new() { WriteIndented = true, Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping, Converters = { new VersionVariablesJsonStringConverter() } }; - private static object? ChangeType(object? value, Type type) { if (!type.IsGenericType || type.GetGenericTypeDefinition() != typeof(Nullable<>)) return Convert.ChangeType(value, type); diff --git a/src/GitVersion.Output/Serializer/VersionVariablesJsonContext.cs b/src/GitVersion.Output/Serializer/VersionVariablesJsonContext.cs new file mode 100644 index 0000000000..7eda33dbe8 --- /dev/null +++ b/src/GitVersion.Output/Serializer/VersionVariablesJsonContext.cs @@ -0,0 +1,18 @@ +using System.Text.Encodings.Web; + +namespace GitVersion.OutputVariables; + +[JsonSourceGenerationOptions( + WriteIndented = true, + DefaultIgnoreCondition = JsonIgnoreCondition.Never, + Converters = [typeof(VersionVariablesJsonStringConverter)])] +[JsonSerializable(typeof(VersionVariablesJsonModel))] +[JsonSerializable(typeof(Dictionary<string, string>))] +internal partial class VersionVariablesJsonContext : JsonSerializerContext +{ + public static VersionVariablesJsonContext Custom => field ??= new VersionVariablesJsonContext( + new JsonSerializerOptions(Default.Options) + { + Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping + }); +} diff --git a/src/GitVersion.Output/Serializer/VersionVariablesJsonModel.cs b/src/GitVersion.Output/Serializer/VersionVariablesJsonModel.cs index 89d32b254b..ca6d4c9017 100644 --- a/src/GitVersion.Output/Serializer/VersionVariablesJsonModel.cs +++ b/src/GitVersion.Output/Serializer/VersionVariablesJsonModel.cs @@ -20,6 +20,7 @@ internal class VersionVariablesJsonModel public string? CommitDate { get; set; } [JsonPropertyDescription("The number of commits since the version source.")] + [Obsolete("CommitsSinceVersionSource has been deprecated. Use VersionSourceDistance instead.")] public int? CommitsSinceVersionSource { get; set; } [JsonPropertyDescription("Equal to BranchName, but with / replaced with -.")] @@ -73,6 +74,15 @@ internal class VersionVariablesJsonModel [JsonPropertyDescription("The number of uncommitted changes present in the repository.")] public int? UncommittedChanges { get; set; } + [JsonPropertyDescription("The number of commits since the version source.")] + public int? VersionSourceDistance { get; set; } + + [JsonPropertyDescription("The increment strategy used for the version calculation. Possible values: None, Patch, Minor, Major.")] + public string? VersionSourceIncrement { get; set; } + + [JsonPropertyDescription("The semantic version of the commit used as version source.")] + public string? VersionSourceSemVer { get; set; } + [JsonPropertyDescription("The SHA of the commit used as version source.")] public string? VersionSourceSha { get; set; } diff --git a/src/GitVersion.Output/Serializer/VersionVariablesJsonStringConverter.cs b/src/GitVersion.Output/Serializer/VersionVariablesJsonStringConverter.cs index 236853f11d..814d6561ab 100644 --- a/src/GitVersion.Output/Serializer/VersionVariablesJsonStringConverter.cs +++ b/src/GitVersion.Output/Serializer/VersionVariablesJsonStringConverter.cs @@ -31,5 +31,11 @@ public override void Write(Utf8JsonWriter writer, string? value, JsonSerializerO writer.WriteStringValue(value); } + public override string ReadAsPropertyName(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) + => reader.GetString() ?? ""; + + public override void WriteAsPropertyName(Utf8JsonWriter writer, string value, JsonSerializerOptions options) + => writer.WritePropertyName(value); + public override bool HandleNull => true; } diff --git a/src/GitVersion.Schema/Extensions.cs b/src/GitVersion.Schema/Extensions.cs index dac09a46c1..3768782454 100644 --- a/src/GitVersion.Schema/Extensions.cs +++ b/src/GitVersion.Schema/Extensions.cs @@ -6,14 +6,17 @@ namespace GitVersion.Schema; internal static class Extensions { - public static void WriteToFile(this JsonSchema jsonSchema, string outputFileName) + extension(JsonSchema jsonSchema) { - var jsonDocument = jsonSchema.ToJsonDocument(); + public void WriteToFile(string outputFileName) + { + var jsonDocument = jsonSchema.ToJsonDocument(); - using var fs = File.Create(outputFileName); - using var writer = new Utf8JsonWriter(fs, new() { Indented = true, Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping }); - jsonDocument.WriteTo(writer); - writer.Flush(); - fs.Flush(); + using var fs = File.Create(outputFileName); + using var writer = new Utf8JsonWriter(fs, new() { Indented = true, Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping }); + jsonDocument.WriteTo(writer); + writer.Flush(); + fs.Flush(); + } } } diff --git a/src/GitVersion.Schema/FormatAttributeHandler.cs b/src/GitVersion.Schema/FormatAttributeHandler.cs index fcd57c4c5f..05e0b19380 100644 --- a/src/GitVersion.Schema/FormatAttributeHandler.cs +++ b/src/GitVersion.Schema/FormatAttributeHandler.cs @@ -5,6 +5,7 @@ using FormatAttribute = GitVersion.Configuration.Attributes.JsonPropertyFormatAttribute; namespace GitVersion.Schema; + internal class FormatAttributeHandler : IAttributeHandler<FormatAttribute> { void IAttributeHandler.AddConstraints(SchemaGenerationContextBase context, Attribute attribute) diff --git a/src/GitVersion.Schema/GitVersion.Schema.csproj b/src/GitVersion.Schema/GitVersion.Schema.csproj index beef892b98..f077911225 100644 --- a/src/GitVersion.Schema/GitVersion.Schema.csproj +++ b/src/GitVersion.Schema/GitVersion.Schema.csproj @@ -13,4 +13,7 @@ <ProjectReference Include="..\GitVersion.Configuration\GitVersion.Configuration.csproj" /> <ProjectReference Include="..\GitVersion.Output\GitVersion.Output.csproj" /> </ItemGroup> + <ItemGroup Label="MicrosoftExtensionsUsings"> + <Using Include="Microsoft.Extensions.Configuration" /> + </ItemGroup> </Project> diff --git a/src/GitVersion.Schema/Program.cs b/src/GitVersion.Schema/Program.cs index e6f7eb39a1..f391d74cc3 100644 --- a/src/GitVersion.Schema/Program.cs +++ b/src/GitVersion.Schema/Program.cs @@ -3,7 +3,6 @@ using GitVersion.Schema; using Json.Schema; using Json.Schema.Generation; -using Microsoft.Extensions.Configuration; var configurationManager = new ConfigurationManager().AddCommandLine(args).Build(); var schemasDirectory = configurationManager["OutputDirectory"]!; @@ -30,7 +29,8 @@ } var builder = new JsonSchemaBuilder(); -builder.Schema("http://json-schema.org/draft-07/schema#"); +const string jsonSchemaUri = "http://json-schema.org/draft-07/schema#"; +builder.Schema(jsonSchemaUri); builder.Id($"https://gitversion.net/schemas/{schemaVersion}/GitVersion.configuration.json"); builder.Title($"GitVersion Configuration ({schemaVersion})"); builder.Description($"GitVersion configuration schema ({schemaVersion})"); @@ -43,7 +43,7 @@ configuration.PropertyNameResolver = PropertyNameResolvers.AsDeclared; builder = new(); -builder.Schema("http://json-schema.org/draft-07/schema#"); +builder.Schema(jsonSchemaUri); builder.Id($"https://gitversion.net/schemas/{schemaVersion}/GitVersion.json"); builder.Title("GitVersion version variables output"); builder.Description("GitVersion output schema"); diff --git a/src/GitVersion.Testing/Extensions/GitTestExtensions.cs b/src/GitVersion.Testing/Extensions/GitTestExtensions.cs new file mode 100644 index 0000000000..8a1c617627 --- /dev/null +++ b/src/GitVersion.Testing/Extensions/GitTestExtensions.cs @@ -0,0 +1,101 @@ +using GitVersion.Helpers; +using GitVersion.Testing.Internal; +using LibGit2Sharp; + +namespace GitVersion.Testing.Extensions; + +public static class GitTestExtensions +{ + private static int _pad = 1; + + extension(IRepository repository) + { + public Commit MakeACommit(string? commitMessage = null) => CreateFileAndCommit(repository, Guid.NewGuid().ToString(), commitMessage); + public void MergeNoFF(string branch) => MergeNoFF(repository, branch, Generate.SignatureNow()); + + public void MergeNoFF(string branch, Signature sig) => repository.Merge(repository.Branches[branch], sig, new MergeOptions + { + FastForwardStrategy = FastForwardStrategy.NoFastForward + }); + + public Commit[] MakeCommits(int numCommitsToMake) + => [.. Enumerable.Range(1, numCommitsToMake).Select(_ => repository.MakeACommit())]; + + private Commit CreateFileAndCommit(string relativeFileName, string? commitMessage = null) + { + var randomFile = FileSystemHelper.Path.Combine(repository.Info.WorkingDirectory, relativeFileName); + if (FileSystemHelper.File.Exists(randomFile)) + { + FileSystemHelper.File.Delete(randomFile); + } + + var totalWidth = 36 + (_pad++ % 10); + var contents = Guid.NewGuid().ToString().PadRight(totalWidth, '.'); + FileSystemHelper.File.WriteAllText(randomFile, contents); + + Commands.Stage(repository, randomFile); + + return repository.Commit(commitMessage ?? $"Test Commit for file '{relativeFileName}'", + Generate.SignatureNow(), Generate.SignatureNow()); + } + + public Tag MakeATaggedCommit(string tag) + { + var commit = repository.MakeACommit(); + var existingTag = repository.Tags.SingleOrDefault(t => t.FriendlyName == tag); + return existingTag ?? repository.Tags.Add(tag, commit); + } + + public Commit CreatePullRequestRef(string from, string to, int prNumber = 2, bool normalise = false, bool allowFastForwardMerge = false) + { + Commands.Checkout(repository, repository.Branches[to].Tip); + if (allowFastForwardMerge) + { + repository.Merge(repository.Branches[from], Generate.SignatureNow()); + } + else + { + repository.MergeNoFF(from); + } + var commit = repository.Head.Tip; + repository.Refs.Add("refs/pull/" + prNumber + "/merge", commit.Id); + Commands.Checkout(repository, to); + if (normalise) + { + // Turn the ref into a real branch + Commands.Checkout(repository, repository.Branches.Add("pull/" + prNumber + "/merge", commit)); + } + + return commit; + } + } + + public static void ExecuteGitCmd(string gitCmd, string workingDirectory, Action<string>? writer = null) + { + var output = new StringBuilder(); + try + { + ProcessHelper.Run( + o => output.AppendLine(o), + e => output.AppendLineFormat("ERROR: {0}", e), + null, + "git", + gitCmd, + workingDirectory); + } + catch (FileNotFoundException exception) when (exception.FileName == "git") + { + output.AppendLine("Could not execute 'git log' due to the following error:"); + output.AppendLine(exception.ToString()); + } + + if (writer != null) + { + writer(output.ToString()); + } + else + { + Console.Write(output.ToString()); + } + } +} diff --git a/src/GitVersion.Core.Tests/IntegrationTests/StringExtensions.cs b/src/GitVersion.Testing/Extensions/StringExtensions.cs similarity index 68% rename from src/GitVersion.Core.Tests/IntegrationTests/StringExtensions.cs rename to src/GitVersion.Testing/Extensions/StringExtensions.cs index 50577f3327..ed9bee0345 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/StringExtensions.cs +++ b/src/GitVersion.Testing/Extensions/StringExtensions.cs @@ -1,16 +1,19 @@ -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Testing.Extensions; public static class StringExtensions { - public static IEnumerable<string> SplitIntoLines(this string str, int maxLineLength) + extension(string str) { - if (string.IsNullOrEmpty(str)) yield break; - - foreach (var line in SplitByNewlines(str)) + public IEnumerable<string> SplitIntoLines(int maxLineLength) { - foreach (var wrapped in WrapWithWordBoundaries(line, maxLineLength)) + if (string.IsNullOrEmpty(str)) yield break; + + foreach (var line in SplitByNewlines(str)) { - yield return wrapped; + foreach (var wrapped in WrapWithWordBoundaries(line, maxLineLength)) + { + yield return wrapped; + } } } } @@ -30,7 +33,7 @@ private static IEnumerable<string> WrapWithWordBoundaries(string line, int maxLe while (index < line.Length) { var wrapAt = GetWrapIndex(line, index, maxLength); - yield return line.Substring(index, wrapAt - index).TrimEnd(); + yield return line[index..wrapAt].TrimEnd(); index = wrapAt; } } diff --git a/src/GitVersion.Testing/Fixtures/BaseGitFlowRepositoryFixture.cs b/src/GitVersion.Testing/Fixtures/BaseGitFlowRepositoryFixture.cs index ebf88bf939..25a256c4ad 100644 --- a/src/GitVersion.Testing/Fixtures/BaseGitFlowRepositoryFixture.cs +++ b/src/GitVersion.Testing/Fixtures/BaseGitFlowRepositoryFixture.cs @@ -1,4 +1,5 @@ using GitVersion.Helpers; +using GitVersion.Testing.Extensions; using LibGit2Sharp; namespace GitVersion.Testing; diff --git a/src/GitVersion.Testing/Fixtures/RepositoryFixtureBase.cs b/src/GitVersion.Testing/Fixtures/RepositoryFixtureBase.cs index be177bbf0a..297f1617c2 100644 --- a/src/GitVersion.Testing/Fixtures/RepositoryFixtureBase.cs +++ b/src/GitVersion.Testing/Fixtures/RepositoryFixtureBase.cs @@ -1,4 +1,6 @@ +using GitVersion.Extensions; using GitVersion.Helpers; +using GitVersion.Testing.Extensions; using LibGit2Sharp; using Shouldly; @@ -59,10 +61,10 @@ protected virtual void Dispose(bool disposing) // throw; } - this.SequenceDiagram.End(); + SequenceDiagram.End(); Console.WriteLine("**Visualisation of test:**"); Console.WriteLine(string.Empty); - Console.WriteLine(this.SequenceDiagram.GetDiagram()); + Console.WriteLine(SequenceDiagram.GetDiagram()); } public void Checkout(string branch) => Commands.Checkout(Repository, branch); @@ -84,26 +86,26 @@ public string MakeATaggedCommit(string tag) public void ApplyTag(string tag) { - this.SequenceDiagram.ApplyTag(tag, Repository.Head.FriendlyName); + SequenceDiagram.ApplyTag(tag, Repository.Head.FriendlyName); Repository.ApplyTag(tag); } public void CreateBranch(string branchName, string? @as = null) { - this.SequenceDiagram.BranchTo(branchName, Repository.Head.FriendlyName, @as); + SequenceDiagram.BranchTo(branchName, Repository.Head.FriendlyName, @as); Repository.CreateBranch(branchName); } public void BranchTo(string branchName, string? @as = null) { - this.SequenceDiagram.BranchTo(branchName, Repository.Head.FriendlyName, @as); + SequenceDiagram.BranchTo(branchName, Repository.Head.FriendlyName, @as); var branch = Repository.CreateBranch(branchName); Commands.Checkout(Repository, branch); } public void BranchToFromTag(string branchName, string fromTag, string onBranch, string? @as = null) { - this.SequenceDiagram.BranchToFromTag(branchName, fromTag, onBranch, @as); + SequenceDiagram.BranchToFromTag(branchName, fromTag, onBranch, @as); var branch = Repository.CreateBranch(branchName); Commands.Checkout(Repository, branch); } @@ -111,17 +113,33 @@ public void BranchToFromTag(string branchName, string fromTag, string onBranch, public string MakeACommit() { var to = Repository.Head.FriendlyName; - this.SequenceDiagram.MakeACommit(to); + SequenceDiagram.MakeACommit(to); var commit = Repository.MakeACommit(); return commit.Sha; } + public void MakeACommit(string commitMsg) + { + Repository.MakeACommit(commitMsg); + + var participant = SequenceDiagram.GetParticipant(Repository.Head.FriendlyName); + if (commitMsg.Length < 40) + { + SequenceDiagram.DiagramBuilder.AppendLineFormat("{0} -> {0}: Commit '{1}'", participant, commitMsg); + } + else + { + var formattedCommitMsg = string.Join(SysEnv.NewLine, $"Commit '{commitMsg}'".SplitIntoLines(60)); + SequenceDiagram.NoteOver(formattedCommitMsg, participant); + } + } + /// <summary> /// Merges (no-ff) specified branch into the current HEAD of this repository /// </summary> public void MergeNoFF(string mergeSource) { - this.SequenceDiagram.Merge(mergeSource, Repository.Head.FriendlyName); + SequenceDiagram.Merge(mergeSource, Repository.Head.FriendlyName); Repository.MergeNoFF(mergeSource, Generate.SignatureNow()); } diff --git a/src/GitVersion.Testing/Fixtures/SequenceDiagram.cs b/src/GitVersion.Testing/Fixtures/SequenceDiagram.cs index 35e73d21cf..4e3fdb44ee 100644 --- a/src/GitVersion.Testing/Fixtures/SequenceDiagram.cs +++ b/src/GitVersion.Testing/Fixtures/SequenceDiagram.cs @@ -9,31 +9,32 @@ namespace GitVersion.Testing; public class SequenceDiagram { private readonly Dictionary<string, string> participants = []; - private readonly StringBuilder diagramBuilder; /// <summary> /// Initializes a new instance of the <see cref="T:SequenceDiagram"/> class. /// </summary> public SequenceDiagram() { - this.diagramBuilder = new StringBuilder(); - this.diagramBuilder.AppendLine("@startuml"); + DiagramBuilder = new StringBuilder(); + DiagramBuilder.AppendLine("@startuml"); } + public StringBuilder DiagramBuilder { get; } + /// <summary> /// Activates a branch/participant in the sequence diagram /// </summary> - public void Activate(string branch) => this.diagramBuilder.AppendLineFormat("activate {0}", GetParticipant(branch)); + public void Activate(string branch) => DiagramBuilder.AppendLineFormat("activate {0}", GetParticipant(branch)); /// <summary> /// Deactivates a branch/participant in the sequence diagram /// </summary> - public void Deactivate(string branch) => this.diagramBuilder.AppendLineFormat("deactivate {0}", GetParticipant(branch)); + public void Deactivate(string branch) => DiagramBuilder.AppendLineFormat("deactivate {0}", GetParticipant(branch)); /// <summary> /// Destroys a branch/participant in the sequence diagram /// </summary> - public void Destroy(string branch) => this.diagramBuilder.AppendLineFormat("destroy {0}", GetParticipant(branch)); + public void Destroy(string branch) => DiagramBuilder.AppendLineFormat("destroy {0}", GetParticipant(branch)); /// <summary> /// Creates a participant in the sequence diagram @@ -43,21 +44,21 @@ public void Participant(string participant, string? @as = null) var cleanParticipant = ParticipantSanitizer.SanitizeParticipant(@as ?? participant); this.participants.Add(participant, cleanParticipant); if (participant == cleanParticipant) - this.diagramBuilder.AppendLineFormat("participant {0}", participant); + DiagramBuilder.AppendLineFormat("participant {0}", participant); else - this.diagramBuilder.AppendLineFormat("participant \"{0}\" as {1}", participant, cleanParticipant); + DiagramBuilder.AppendLineFormat("participant \"{0}\" as {1}", participant, cleanParticipant); } /// <summary> /// Appends a divider with specified text to the sequence diagram /// </summary> - public void Divider(string text) => this.diagramBuilder.AppendLineFormat("== {0} ==", text); + public void Divider(string text) => DiagramBuilder.AppendLineFormat("== {0} ==", text); /// <summary> /// Appends a note over one or many participants to the sequence diagram /// </summary> public void NoteOver(string noteText, string startParticipant, string? endParticipant = null, string? prefix = null, string? color = null) => - this.diagramBuilder.AppendLineFormat( + DiagramBuilder.AppendLineFormat( prefix + """ note over {0}{1}{2} {3} @@ -71,7 +72,7 @@ end note /// <summary> /// Appends applying a tag to the specified branch/participant to the sequence diagram /// </summary> - public void ApplyTag(string tag, string toBranch) => this.diagramBuilder.AppendLineFormat("{0} -> {0}: tag {1}", GetParticipant(toBranch), tag); + public void ApplyTag(string tag, string toBranch) => DiagramBuilder.AppendLineFormat("{0} -> {0}: tag {1}", GetParticipant(toBranch), tag); /// <summary> /// Appends branching from a branch to another branch, @as can override the participant name @@ -80,11 +81,11 @@ public void BranchTo(string branchName, string currentName, string? @as) { if (!this.participants.ContainsKey(branchName)) { - this.diagramBuilder.Append("create "); + DiagramBuilder.Append("create "); Participant(branchName, @as); } - this.diagramBuilder.AppendLineFormat( + DiagramBuilder.AppendLineFormat( "{0} -> {1}: branch from {2}", GetParticipant(currentName), GetParticipant(branchName), currentName); @@ -97,32 +98,32 @@ public void BranchToFromTag(string branchName, string fromTag, string onBranch, { if (!this.participants.ContainsKey(branchName)) { - this.diagramBuilder.Append("create "); + DiagramBuilder.Append("create "); Participant(branchName, @as); } - this.diagramBuilder.AppendLineFormat("{0} -> {1}: branch from tag ({2})", GetParticipant(onBranch), GetParticipant(branchName), fromTag); + DiagramBuilder.AppendLineFormat("{0} -> {1}: branch from tag ({2})", GetParticipant(onBranch), GetParticipant(branchName), fromTag); } /// <summary> /// Appends a commit on the target participant/branch to the sequence diagram /// </summary> - public void MakeACommit(string toParticipant) => this.diagramBuilder.AppendLineFormat("{0} -> {0}: commit", GetParticipant(toParticipant)); + public void MakeACommit(string toParticipant) => DiagramBuilder.AppendLineFormat("{0} -> {0}: commit", GetParticipant(toParticipant)); /// <summary> /// Append a merge to the sequence diagram /// </summary> - public void Merge(string from, string to) => this.diagramBuilder.AppendLineFormat("{0} -> {1}: merge", GetParticipant(from), GetParticipant(to)); + public void Merge(string from, string to) => DiagramBuilder.AppendLineFormat("{0} -> {1}: merge", GetParticipant(from), GetParticipant(to)); - private string GetParticipant(string branch) => this.participants.GetValueOrDefault(branch, branch); + public string GetParticipant(string branch) => this.participants.GetValueOrDefault(branch, branch); /// <summary> /// Ends the sequence diagram /// </summary> - public void End() => this.diagramBuilder.AppendLine("@enduml"); + public void End() => DiagramBuilder.AppendLine("@enduml"); /// <summary> /// returns the plantUML representation of the Sequence Diagram /// </summary> - public string GetDiagram() => this.diagramBuilder.ToString(); + public string GetDiagram() => DiagramBuilder.ToString(); } diff --git a/src/GitVersion.Testing/GitTestExtensions.cs b/src/GitVersion.Testing/GitTestExtensions.cs deleted file mode 100644 index be1a0518cf..0000000000 --- a/src/GitVersion.Testing/GitTestExtensions.cs +++ /dev/null @@ -1,99 +0,0 @@ -using GitVersion.Helpers; -using GitVersion.Testing.Internal; -using LibGit2Sharp; - -namespace GitVersion.Testing; - -public static class GitTestExtensions -{ - private static int _pad = 1; - - public static Commit MakeACommit(this IRepository repository, string? commitMessage = null) => CreateFileAndCommit(repository, Guid.NewGuid().ToString(), commitMessage); - - public static void MergeNoFF(this IRepository repository, string branch) => MergeNoFF(repository, branch, Generate.SignatureNow()); - - public static void MergeNoFF(this IRepository repository, string branch, Signature sig) => repository.Merge(repository.Branches[branch], sig, new MergeOptions - { - FastForwardStrategy = FastForwardStrategy.NoFastForward - }); - - public static Commit[] MakeCommits(this IRepository repository, int numCommitsToMake) - => [.. Enumerable.Range(1, numCommitsToMake).Select(_ => repository.MakeACommit())]; - - private static Commit CreateFileAndCommit(this IRepository repository, string relativeFileName, string? commitMessage = null) - { - var randomFile = FileSystemHelper.Path.Combine(repository.Info.WorkingDirectory, relativeFileName); - if (FileSystemHelper.File.Exists(randomFile)) - { - FileSystemHelper.File.Delete(randomFile); - } - - var totalWidth = 36 + (_pad++ % 10); - var contents = Guid.NewGuid().ToString().PadRight(totalWidth, '.'); - FileSystemHelper.File.WriteAllText(randomFile, contents); - - Commands.Stage(repository, randomFile); - - return repository.Commit(commitMessage ?? $"Test Commit for file '{relativeFileName}'", - Generate.SignatureNow(), Generate.SignatureNow()); - } - - public static Tag MakeATaggedCommit(this IRepository repository, string tag) - { - var commit = repository.MakeACommit(); - var existingTag = repository.Tags.SingleOrDefault(t => t.FriendlyName == tag); - return existingTag ?? repository.Tags.Add(tag, commit); - } - - public static Commit CreatePullRequestRef(this IRepository repository, string from, string to, int prNumber = 2, bool normalise = false, bool allowFastForwardMerge = false) - { - Commands.Checkout(repository, repository.Branches[to].Tip); - if (allowFastForwardMerge) - { - repository.Merge(repository.Branches[from], Generate.SignatureNow()); - } - else - { - repository.MergeNoFF(from); - } - var commit = repository.Head.Tip; - repository.Refs.Add("refs/pull/" + prNumber + "/merge", commit.Id); - Commands.Checkout(repository, to); - if (normalise) - { - // Turn the ref into a real branch - Commands.Checkout(repository, repository.Branches.Add("pull/" + prNumber + "/merge", commit)); - } - - return commit; - } - - public static void ExecuteGitCmd(string gitCmd, string workingDirectory, Action<string>? writer = null) - { - var output = new StringBuilder(); - try - { - ProcessHelper.Run( - o => output.AppendLine(o), - e => output.AppendLineFormat("ERROR: {0}", e), - null, - "git", - gitCmd, - workingDirectory); - } - catch (FileNotFoundException exception) when (exception.FileName == "git") - { - output.AppendLine("Could not execute 'git log' due to the following error:"); - output.AppendLine(exception.ToString()); - } - - if (writer != null) - { - writer(output.ToString()); - } - else - { - Console.Write(output.ToString()); - } - } -} diff --git a/src/GitVersion.Testing/GitVersion.Testing.csproj b/src/GitVersion.Testing/GitVersion.Testing.csproj index 08c0eba912..8a23c7235f 100644 --- a/src/GitVersion.Testing/GitVersion.Testing.csproj +++ b/src/GitVersion.Testing/GitVersion.Testing.csproj @@ -1,10 +1,13 @@ <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> + <OutputType>Library</OutputType> <GenerateAssemblyInfo>false</GenerateAssemblyInfo> <AllowUnsafeBlocks>true</AllowUnsafeBlocks> </PropertyGroup> <ItemGroup> <PackageReference Include="LibGit2Sharp" /> + <PackageReference Include="Shouldly" /> + <PackageReference Include="System.Collections.Immutable" /> <PackageReference Include="System.IO.Abstractions" /> <PackageReference Include="System.Reflection.Metadata" /> </ItemGroup> diff --git a/src/GitVersion.Testing/Helpers/ParticipantSanitizer.cs b/src/GitVersion.Testing/Helpers/ParticipantSanitizer.cs index 826728b19b..7708226d49 100644 --- a/src/GitVersion.Testing/Helpers/ParticipantSanitizer.cs +++ b/src/GitVersion.Testing/Helpers/ParticipantSanitizer.cs @@ -1,4 +1,3 @@ -using GitVersion.Core; namespace GitVersion.Testing.Helpers; @@ -12,7 +11,7 @@ public static string SanitizeParticipant(string participant) { GuardAgainstInvalidParticipants(participant); - return RegexPatterns.Output.SanitizeParticipantRegex().Replace(participant, "_"); + return RegexPatterns.Output.SanitizeParticipantRegex.Replace(participant, "_"); } private static void GuardAgainstInvalidParticipants(string participant) diff --git a/src/GitVersion.Testing/Helpers/StringBuilderExtensions.cs b/src/GitVersion.Testing/Helpers/StringBuilderExtensions.cs index 2893be4336..71dcec96e7 100644 --- a/src/GitVersion.Testing/Helpers/StringBuilderExtensions.cs +++ b/src/GitVersion.Testing/Helpers/StringBuilderExtensions.cs @@ -4,12 +4,14 @@ namespace GitVersion.Testing.Internal; internal static class StringBuilderExtensions { - public static void AppendLineFormat(this StringBuilder stringBuilder, - [StringSyntax(StringSyntaxAttribute.CompositeFormat)] - string format, - params object?[] args) + extension(StringBuilder stringBuilder) { - stringBuilder.AppendFormat(format, args); - stringBuilder.AppendLine(); + public void AppendLineFormat([StringSyntax(StringSyntaxAttribute.CompositeFormat)] + string format, + params object?[] args) + { + stringBuilder.AppendFormat(format, args); + stringBuilder.AppendLine(); + } } } diff --git a/src/GitVersion.sln.DotSettings b/src/GitVersion.sln.DotSettings index 7f21c9ff09..c6c94efeb5 100644 --- a/src/GitVersion.sln.DotSettings +++ b/src/GitVersion.sln.DotSettings @@ -1,4 +1,4 @@ -<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation"> +<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation"> <s:Boolean x:Key="/Default/CodeEditing/Intellisense/CodeCompletion/AutoCompleteBasicCompletion/@EntryValue">True</s:Boolean> @@ -196,17 +196,23 @@ <s:String x:Key="/Default/CodeStyle/CodeCleanup/Profiles/=GitVersion/@EntryIndexedValue"><?xml version="1.0" encoding="utf-16"?><Profile name="GitVersion"><CSMakeFieldReadonly>True</CSMakeFieldReadonly><CSUseVar><BehavourStyle>CAN_CHANGE_TO_IMPLICIT</BehavourStyle><LocalVariableStyle>ALWAYS_IMPLICIT</LocalVariableStyle><ForeachVariableStyle>ALWAYS_IMPLICIT</ForeachVariableStyle></CSUseVar><CSOptimizeUsings><OptimizeUsings>True</OptimizeUsings></CSOptimizeUsings><CSReformatCode>True</CSReformatCode><CSReorderTypeMembers>True</CSReorderTypeMembers><JsInsertSemicolon>True</JsInsertSemicolon><JsReformatCode>True</JsReformatCode><CssReformatCode>True</CssReformatCode><CSArrangeThisQualifier>True</CSArrangeThisQualifier><RemoveCodeRedundancies>True</RemoveCodeRedundancies><CSUseAutoProperty>True</CSUseAutoProperty><HtmlReformatCode>True</HtmlReformatCode><CSShortenReferences>True</CSShortenReferences><CSharpFormatDocComments>True</CSharpFormatDocComments><CssAlphabetizeProperties>True</CssAlphabetizeProperties><CSCodeStyleAttributes ArrangeVarStyle="True" ArrangeTypeAccessModifier="True" ArrangeTypeMemberAccessModifier="True" SortModifiers="True" ArrangeArgumentsStyle="True" RemoveRedundantParentheses="True" AddMissingParentheses="True" ArrangeBraces="True" ArrangeAttributes="True" ArrangeCodeBodyStyle="True" ArrangeTrailingCommas="True" ArrangeObjectCreation="True" ArrangeDefaultValue="True" ArrangeNamespaces="True" /><CSArrangeQualifiers>True</CSArrangeQualifiers><CSFixBuiltinTypeReferences>True</CSFixBuiltinTypeReferences><IDEA_SETTINGS>&lt;profile version="1.0"&gt; &lt;option name="myName" value="GitVersion" /&gt; &lt;/profile&gt;</IDEA_SETTINGS><RIDER_SETTINGS>&lt;profile&gt; + &lt;Language id=""&gt; + &lt;OptimizeImports&gt;false&lt;/OptimizeImports&gt; + &lt;/Language&gt; + &lt;Language id="CMake"&gt; + &lt;Reformat&gt;true&lt;/Reformat&gt; + &lt;/Language&gt; &lt;Language id="CSS"&gt; - &lt;Rearrange&gt;true&lt;/Rearrange&gt; &lt;Reformat&gt;true&lt;/Reformat&gt; + &lt;Rearrange&gt;true&lt;/Rearrange&gt; &lt;/Language&gt; &lt;Language id="EditorConfig"&gt; &lt;Reformat&gt;true&lt;/Reformat&gt; &lt;/Language&gt; &lt;Language id="HTML"&gt; - &lt;Rearrange&gt;true&lt;/Rearrange&gt; - &lt;OptimizeImports&gt;true&lt;/OptimizeImports&gt; &lt;Reformat&gt;true&lt;/Reformat&gt; + &lt;OptimizeImports&gt;true&lt;/OptimizeImports&gt; + &lt;Rearrange&gt;true&lt;/Rearrange&gt; &lt;/Language&gt; &lt;Language id="HTTP Request"&gt; &lt;Reformat&gt;true&lt;/Reformat&gt; @@ -224,9 +230,9 @@ &lt;Reformat&gt;true&lt;/Reformat&gt; &lt;/Language&gt; &lt;Language id="JavaScript"&gt; - &lt;Rearrange&gt;true&lt;/Rearrange&gt; - &lt;OptimizeImports&gt;true&lt;/OptimizeImports&gt; &lt;Reformat&gt;true&lt;/Reformat&gt; + &lt;OptimizeImports&gt;true&lt;/OptimizeImports&gt; + &lt;Rearrange&gt;true&lt;/Rearrange&gt; &lt;/Language&gt; &lt;Language id="Markdown"&gt; &lt;Reformat&gt;true&lt;/Reformat&gt; @@ -237,18 +243,24 @@ &lt;Language id="RELAX-NG"&gt; &lt;Reformat&gt;true&lt;/Reformat&gt; &lt;/Language&gt; + &lt;Language id="Razor"&gt; + &lt;Reformat&gt;true&lt;/Reformat&gt; + &lt;/Language&gt; &lt;Language id="SQL"&gt; &lt;Reformat&gt;true&lt;/Reformat&gt; &lt;/Language&gt; + &lt;Language id="VueExpr"&gt; + &lt;Reformat&gt;true&lt;/Reformat&gt; + &lt;/Language&gt; &lt;Language id="XML"&gt; - &lt;Rearrange&gt;true&lt;/Rearrange&gt; - &lt;OptimizeImports&gt;true&lt;/OptimizeImports&gt; &lt;Reformat&gt;true&lt;/Reformat&gt; + &lt;OptimizeImports&gt;true&lt;/OptimizeImports&gt; + &lt;Rearrange&gt;true&lt;/Rearrange&gt; &lt;/Language&gt; &lt;Language id="yaml"&gt; &lt;Reformat&gt;true&lt;/Reformat&gt; &lt;/Language&gt; -&lt;/profile&gt;</RIDER_SETTINGS></Profile></s:String> +&lt;/profile&gt;</RIDER_SETTINGS><UpgradedBackendToFrontendHtml>True</UpgradedBackendToFrontendHtml><CSMakeAutoPropertyGetOnly>True</CSMakeAutoPropertyGetOnly></Profile></s:String> <s:String x:Key="/Default/CodeStyle/CodeCleanup/RecentlyUsedProfile/@EntryValue">Default: Reformat Code</s:String> <s:String x:Key="/Default/CodeStyle/CodeCleanup/SilentCleanupProfile/@EntryValue">GitVersion</s:String> <s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/EXPLICIT_INTERNAL_MODIFIER/@EntryValue">False</s:Boolean> diff --git a/src/GitVersion.slnx b/src/GitVersion.slnx index 11c8908bea..c763590e6b 100644 --- a/src/GitVersion.slnx +++ b/src/GitVersion.slnx @@ -19,7 +19,6 @@ <File Path="../.gitversion.yml" /> <File Path="../GitReleaseManager.yml" /> <File Path="../global.json" /> - <File Path="../qodana.yaml" /> </Folder> <Folder Name="/root/readme/"> <File Path="../BREAKING_CHANGES.md" /> @@ -38,4 +37,4 @@ <Project Path="GitVersion.Core/GitVersion.Core.csproj" /> <Project Path="GitVersion.MsBuild.Tests/GitVersion.MsBuild.Tests.csproj" /> <Project Path="GitVersion.MsBuild/GitVersion.MsBuild.csproj" /> -</Solution> \ No newline at end of file +</Solution> diff --git a/src/mark-shipped.ps1 b/src/mark-shipped.ps1 index 46940fea6c..21e3315194 100755 --- a/src/mark-shipped.ps1 +++ b/src/mark-shipped.ps1 @@ -7,30 +7,35 @@ Set-StrictMode -version 2.0 $ErrorActionPreference = "Stop" function MarkShipped([string]$dir) { + $nullableHeader = "#nullable enable"; $shippedFilePath = Join-Path $dir "PublicAPI.Shipped.txt" $shipped = @() $shipped += Get-Content $shippedFilePath $unshippedFilePath = Join-Path $dir "PublicAPI.Unshipped.txt" $unshipped = Get-Content $unshippedFilePath + $added = @() $removed = @() $removedPrefix = "*REMOVED*"; - Write-Host "Processing $dir" foreach ($item in $unshipped) { - if ($item.Length -gt 0) { + if ($item.Length -gt 0 -and $item -ne $nullableHeader) { if ( $item.StartsWith($removedPrefix)) { $item = $item.Substring($removedPrefix.Length) $removed += $item } else { $shipped += $item + $added += $item } } } + $changeCount = $added.Count + $removed.Count + Write-Host ("{0,-6} Processed {1}" -f "[$changeCount]", $unshippedFilePath) + $shipped | Sort-Object -Unique | Where-Object { -not $removed.Contains($_) } | Out-File $shippedFilePath -Encoding Ascii - "#nullable enable" | Out-File $unshippedFilePath -Encoding Ascii + $nullableHeader | Out-File $unshippedFilePath -Encoding Ascii } try { @@ -38,6 +43,9 @@ try { $dir = Split-Path -parent $file MarkShipped $dir } + if ($null -ne (git status --porcelain)) { + Write-Host "Changes detected, committing and pushing changes" + } } catch { Write-Host $_ diff --git a/tests/scripts/test-msbuild-task.sh b/tests/scripts/test-msbuild-task.sh index b75db70371..12c0a030b5 100644 --- a/tests/scripts/test-msbuild-task.sh +++ b/tests/scripts/test-msbuild-task.sh @@ -1,5 +1,5 @@ #!/usr/bin/sh -# sh /scripts/test-msbuild-task.sh --version 6.0.0 --nugetPath /nuget --repoPath /repo/tests/integration --targetframework net8.0 +# sh /scripts/test-msbuild-task.sh --version 6.0.0 --nugetPath /nuget --repoPath /repo/tests/integration --targetframework net10.0 while test "$#" -gt 0 do case $1 in