diff --git a/web/documentation/img/code_view.png b/web/documentation/img/code_view.png index 13da6d9b..b038f27a 100644 Binary files a/web/documentation/img/code_view.png and b/web/documentation/img/code_view.png differ diff --git a/web/documentation/img/code_view_single.png b/web/documentation/img/code_view_single.png new file mode 100644 index 00000000..baddf482 Binary files /dev/null and b/web/documentation/img/code_view_single.png differ diff --git a/web/documentation/img/edit_project_summary.png b/web/documentation/img/edit_project_summary.png new file mode 100644 index 00000000..f6d20814 Binary files /dev/null and b/web/documentation/img/edit_project_summary.png differ diff --git a/web/documentation/img/error_view.png b/web/documentation/img/error_view.png index c323daf8..431d7de1 100644 Binary files a/web/documentation/img/error_view.png and b/web/documentation/img/error_view.png differ diff --git a/web/documentation/img/graph_view.png b/web/documentation/img/graph_view.png index bbdfcf66..4a30725d 100644 Binary files a/web/documentation/img/graph_view.png and b/web/documentation/img/graph_view.png differ diff --git a/web/documentation/img/log_view.png b/web/documentation/img/log_view.png deleted file mode 100644 index 758211a6..00000000 Binary files a/web/documentation/img/log_view.png and /dev/null differ diff --git a/web/documentation/img/log_window.png b/web/documentation/img/log_window.png deleted file mode 100644 index 06e86455..00000000 Binary files a/web/documentation/img/log_window.png and /dev/null differ diff --git a/web/documentation/img/new_project_summary.png b/web/documentation/img/new_project_summary.png index 2732727e..0b44c3f2 100644 Binary files a/web/documentation/img/new_project_summary.png and b/web/documentation/img/new_project_summary.png differ diff --git a/web/documentation/img/node_bundle.png b/web/documentation/img/node_bundle.png index 92b77a1b..8bdf9762 100644 Binary files a/web/documentation/img/node_bundle.png and b/web/documentation/img/node_bundle.png differ diff --git a/web/documentation/img/node_enum.png b/web/documentation/img/node_enum.png index 7afe4c1b..2083c093 100644 Binary files a/web/documentation/img/node_enum.png and b/web/documentation/img/node_enum.png differ diff --git a/web/documentation/img/node_macro.png b/web/documentation/img/node_macro.png new file mode 100644 index 00000000..17460f9d Binary files /dev/null and b/web/documentation/img/node_macro.png differ diff --git a/web/documentation/img/node_namespace.png b/web/documentation/img/node_namespace.png new file mode 100644 index 00000000..e0bed165 Binary files /dev/null and b/web/documentation/img/node_namespace.png differ diff --git a/web/documentation/img/node_non_indexed.png b/web/documentation/img/node_non_indexed.png new file mode 100644 index 00000000..8b123df6 Binary files /dev/null and b/web/documentation/img/node_non_indexed.png differ diff --git a/web/documentation/img/node_typedef.png b/web/documentation/img/node_typedef.png index 16ab4561..d4d163a3 100644 Binary files a/web/documentation/img/node_typedef.png and b/web/documentation/img/node_typedef.png differ diff --git a/web/documentation/img/node_undefined.png b/web/documentation/img/node_undefined.png deleted file mode 100644 index ed503d60..00000000 Binary files a/web/documentation/img/node_undefined.png and /dev/null differ diff --git a/web/documentation/img/preferences_screen.png b/web/documentation/img/preferences_screen.png index 0941e2b2..aa9fef83 100644 Binary files a/web/documentation/img/preferences_screen.png and b/web/documentation/img/preferences_screen.png differ diff --git a/web/documentation/img/project_setup_guide_data.png b/web/documentation/img/project_setup_guide_data.png deleted file mode 100644 index efe9768f..00000000 Binary files a/web/documentation/img/project_setup_guide_data.png and /dev/null differ diff --git a/web/documentation/img/project_setup_guide_include.png b/web/documentation/img/project_setup_guide_include.png deleted file mode 100644 index d4f46ef9..00000000 Binary files a/web/documentation/img/project_setup_guide_include.png and /dev/null differ diff --git a/web/documentation/img/project_setup_guide_paths.png b/web/documentation/img/project_setup_guide_paths.png deleted file mode 100644 index 0010090a..00000000 Binary files a/web/documentation/img/project_setup_guide_paths.png and /dev/null differ diff --git a/web/documentation/img/project_setup_guide_paths_java.png b/web/documentation/img/project_setup_guide_paths_java.png deleted file mode 100644 index dc826c79..00000000 Binary files a/web/documentation/img/project_setup_guide_paths_java.png and /dev/null differ diff --git a/web/documentation/img/project_setup_guide_select.png b/web/documentation/img/project_setup_guide_select.png deleted file mode 100644 index 15eeb6b6..00000000 Binary files a/web/documentation/img/project_setup_guide_select.png and /dev/null differ diff --git a/web/documentation/img/project_setup_guide_summary.png b/web/documentation/img/project_setup_guide_summary.png deleted file mode 100644 index e04a2b11..00000000 Binary files a/web/documentation/img/project_setup_guide_summary.png and /dev/null differ diff --git a/web/documentation/img/project_setup_wizard_advanced.png b/web/documentation/img/project_setup_wizard_advanced.png new file mode 100644 index 00000000..bcc9bffb Binary files /dev/null and b/web/documentation/img/project_setup_wizard_advanced.png differ diff --git a/web/documentation/img/project_setup_wizard_advanced_java.png b/web/documentation/img/project_setup_wizard_advanced_java.png new file mode 100644 index 00000000..c33389b4 Binary files /dev/null and b/web/documentation/img/project_setup_wizard_advanced_java.png differ diff --git a/web/documentation/img/project_setup_wizard_compilation_data.png b/web/documentation/img/project_setup_wizard_compilation_data.png index 097beef6..f0230899 100644 Binary files a/web/documentation/img/project_setup_wizard_compilation_data.png and b/web/documentation/img/project_setup_wizard_compilation_data.png differ diff --git a/web/documentation/img/project_setup_wizard_compilation_header.png b/web/documentation/img/project_setup_wizard_compilation_header.png index c3bd4a8c..4f8fd4bf 100644 Binary files a/web/documentation/img/project_setup_wizard_compilation_header.png and b/web/documentation/img/project_setup_wizard_compilation_header.png differ diff --git a/web/documentation/img/project_setup_wizard_empty_include_paths.png b/web/documentation/img/project_setup_wizard_empty_include_paths.png index d4f46ef9..687d4d22 100644 Binary files a/web/documentation/img/project_setup_wizard_empty_include_paths.png and b/web/documentation/img/project_setup_wizard_empty_include_paths.png differ diff --git a/web/documentation/img/project_setup_wizard_empty_meta.png b/web/documentation/img/project_setup_wizard_empty_meta.png index af398643..920a3f8a 100644 Binary files a/web/documentation/img/project_setup_wizard_empty_meta.png and b/web/documentation/img/project_setup_wizard_empty_meta.png differ diff --git a/web/documentation/img/project_setup_wizard_empty_meta_java.png b/web/documentation/img/project_setup_wizard_empty_meta_java.png new file mode 100644 index 00000000..f0d57f54 Binary files /dev/null and b/web/documentation/img/project_setup_wizard_empty_meta_java.png differ diff --git a/web/documentation/img/project_setup_wizard_empty_project_paths.png b/web/documentation/img/project_setup_wizard_empty_project_paths.png index 62844f0f..f92479b9 100644 Binary files a/web/documentation/img/project_setup_wizard_empty_project_paths.png and b/web/documentation/img/project_setup_wizard_empty_project_paths.png differ diff --git a/web/documentation/img/project_setup_wizard_empty_project_paths_java.png b/web/documentation/img/project_setup_wizard_empty_project_paths_java.png new file mode 100644 index 00000000..a858c8a2 Binary files /dev/null and b/web/documentation/img/project_setup_wizard_empty_project_paths_java.png differ diff --git a/web/documentation/img/project_setup_wizard_start.png b/web/documentation/img/project_setup_wizard_start.png index 15eeb6b6..062cca15 100644 Binary files a/web/documentation/img/project_setup_wizard_start.png and b/web/documentation/img/project_setup_wizard_start.png differ diff --git a/web/documentation/img/project_setup_wizard_start_cdb.png b/web/documentation/img/project_setup_wizard_start_cdb.png new file mode 100644 index 00000000..e41c0b40 Binary files /dev/null and b/web/documentation/img/project_setup_wizard_start_cdb.png differ diff --git a/web/documentation/img/project_setup_wizard_start_java.png b/web/documentation/img/project_setup_wizard_start_java.png new file mode 100644 index 00000000..27d84886 Binary files /dev/null and b/web/documentation/img/project_setup_wizard_start_java.png differ diff --git a/web/documentation/img/project_setup_wizard_start_vs.png b/web/documentation/img/project_setup_wizard_start_vs.png new file mode 100644 index 00000000..e5c124d1 Binary files /dev/null and b/web/documentation/img/project_setup_wizard_start_vs.png differ diff --git a/web/documentation/img/project_setup_wizard_visual_studio.png b/web/documentation/img/project_setup_wizard_visual_studio.png new file mode 100644 index 00000000..32ad83e0 Binary files /dev/null and b/web/documentation/img/project_setup_wizard_visual_studio.png differ diff --git a/web/documentation/img/start_indexing_dialog.png b/web/documentation/img/start_indexing_dialog.png index 1861244f..5623452e 100644 Binary files a/web/documentation/img/start_indexing_dialog.png and b/web/documentation/img/start_indexing_dialog.png differ diff --git a/web/documentation/img/start_screen.png b/web/documentation/img/start_screen.png deleted file mode 100644 index d8732811..00000000 Binary files a/web/documentation/img/start_screen.png and /dev/null differ diff --git a/web/documentation/img/start_window.png b/web/documentation/img/start_window.png new file mode 100644 index 00000000..71aaea0c Binary files /dev/null and b/web/documentation/img/start_window.png differ diff --git a/web/documentation/img/start_window_trial.png b/web/documentation/img/start_window_trial.png new file mode 100644 index 00000000..1783b719 Binary files /dev/null and b/web/documentation/img/start_window_trial.png differ diff --git a/web/documentation/img/status_view_error.png b/web/documentation/img/status_view_error.png new file mode 100644 index 00000000..6fe2d47a Binary files /dev/null and b/web/documentation/img/status_view_error.png differ diff --git a/web/documentation/img/status_view_status.png b/web/documentation/img/status_view_status.png new file mode 100644 index 00000000..63496458 Binary files /dev/null and b/web/documentation/img/status_view_status.png differ diff --git a/web/documentation/index.html b/web/documentation/index.html index 7a9115b6..dbc62865 100644 --- a/web/documentation/index.html +++ b/web/documentation/index.html @@ -90,7 +90,7 @@
-

