Skip to content

Repository files navigation

logo ImGui Productivity Tools - IMCTools

Turbocharge your Dear ImGui workflow with smart color editing + auto-formatting!

This plugin is made on the IntelliJ Platform Example from JetBrains.

Features

Visual Color Picker

Click gutter icons to modify colors directly in your code Supports all ImGui color formats:

ImColor color = ImColor(255, 0, 0, 167);            // Integer
ImVec4 color = ImVec4(1.00f, 0.50f, 0.00f, 1.00f);  // Float
float color[4] = {0.20f, 0.20f, 0.20f, 1.00f};      // Array

Updated buggy find usage. Now this also will work:

auto color = ImColor(255, 0, 0);                                                // Integer
ImVec4 color{0.43f, 0.21f, 0.71f, 1.00f};                                       // Float
float color[4]{0.22f, 0.22f, 0.29f, 1.00f};                                     // Array
std::vector<ImColor> cols{ImColor(250, 250, 250, 255), ImColor{0, 0, 0, 255}};  // Vector
auto youtubeColor = ImU32(0xFF2941EC);                                          // Hex
ImU32 interestingColor = IM_COL32(255, 0, 0, 255);                              // IM_COL32

Supported Formats (Current)

Format Example
ImColor (int) ImColor(255, 0, 0, 255)
ImColor (float) ImColor(1.0f, 0.0f, 0.0f)
ImVec4 ImVec4(1.0f, 0.0f, 0.0f, 1.0f)
Float array float color[4] = {1.0f, 0.0f, 0.0f, 1.0f}
ImU32 hex format auto color = ImU32(0xFF0000FF)
IM_COL32 macro ImU32 color = IM_COL32(255, 0, 0, 255)

Planned Support

  • Variables and expressions inside constructors

Examples:

Same color picker we all love from IntelliJ IDE when working with java.awt.Color

ihatedefaultimguicolors mycatcute

Smart Code Formatting

Automatic line breaks for ImGui blocks:

  • Proper indentation for widget hierarchies
  • Formatting preserves your code style

This code:

ImGui::Begin("Window"); {user_enter}

Will be automatically formatted to this:

ImGui::Begin("Window");
{
  {user_cursor_will_be_set_here}
}
ImGui::End();

Installation

Marketplace

Not Uploaded yet.

Manual

  1. Download the .jar from releases
  2. Open JetBrains CLion
  3. Go in your plugins window
  4. Press the gear icon and select "Install plugin from Disk..."
  5. Select the .jar

More information about manual installation can be found here.

Compatibility

  • Primary IDE: CLion <= 2023.3 (233) (other JetBrains IDEs may work)
  • Languages: C/C++
  • ImGui Versions: Works with all Dear ImGui versions

TODO:

  • Fix the Color Picker code
    • Multiple colors in the same line
    • Leave the users coding style alone
    • ImU32 hex format
    • IM_COL32 macro support
    • Variables and expressions inside constructors
  • Create custom .svg icon
  • Make the README.md look better
  • Add mismatched stack tracker with code highlight
  • Add duplicate id stack tracker with code highlight
  • ImGui Window examples to click and paste with previews
  • Add ImGui documentation in the Tool Window
  • Make the Tool Window look better
    • Add search functionality
  • Add Customization for the Smart Code Formatting
Signed by SleepyFish.

About

A CLion plugin created to improve your ImGui creations.

Resources

Code of conduct

Stars

8 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages