// 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 View Axivion static code analysis results

    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 be
    connected to an Axivion dashboard server.

    \section1 View inline annotations in editor

    The editor shows found issues as inline annotations if the project matches
    the currently open one and the respective file is part of the project.
    Hover the mouse over an annotation to bring up a tooltip 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 {Issue Details} view.

    \image qtcreator-axivion-view-rule.webp {Issue Details view}

    To hide inline annotations, go to \uicontrol Analyze > \uicontrol Axivion
    and clear \inlineimage icons/warning.png.

    \section1 View issues

    To inspect issues found during the analyses:

    \list 1
        \li To go to the \uicontrol Axivion view:
            \image qtcreator-axivion-issue-search.webp {Issues in Axivion view}
            \list
                \li Go to \uicontrol Analyze > \uicontrol Axivion.
                \li In the mode selector, select \uicontrol Debug >
                    \uicontrol Axivion.
                \li Switch to the \uicontrol Debug mode, and select
                    \uicontrol Axivion in the debugger toolbar.
            \endlist
        \li Select a dashboard and a project.
        \li Select the icon of an issue type.
    \endlist

    To refresh the list, select \inlineimage icons/reload_gray.png.

    To get help, select \inlineimage icons/info.png.

    \section1 Issue types

    Axivion looks for the following types of issues in the selected 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

    \section1 Filter issues

    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

    Select \inlineimage icons/filtericon.png for a column to set or clear the
    filter expression for the column.

    The information you see depends on the issue type. Double-click an issue
    to see more information about it in the \uicontrol {Issue Details} view.

    To show inline issues, select \inlineimage icons/location.png.

    \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}, {Analyze}{How To: Analyze},
    {Analyzers}, {Axivion}, {Analyzing Code}
*/

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

    \ingroup creator-reference-preferences

    \title Axivion

    \brief Create a connection to an Axivion dashboard server.

    You can connect to an Axivion dashboard server and map dashboard projects to
    local projects.

    \section1 Connecting to a Dashboard Server

    To connect to an Axivion dashboard server:

    \list
        \li Go to \preferences > \uicontrol Axivion > \uicontrol General.
            \image qtcreator-preferences-axivion-general.webp {General tab in Axivion Preferences}
        \li Select \uicontrol Add to add a new connection to an Axivion
            dashboard server.
        \li Select \uicontrol Edit to modify an existing connection to
            an Axivion dashboard server.
            \image qtcreator-edit-dashboard-configuration.webp {Edit Dashboard Configuration dialog}
            \list
                \li In \uicontrol {Dashboard URL}, enter the URL of the server.
                \li In \uicontrol Username, enter the username to access the server.
            \endlist
        \li Select \uicontrol Remove to remove the current selected connection
            to an Axivion dashboard 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.

    \section1 Mapping Paths

    Projects on the dashboard might have subprojects that also appear on the
    dashboard because they are analyzed separately.

    To map dashboard projects to local projects:

    \list 1
        \li Go to \preferences > \uicontrol Axivion > \uicontrol {Path Mapping}.
            \image qtcreator-preferences-axivion-path-mapping.webp {Path Mapping tab in Axivion Preferences}
        \li In \uicontrol {Project name}, enter the project name on the dashboard.
        \li In \uicontrol {Local path}, enter the path to the project on the
            computer.
        \li In \uicontrol {Analysis path}, enter the path to the analysis of a
            subproject. You need this only to map analyses of subprojects.
    \endlist

    \sa {Enable and disable plugins}, {View Axivion static code analysis results}
*/
