// Copyright (C) 2024 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only

/*!
    \page creator-axivion.html
    \previouspage creator-how-tos.html

    \ingroup creator-how-to-analyze

    \title Prevent code erosion

    \l{https://www.axivion.com/en/products/axivion-suite/}{Axivion Suite} is
    a tool suite for protecting software from erosion. With static code analysis,
    architecture analysis, and code-smells-detection, you can:

    \list
        \li Check the source code for potential runtime errors.
        \li Use metrics to generate quantitative information about the
            internal quality of the source code.
        \li Run style checks to achieve compliance with coding guidelines.
        \li Detect both duplicates and similar pieces of code in the source code.
        \li Recognize cyclical dependencies at different levels.
        \li Detect unreachable code.
    \endlist

    Connect to an Axivion dashboard server from \QC to view results of code
    analysis.

    \note Enable the Axivion plugin to use it.

    To use the plugin, you must set up a project in the Axivion dashboard
    server and link to it from \QC. You can then see found issues in the
    \uicontrol Edit mode, issues in the \uicontrol Axivion dashboard, and
    issue details in the \uicontrol Axivion sidebar view.

    The editor shows found issues as inline annotations. Hover the mouse over
    an annotation to bring up a tool tip with a short description of the issue.

    \image qtcreator-axivion-annotation.webp {Annotation popup}

    Select \inlineimage icons/info.png to view detailed information about the
    issue in the \uicontrol Axivion sidebar view.

    \image qtcreator-axivion-view-rule.webp {Axivion sidebar view}

    \section1 View issue counts

    To view the issue counts, select \inlineimage icons/home.png
    (\uicontrol {Show Dashboard}) in the \uicontrol Axivion dashboard.

    \image qtcreator-axivion-view.webp {Axivion dashboard}

    The \uicontrol Axivion dashboard lists the numbers of the following types of
    issues that Axivion found in the linked project:

    \table
    \header
        \li Icon
        \li Type
        \li Description
    \row
        \li \inlineimage icons/axivion-av.png
        \li \uicontrol AV
        \li Architecture violations, such as hidden dependencies.
    \row
        \li \inlineimage icons/axivion-cl.png
        \li \uicontrol CL
        \li Clones, such as duplicates and similar pieces of code.
    \row
        \li \inlineimage icons/axivion-cy.png
        \li \uicontrol CY
        \li Cyclic dependencies, such as call, component, and include cycles.
    \row
        \li \inlineimage icons/axivion-de.png
        \li \uicontrol DE
        \li Dead entities are callable entities in the source code that cannot
            be reached from the entry points of the system under analysis.
    \row
        \li \inlineimage icons/axivion-mv.png
        \li \uicontrol MV
        \li Violations of metrics based on lines and tokens,
            nesting, cyclomatic complexity, control flow, and so on.
    \row
        \li \inlineimage icons/axivion-sv.png
        \li \uicontrol SV
        \li Style violations, such as deviations from the naming
            or coding conventions.
    \endtable

    To clear the view, select \inlineimage icons/clean_pane_small.png
    (\uicontrol Clear).

    To view issues, select \inlineimage icons/zoom.png
    (\uicontrol {Search for Issues}).

    \section1 Filter issues

    \image qtcreator-axivion-issue-search.webp {Issues in Axivion view}

    To filter issues, select:

    \list
        \li The icon of an issue type.
        \li Two analyzed versions to compare. Select \uicontrol EMPTY to see
            issues from the version you select in the right-side version box.
        \li \inlineimage icons/arrowup.png to see only added issues.
        \li \inlineimage icons/arrowdown.png to see only removed issues.
        \li The owner of the issue. Select \uicontrol ANYBODY to see all issues,
            \uicontrol NOBODY to see issues that are not associated with a user,
            or a user name to see issues owned by a particular user.
        \li Path patterns to show issues in the files in the directories that
            match the pattern.
    \endlist

    The information you see depends on the issue type. Double-click an issue
    to see more information about it in the \uicontrol Axivion sidebar view.

    \section1 Jump to issues in the editor

    Typically, the details for cycles and clones show several paths. To view the
    issues in the editor:

    \list
        \li Click in a location column (that shows a file or line) to open the
            respective location (if it can be found).
        \li Click in other columns to open the first link in the issue details.
            Usually, it leads to the \uicontrol {Left location} or
            \uicontrol {Source location}.
    \endlist

    The easiest way to jump to the \uicontrol {Right location} is to
    select the link in the details or in the \uicontrol {Right Path}
    or \uicontrol {Target Path} column.

    \sa {Enable and disable plugins}, {Link projects to Axivion dashboards},
    {Axivion}
*/

/*!
    \page creator-preferences-axivion.html
    \previouspage creator-reference.html

    \ingroup creator-reference-preferences

    \title Axivion

    \brief Create a connection to an Axivion dashboard server.

    To set preferences for the Axivion static code analysis tool, go to
    \preferences > \uicontrol Axivion.

    \image qtcreator-preferences-axivion.webp {General tab in Axivion Preferences}

    To connect to an Axivion dashboard server:

    \list 1
        \li Select \uicontrol Edit to create a connection to the Axivion
            dashboard server.
            \image qtcreator-edit-dashboard-configuration.webp {Edit Dashboard Configuration dialog}
        \li In \uicontrol {Dashboard URL}, enter the URL of the server.
        \li In \uicontrol Username, enter the username to access the server.
    \endlist

    The first time you access the server, you must enter the password that
    matches the username. It is stored safely in your keychain that is provided
    by the OS for later use.

    Select \uicontrol {Highlight marks} to highlight found issues on the
    scrollbar in the editor.

    \sa {Enable and disable plugins}, {Link projects to Axivion dashboards},
    {Prevent code erosion}
*/

/*!
    \page creator-link-axivion-dashboards.html
    \previouspage creator-how-tos.html

    \ingroup creator-how-to-projects-configure

    \title Link projects to Axivion dashboards

    To link a project to an Axivion dashboard:

    \list 1
        \li Go to \uicontrol Projects > \uicontrol {Project Settings} >
            \uicontrol Axivion.
            \image qtcreator-preferences-axivion-project.webp {Axivion settings in Project Settings}
        \li Select \uicontrol {Fetch Projects} to list projects from Axivion.
        \li Select a project, and then select \uicontrol {Link Project} to link
            to it.
    \endlist

    To unlink a project, select \uicontrol {Unlink Project}.

    \sa {Enable and disable plugins}, {Prevent code erosion}, {Axivion}
*/