Documentation for version 0.10

+

Documentation for version 0.11

@@ -131,7 +131,7 @@
  • Graph: The graph displays the structure of your source code. It focuses on the currently selected symbol and directly shows all incoming and outgoing dependencies to other symbols.
  • Code: The Code view displays all source locations of the currently selected symbol in a list of code snippets. Clicking on a different source location allows you to change the selection and dig deeper.
  • -

    Coati currently only supports the languages C/C++ and Java. Much of the UI design is therefore based on these languages and might change as soon as other languages are supported. For more information have a look at supported languages.

    +

    Coati currently supports the languages C/C++ and Java. Much of the UI design is therefore based on these languages and might change as soon as other languages are supported. For more information have a look at supported languages.

    Starting up Coati

    @@ -143,8 +143,24 @@ + +

    Start Window

    +

    On every start of Coati you are shown the Start Window. It allows for creating new projects or opening existing ones. As long as you haven't unlocked Coati with a valid license key it is running in Trial mode.

    +
    +
    + +
    +
    +
    + Tasks: + +
    +

    License Key Window

    -

    When running the full version of Coati for the first time you are greeted with the enter license window. You need to enter the license key you received via e-mail when you purchased your Coati license.

    +

    The Enter License Window allows you to enter enter the license key you received via e-mail after purchasing your Coati license.

    @@ -159,10 +175,10 @@

    Start Window

    -

    On every start of Coati you are shown the start window. It allows for creating new projects or opening existing ones.

    +

    After entering the license key you are redirected to the Start Window again. Now you can create your own project.

    - +
    @@ -175,78 +191,79 @@

    Creating a Project

    -

    When creating a new Coati project you will use the project setup wizard. This wizard splits the setup process into several subsequent steps.

    +

    When creating a new Coati project you will use the project setup wizard. This wizard splits the setup process into several subsequent steps. Depending on your projects structure and the used build system there are different types for project setup. Choosing the right setup method is important and can make the setup process a lot easier.

    -
    - + +
    +
    + +

    Choosing the right project setup

    + There are different types of setup for each supported programming language. It is currently not possible to create a mixed language project, except for mixed C & C++ projects via a Compilation Database. We will extend to multi-language projects in the future. + +
    + +

    Project setup for C/C++

    +

    The project setup types for C & C++ are the same.

    + + Are you using CMake or Make? +

    If you are using CMake or Make as build environment you can export a clang JSON Compilaton Database as compile_commands.json file. A Compilation Database holds all information necessary for building the project, such as source files, include paths and compiler flags. Having a Compilation Database makes project setup within Coati a lot easier. We recommend using this approach if possible.

    + +

    Exporting a Compilation Database:

    + + +

    If you managed to export a compile_commands.json file, then please continue at Create a project from Compilation Database and come back after you finished creating the project.

    + +
    +
    + +
    +
    + + Are you using Visual Studio? + +

    If you are using Visual Studio you can continue at Project creation from Visual Studio and export a Compilation Database with our Visual Studio Plugin.

    + +
    +
    + +
    +
    + + Create empty + +

    If none of the above options apply to your project then please continue at Create an Empty C/C++ Project and come back here as soon as the project is created.

    + +
    +
    + +
    +
    + +
    + +

    Project setup for Java

    + Java projects can currently only be created as Empty Projects. Please follow the descriptions at Create an Empty Java Project. + +
    +
    +
    Tasks:
      -
    • Pick your project's programming language, select the Empty Project option and click Next.
    • -
    -
    - - -
    -
    - -
    -
    - -
    - Tasks: -
      -
    • Enter the project's name and location, define language standard and click Next.
    • -
    -
    - -
    -
    - -
    -
    - -
    - Tasks: -
      -
    • Provide the root directory that contains all your project's source and header files and click Next.
    • -
    -
    - -
    -
    - -
    -
    - -
    - Tasks: -
      -
    • If your project requires any external headers to compile (e.g. Boost for C++). Please provide the paths here and click Next.
    • -
    • Your project will probably include system headers (e.g. STL). Please provide the paths at Global Include Paths or click Detect to automatically retrieve them.
    • -
    -
    - -
    -
    - -
    -
    - -
    - Tasks: -
      -
    • As last step a summary of all settings is shown. Click Create to close the dialog and save the project file.
    • +
    • Continue at with your chosen project setup and come back here as soon as the project is created.

    Source Indexing

    -

    Coati will now ask you whether you want to start indexing. Click Start and wait for the indexing to finish, which might take a little while. The Indexing Dialog and the status bar will give you information about the progress. Otherwise the UI will be empty. Coati indexes all named symbols and their relationships throughout the provided source files.

    +

    After the project is created, Coati will ask you whether you want to start indexing. Click Start and wait for the indexing to finish, which might take a little while. The Indexing Dialog and the status bar will give you information about the progress. Otherwise the UI will be empty. Coati indexes all named symbols and their relationships throughout the provided source files.

    @@ -260,16 +277,18 @@
  • or Click Stop or press ESC to stop indexing (Coati will provide all information gathered so far and the indexing can be continued later by refreshing).
  • -

    After indexing has finished, Coati will show an overview of all indexed symbols in the graph view and some statistics in the code view. If the indexing yielded errors, the code view will display them. You can see the error message by hovering an error's location.

    +

    After indexing has finished, Coati will show an overview of all indexed symbols in the graph view and some statistics in the code view.

    + +

    If the indexing yielded errors, the status view will be shown with a list of errors. You can click on the errors label on the right side of the status bar or on one of the errors in the table to see their location.

    -
    +
    Tasks:
      -
    • Fix your errors and refresh to reindex the files with errors (Open Issue: As long as there was no change in the specific file, Coati won't reindex it, use the Force Refresh option from the Edit Menu until fixed).
    • +
    • Fix your errors and refresh to reindex the files with errors (Open Issue: As long as there was no change in the specific file, Coati won't reindex it, use the Force Refresh option from the Edit Menu).
    • or ignore them and continue with an incomplete index.
    @@ -327,7 +346,7 @@

    Nodes displayed with a striped hatching, are nodes that were used within your indexed source files, but were not defined. Clicking them shows all locations where they are used, without providing their declaration.

    - +
    @@ -338,6 +357,7 @@
    +

    The source locations are displayed as code snippets, containing the line of interest and extra lines added to the top and bottom to give information about its context. Code snippets are then bundled together into files.

    Note: A file can be selected as active symbol by clicking its name in the title bar. By clicking the icons on the right hand side of the title bar, the file can switch between 3 different states:

    @@ -431,7 +451,7 @@

    INSTALLATION

    On Windows

    -

    Download and open the zip file and extract its contents into a temporary folder of your choice. Run the setup.exe and go through the wizard. You can now launch Coati from your start menu.

    +

    Download and open the zip file and extract its contents into a temporary folder of your choice. Run the setup.exe and go through the wizard. You can now launch Coati from your start menu.

    On Mac

    Download and open the Coati.dmg file and drag Coati.app into the applications folder. You can now launch Coati from your Applications.

    @@ -442,9 +462,9 @@

    On Linux

    -

    Download Coati.tar.gz file and extract it. To start Coati run the Coati.sh script. Coati creates a folder ~/.config/coati at the first run, this is the folder for Coati settings. - To Install Coati run the setup/install.sh Script with sudo, it will install Coati to /opt/coati and - create /usr/bin/coati symlink.

    +

    Download Coati.tar.gz file and extract it. To start Coati run the Coati.sh script. Coati creates a folder ~/.config/coati at the first run, this is the folder for Coati settings. + To Install Coati run the setup/install.sh Script with sudo, it will install Coati to /opt/coati and + create /usr/bin/coati symlink.

    Data folder

    The data folder holds certain files that are used by Coati to run the program. After following the installation instructions the data folder should be located in the following locations on your platform.

    @@ -490,16 +510,16 @@
    <path_to_jre>/bin/client/jvm.dll

    On Mac

    -

    The Java Runtime Library (called libjvm.dylib) can be found inside of your JRE install folder. Run the following command in your terminal to find the location of your default Java installation:

    +

    The Java Runtime Library (called libjli.dylib) can be found inside of your JRE install folder. Run the following command in your terminal to find the location of your default Java installation:

    /usr/libexec/java_home

    This should give you a path looking like this:

    /Library/Java/JavaVirtualMachines/<jdk_version>/Contents/Home
    - The "libjvm.dylib" should be available at: -
    /Library/Java/JavaVirtualMachines/<jdk_version>/Contents/Home/jre/lib/server/libjvm.dylib
    + The "libjli.dylib" should be available at: +
    /Library/Java/JavaVirtualMachines/<jdk_version>/Contents/Home/jre/lib/jli/libjvm.dylib
    -

    Insert the full path to libjvm.dylib into the Java Path setting in the Preferences Window.

    +

    Insert the full path to libjli.dylib into the Java Path setting in the Preferences Window.

    On Linux

    The Java Runtime Library (called libjvm.so) can be found inside of your JRE install folder and looks like this:

    @@ -545,7 +565,7 @@

    On every start of Coati you are shown the start window. It allows for creating new projects or opening existing ones.

    - +
    Interactions: @@ -594,11 +614,10 @@ -

    Preferences Window

    The Preferences window lets you define settings for all projects. You can open the Preferences from the menu via Edit/Preferences.

    -
    +
    @@ -624,20 +643,28 @@ Choose which color scheme Coati should display. The color schemes are located in data/color_schemes/ - Scroll Speed - Define a multiplyer for the default scroll speed. Values smaller than 1 slow down scrolling while values greater than 1 increase the scroll speed. + Animations + Define if animations are used within the user interface. Logging Ticking this box enables logging to console and to a log file. This option is disabled by default to speed up Coati. If you encounter problems while running Coati, we recommend to enable this option so you have somewhere to start looking for a cause. - Indexer threads - Define how many parallel threads are used during indexing. + Indexer Logging + When enabled Coati will log detailed information during indexing. This log data can help us fix issues. - Non-Fatal Errors - Enable this option if you want Coati to display non-fatal errors in files that do not get indexed by Coati. Fatal errors will be displayed regardless of their location within the project because they tend to affect the indexers coverage. + Scroll Speed + Define a multiplyer for the default scroll speed. Values smaller than 1 slow down scrolling while values greater than 1 increase the scroll speed. + + + Graph Zoom + Switch the default mouse wheel behavior in the graph between scrolling and zooming. + + + Indexer threads + Define how many parallel threads are used during indexing. Coati Port @@ -651,6 +678,10 @@ Java Path If you want to use Coati on Java source code, please specify a path to your Java 8 runtime library. Please keep in mind that a 32 bit Coati requires a 32 bit version of Java while a 64 bit Coati requires a 64 bit Java to be working correctly. You can either use the button below for automatic detection or add the path manually. For instructions on how to find your Java runtime path see Finding Java Runtime Library Location. + + JVM Maximum Memory + Specify the maximum amount of memory that should be allocated by the indexer's JVM. A value of -1 ignores this setting. + Global Include Paths Set header search paths that are used for all of your projects (e.g. std headers). An option for automatic detection of these paths is available for Clang, GCC and the Visual Studio compiler. For instructions on how to add paths manually see Path List Box. For instructions on how to find the system header paths see Finding System Header Locations. @@ -665,7 +696,6 @@

    Project Setup Wizard

    The Project Setup Wizard consists of a sequence of windows that let you create a new Coati project. After selecting the programming language for your project Coati offers several ways for you to provide all the required information.

    -
    @@ -681,12 +711,11 @@
    -

    Create an Empty C/C++ Project

    +

    Create an Empty C/C++ Project

    This is the way to go if you just have some source files you want to index. In case you have a build instructions file, you might want to check out one of the other options for project setup described below.

    - Project Meta Data + Project Meta Data

    In the first step you need to enter meta information about the project.

    -
    @@ -697,8 +726,8 @@ Setting Description - Name The name of the project. This will also be the name of the .coatiproject file generated by Coati. - Location Choose the location of the project file from the dialog. + Coati Project Name The name of the project. This will also be the name of the .coatiproject file generated by Coati. + Coati Project Location Choose the location of the project file from the dialog. Standard Select the language standard that should be used for indexing your project. Usually the most recent language standard is preselected here. (See Language Support) @@ -711,7 +740,7 @@
    - Project Paths + Indexed Paths

    Provide the paths that contain your project's files. Coati will index all the source and header files in the specified paths, including subdirectories.

    @@ -723,7 +752,7 @@ Setting Description - Project Paths Specify one or multiple locations that contain all the source and header files that should be indexed by Coati. (For instructions on how to add paths see Path List Box.) + Indexed Paths Specify one or multiple locations that contain all the source and header files that you want to index with Coati. (For instructions on how to add paths see Path List Box.) Source File Extensions Define the valid extensions for source files including the dot e.g. .cpp @@ -753,7 +782,7 @@ Include Paths These paths are used to find the files specified by #include directives. (For instructions on how to add paths see Path List Box.) - Lazy Include Search When checked Coati also looks for included files within the project paths and all their subdirectories. Use this option if you are not familiar with the project to save yourself from figuring the projects include paths. Warning: When activated indexing speed is slower. + Lazy Include Search (deprecated) (Only visible in projects created before Coati 0.11) When checked Coati also looks for included files within the project paths and all their subdirectories. Use this option if you are not familiar with the project to save yourself from figuring the projects include paths. Warning: When activated indexing speed is slower. Global Include Paths These Header Search Paths will be used in all your projects. (For instructions on how to add paths see Path List Box. For instructions on how to find the system header paths see Finding System Header Locations) @@ -761,7 +790,7 @@
    • Selecting a compiler from the dropdown list below and pressing detect will automatically detect system include search paths used by this compiler and add them to the Global Include Paths.
    • Clicking Cancel or pressing ESC will close the window and abort the setup process.
    • -
    • Clicking Next will take you to the New Project Summary Window.
    • +
    • Clicking Next will take you to the next step of the setup process.
    • Clicking Previous will take you to the previous step of the setup process. All the information you entered will be saved.
    @@ -788,14 +817,38 @@
    • Selecting a compiler from the dropdown list below and pressing detect will automatically detect system header search paths used by this compiler and add them to the Global Header Search Paths.
    • Clicking Cancel or pressing ESC will close the window and abort the setup process.
    • -
    • Clicking Next will take you to the New Project Summary Window.
    • +
    • Clicking Next will take you to the next step of the setup process.
    • Clicking Previous will take you to the previous step of the setup process. All the information you entered will be saved.
    -

    Create a C/C++ Project from Visual Studio Solution

    -

    If you already have a Visual Studio solution file, this is the way to go. Just select the solution file in the file picker and Coati will automatically analyze it to prepopulate the New Project Summary Window (this may take a second or two).

    + Advanced Settings +

    In this dialog you can enter additional settings. You can add compiler flags or defines that will be used when indexing and you can exclude certain paths or files from indexing.

    +
    +
    + +
    +
    + + + + + + + + +
    Setting Description
    Compiler Flags Define compiler flags used during indexing including the dash (e.g. use -D RELEASE to add a #define for RELEASE). (For instructions on how to add paths see Path List Box.)
    Exclude Paths Exclude Paths define the files and directories that will be left out from indexing. (For instructions on how to add paths see Path List Box.)
    + Interactions: +
      +
    • Clicking Cancel or pressing ESC will close the window and abort the setup process.
    • +
    • Clicking Next will take you to the next step of the setup process.
    • +
    • Clicking Previous will take you to the previous step of the setup process. All the information you entered will be saved.
    • +
    + +
    +

    After this step the New Project Summary will appear as last step in the project creation proccess.

    +
    @@ -817,8 +870,8 @@ Setting Description - Name The name of the project. This will also be the name of the .coatiproject file generated by Coati. - Location Choose the location of the project file from the dialog. + Coati Project Name The name of the project. This will also be the name of the .coatiproject file generated by Coati. + Coati Project Location Choose the location of the project file from the dialog. Compilation Database Select the compilation database .json for the project. Coati will index the project based on the compile commands in this file. If the compilation database changes you can Refresh Coati to the new files. @@ -844,33 +897,50 @@ Setting Description - Source Files Clicking show source files will show you a list of all source files in the compilation database + Source Files Clicking show source files will show you a list of all source files in the compilation database. Indexed Header Paths Specify one or multiple locations that contain the header files to the source files defined in the compilation database. (For instructions on how to add paths see Path List Box.) Interactions:
      +
    • Clicking Select From Include Paths will display a dialog showing a list of all the Include Paths used within the Compilation Database. You can select paths and all headers that are included within these paths will also get indexed.
    • Clicking Cancel or pressing ESC will close the window and abort the setup process.
    • -
    • Clicking Next will take you to the New Project Summary Window.
    • +
    • Clicking Next will take you to the next step of the setup process.
    • Clicking Previous will take you to the previous step of the setup process.
    +
    +

    After this step you will continue at the Advanced Settings.

    +
    +
    -

    Create an Empty Java Project

    +

    Create a C/C++ Project from Visual Studio Solution

    +

    If you are using Visual Studio you can export a Compilation Database with out Visual Studio Plugin and use it to create a project with Coati.

    +
    +
    + +
    +
    + Interactions: +
      +
    • Clicking Create CDB will communicate to the Visual Studio Plugin that a project should be exported as Compilation Database. Please have a look at the Visual Studio Plugin for more details on the steps within Visual Studio.
    • +
    + +
    +

    After finishing the export process within Visual Studio the project setup will continue using the same steps as creating a project directly from Compilation Database.

    +
    + +
    + +

    Create an Empty Java Project

    Choose this option if you want to use Coati on a Java code base.

    Project Meta Data -

    This is the same window as described above.

    - -
    - - Project Paths -

    In this step you provide all the information Coati needs to know about your code base.

    - +

    In the first step you need to enter meta information about the project.

    -
    - +
    +
    @@ -878,82 +948,77 @@ - + + + + +
    Setting Description
    Project Paths Provide the root path of your Java project. This is the path where all your package names are relative to. You may provide multiple paths here. For an example this may be required it your project's source code resides in one location but generated source files are kept at a different location.
    Coati Project Name The name of the project. This will also be the name of the .coatiproject file generated by Coati.
    Coati Project Location Choose the location of the project file from the dialog.
    Standard Select the language standard that should be used for indexing your project. We currently only support Java 8
    + Interactions: +
      +
    • Clicking Cancel or pressing ESC will close the window and abort the setup process.
    • +
    • Clicking Next will take you to the next step of the setup process.
    • +
    • Clicking Previous will take you to the previous step of the setup process. All the information you entered will be saved.
    • +
    + +
    + + Indexed Paths +

    In this step you provide all the information Coati needs to know about your code base.

    + +
    +
    + +
    +
    + + + + + +
    Setting Description
    Indexed Paths Provide the root path of your Java project. This is the path where all your package names are relative to. You may provide multiple paths here. For an example this may be required if your project's source code resides in one location but generated source files are kept at a different location.
    Class Path Add one entry per jar file that is required for the project to compile. You can also add the root path of the class files your project depends on, or add a mixture if you have class files for some of the dependencies and jar files for the rest of them.
    + Advanced Settings +

    In this dialog you can enter additional settings. You can define source file extentions and you can exclude certain paths or files from indexing.

    +
    +
    + +
    +
    + + + + + + + + +
    Setting Description
    Source File Extensions Define extensions for source files including the dot e.g. .cpp or .java
    Exclude Paths Exclude Paths define the files and directories that will be left out from indexing. (For instructions on how to add paths see Path List Box.)
    + Interactions: +
      +
    • Clicking Cancel or pressing ESC will close the window and abort the setup process.
    • +
    • Clicking Next will take you to the next step of the setup process.
    • +
    • Clicking Previous will take you to the previous step of the setup process. All the information you entered will be saved.
    • +
    + +
    +

    After this step the New Project Summary will appear as last step in the project creation proccess.

    +
    + +
    +

    New Project Summary

    This window appears at the end of the Project Setup Wizard to summarize all the information entered before. It is the same as the Edit Project Window.

    -
    - -

    Edit Project Window

    -

    This window displays all the information relevant for your Coati project.

    -
    - - - - - - - - - - - - -
    Setting Description
    Name The name of the project. This will also be the name of the .coatiproject file generated by Coati.
    Location Choose the location of the project file from the dialog.
    Language This field displays the language you chose for the project. (See Language Support)
    Standard Select the language standard that should be used for indexing your project. Usually the most recent language standard is preselected here. (See Language Support)
    Project Paths Add all directories or files you want Coati to index. Providing a directory here will recursively add all the contained files. Usually these are all source and header files of your project or a subset of them.
    - - - - - - - - - - - - - - - -
    Setting Description for C/C++
    Visual Studio Solution Only when using Setup from Visual Studio Solution. Provide the path to your Visual Studio Solution. Clicking the refresh arrow inside the text box will refresh the Project Paths and the Header Search Paths below.
    Compilation Database Only when using Setup from Compilation Database. Provide the path to your Compilation Database.
    Indexed Header Paths Only when using Setup from Compilation Database. Even though the compilation database specifies all the include paths required to compile the project, you may not want to spend a lot of time indexing all of these. Every time Coati encounters a header it will check if the file is located in one of these paths to decide whether or not to index it.
    Include Paths Specify where Coati should be looking for included headers.
    Lazy Include Search If this checkbox is checked Coati also looks into the project paths (including subdirectories) when resolving #include directives. Use this option when you know that the project is self contained but don't know which paths you should specify as include paths.
    Global Include Paths Same as Include Paths but these are used application wide for all of your Coati projects.
    Framework Search Paths Mac only. Define the search paths for .framework files for your project. (For instructions on how to add paths see Path List Box.)
    Global Framework Search Paths Mac only. Same as Framework Search Paths but these are used application wide for all of your Coati projects.
    - - - - - - - - -
    Setting Description for Java
    Project Paths Provide the root path of your Java project. This is the path where all your package names are relative to. You may provide multiple paths here. For an example this may be required it your project's source code resides in one location but generated source files are kept at a different location.
    Class Path Add one entry per jar file that is required for the project to compile. You can also add the root path of the class files your project depends on, or add a mixture if you have class files for some of the dependencies and jar files for the rest of them.
    - - - - - - - - - -
    Advanced Setting Description
    Source File Extensions Define extensions for source files including the dot e.g. .cpp or .java
    Exclude Paths Define files and directories that should not be indexed by Coati, although they appear in the Project Paths.
    - - - - - - - -
    Advanced Setting Description for C/C++
    Compiler Flags Define compiler flags used during indexing e.g. -v
    Interactions:
      @@ -962,6 +1027,25 @@
    • Clicking Previous will take you to the previous step of the setup process. All the information you entered will be saved.
    +
    +

    If you are following the Quick Start Guide then please continue at Source Indexing after pressing Create.

    +
    + +
    + +

    Edit Project Window

    +

    This window displays all the information relevant for your Coati project. Please have a look at the Project Setup Wizard for descriptions on each setting.

    +
    +
    + +
    +
    + Interactions: +
      +
    • Clicking Cancel or pressing ESC will close the dialog with no changes made.
    • +
    • Clicking Save will check your inputs, save the new project file and inform you whether you need to re-index your project.
    • +
    +

    Enter License Window

    @@ -995,6 +1079,7 @@ Interactions:
      +
    • Checking full refresh will re-index the whole projects.
    • Clicking Cancel will abort indexing.
    • Clicking Start will start the file clearing and indexing.
    @@ -1105,10 +1190,10 @@
  • - Force Refresh + Full Refresh
      -
    • Shortcut: Force Refresh
    • -
    • Force Refresh will reindex the whole project.
    • +
    • Shortcut: Full Refresh
    • +
    • Full Refresh will reindex the whole project.
  • @@ -1181,6 +1266,12 @@
  • Toggle the visibility of the Code Window. This can also be done by closing the Code Window on clicking the "x" icon in it's title bar. (See Window Widgets)
  • +
  • + Status Window +
      +
    • Toggle the visibility of the Status Window. This can also be done by closing the Status Window on clicking the "x" icon in it's title bar. (See Window Widgets)
    • +
    +
  • Larger Font
      @@ -1212,6 +1303,12 @@
    • Shows copyright information about Coati.
  • +
  • + Keyboard Shortcuts +
      +
    • Shows table of keyboard shortcuts for Coati.
    • +
    +
  • Documentation
      @@ -1225,7 +1322,7 @@
  • - Licences + 3rd Party Licences
    • Documents which third party licences Coati is using.
    @@ -1294,7 +1391,7 @@ F5 - Force Refresh + Full Refresh Shift + F5 Cmd + Shift + R Shift + F5 @@ -1362,6 +1459,7 @@ +

    Graph View

    The graph view visualizes the currently selected symbol and all its relationships to other symbols as an interactive graph visualization.

    @@ -1379,6 +1477,7 @@ Zooming:
      +
    • Press the + and - buttons in the lower left corner.
    • Hold Shift and scroll with mouse wheel or mouse pad.
    • Press Shift + W or Shift + S.
    • Press 0 to reset zoom.
    • @@ -1392,13 +1491,15 @@ File + Macro + Namespace & Package + Class & Struct: Display their members nested, and separated by access type: public, protected, private. By default only members with edges are shown. The arrow icon allows to expand and collapse them. The number tells how many nodes are hidden. Type & Template Parameter Typedef - Class & Struct: Display their members nested, and separated by access type: public, protected, private. By default only members with edges are shown. The arrow icon allows to expand and collapse them. The number tells how many nodes are hidden. Variable & Field Function & Method - Enum - Undefined: Nodes that were not defined within the indexed files are shown with hatched background. + Enum + Non-indexed: Nodes that were not defined within the indexed files are shown with hatched background. Bundle: A bundle node combines multiple nodes to reduce the size of the graph visualization. The name describes what kind of nodes are bundled. The number tells how many nodes are bundled. @@ -1435,9 +1536,10 @@
    • Hover an edge to see a tooltip that displays the edge’s type.
    +

    Code View

    -

    The code view displays the corresponding source code of the currently selected symbols. The code view contains a list of one or more files.

    +

    The code view displays the corresponding source code of the currently selected symbols. The code view has two modes. In list mode it contains a list of one or more files. In single file mode it shows one full source file at a time.

    @@ -1445,10 +1547,15 @@
    Interactions:
      +
    • Look at the different refernces of the currently active symbol with the 2 buttons in the upper left corner.
    • +
    • Switch between Snippet List and Single File mode with the 2 buttons in the upper right corner.
    • Scroll up and down to see the different source files.
    -

    Files

    +

    Snippet List Mode

    +

    In this mode the Code View will provide all references of the currently active symbol at once. The top most snippet will show the definition of the symbol if available.

    + +

    Files

    Each file has a title bar with the file's name and buttons to change its display state. There are 3 different states:

    • @@ -1481,7 +1588,7 @@
    • Click one of the three icons on the right to change the display state of the file.
    -

    Snippets

    +

    Snippets

    A code snippet contains the lines of interest for the currently active symbol surrounded by some more lines to provide some context. Other symbols that were indexed by Coati are framed by a box when hovered. Here Coati distinguishes between local symbols and symbols that can be related to any other part of the code base. In case the snippet is part of a class, function or namespace, an additional line at the top of the snippet provides information about the snippet’s context (e.g. the surrounding scope).

    @@ -1495,6 +1602,15 @@
  • Click a boxed local symbol to highlight all its usages in the visible code.
  • +

    Single File Mode

    +

    In single file mode you will only every have one file visible at a time. The first file shown is usually the file containing the definition of the active snippet if available. Other than that the user interface is the same as in Snippet List Mode. +

    +
    + +
    +
    + +

    Search View

    The Search View contains the search field and some other related user interface elements.

    @@ -1596,38 +1712,60 @@
  • Start a query with ?? to do a case-sensitive full text search.
  • -
    +
    -

    Log View

    -

    The Log View is a view with different tabs which provide information about your project. This - view is by default hidden. Currently there is only the Error Tab

    - Tabs: +

    Status View

    +

    This view provides different tabs with information about your project. This + view is hidden by default.

    + + Interactions:
      -
    • Errorlist
    • -
    • (in Development)
    • +
    • Click on the titles on top to switch between tabs.
    -

    ErrorList

    +
    + +

    Status Tab

    +

    This table gives some information about status updates while running Coati. It can be helpful to figure out why something does not the way it's expected to.

    +
    +
    + +
    +
    + + Interactions: +
      +
    • Double click on a table cell to select the text for copy&paste.
    • +
    • Use the checkboxes below to filter the shown messages by type.
    • +
    + +
    + +

    Errors Tab

    This list shows errors occured durring indexing.

    - +
    -

    The following informations are provided:

    + +

    The following information is provided:

      -
    • Errormessage
    • +
    • Error message
    • File
    • -
    • Linenumber
    • -
    • Indexed(if the file was in the indexed files)
    • +
    • Line number
    • +
    • Indexed (if the file is within the indexed files)
    + Interactions:
      -
    • Click on a errorline to see the location in the Code View
    • -
    • Click on the errors in the statusline opens the Errorlist
    • -
    • Double click on table and select text for copy&paste
    • +
    • Click on a error line to see the location of the error in the Code View.
    • +
    • Double click on a table cell to select the text for copy&paste.
    • +
    • Use the checkboxes below to filter the shown errors by certain criteria.
    +
    +

    CODE EDITOR PLUGINS

    In order to make Coati the perfect partner for your development workflow you can connect Coati with different code editors. You can find the plugins in Coati's download package located in the folder /ide_plugins. Have a look at the following list of supported code editors to find out what editors are currently supported.

    We are eager to expand the range of supported editors, so if you can't find a plugin for the code editor you are using, please let us know by writing to support@coati.io.

    @@ -1651,6 +1789,7 @@

    Incoming messages are in the form:

    setActiveToken>>absolute/file_path>>line_number>>column_number<EOM>
    +

    From Coati

    If you want your editor to open a file at a specific location from within Coati, you can achieve this by either selecting the option Set IDE Cursor from the right-click menu in the Code View or by simply clicking into a line in the Code View while holding down the Ctrl or Cmd key.

    @@ -1660,6 +1799,8 @@
    +
    +

    To Coati

    By using a Coati plugin for your code editor, you can select a location within a source file and Coati will show you all symbols found at this location. Please have look at the list below to see which plugins are currently available and how they are used.

    @@ -1914,6 +2055,8 @@
    +
    +

    IDE Communication Protocol

    Coati's IDE plugins communicate with Coati via sockets, using TCP. Coati implements a number of messages to provide an interface for the plugins.

    This chapter explains the general structure of those messages, followed by a list of possible message types.