Authors:
advtools
free software

C/C++

Products: IntelliJ IDEA, RubyMine, WebStorm, PhpStorm, PyCharm, AppCode, Android Studio

Vendor: AdvancedTools

Email:

Website: N/A

Description:

Provides advanced C / C++ / Makefile editing and compiling / debugging capabilities. Editing capabilities consist of reference navigation (variable / field / macro / macr parameter names), completion, live semantic and error highlighting (sometimes with fixes :),
find usages, goto class / symbol / macro def / constant, refactorings (rename, introduce var), override / implements action / navigation,
quick navigate info (Control + Mouse hover), generate default/copy constructors and assignment operator, detect unused variable / functions, structure view
, surround with cast/if/etc, navigate from java native declaration to cpp implementation and backward, do compile for cpp files and build for makefile/dsp/vcproj files and more.
Debugging support consists of GDB integration exposed as idea debugger interface.
EAP software, works only for Win32/(MsVc/Gcc + CygWin/MingW), Linux 32bit /Intel/Gcc, MacOSX/Intel/Gcc platforms with IntelliJ Idea 12 Ultimate / Community editions (builds 123.00), WebStorm.
Detailed readme and blog
Downloads: 56001
Rating:
Participated in rating: 27
Version Since Build Until Build File/URL Size (Kb) Date Details
0.8 build 5. 111.200. . Download 5424.04 2013-02-15 21:57:30 details
0.8 build 3 [BETA]. 107.200. 117.*. Download 5416.46 2013-01-23 19:16:36 details
0.8 build 1. . . Download 5772.68 2010-10-03 22:57:19 details
. .
13 updates are hidden show all updates

Recent change notes:

In 0.8.5:
  • Idea 11.1 compatibility fixes.
  • Compile file action supports Clang.
In 0.8.4:
  • Customizable Makefile colors.
  • Added IntelliJ Idea 12 support.
  • Dropped IntelliJ Idea 10 / 10.5 support.
In 0.8.3:
  • Added IntelliJ Idea 10.5 / 11, WebStorm support.
  • Dropped IntelliJ Idea 9 (Diana) support.
In 0.8.2:
  • Dropped Idea 8 (Diana) support.
In 0.8.1:
  • Major feature: initial support for handling Cpp and C files without switching settings.
  • Completion of member names in constructor initializer list.
  • Find usages over string literal will find other occurrences of the same literal.
  • Completion of macros parameters inside macro body.
  • Assorted performance and usability fixes got from dog fooding :).
  • Completion / navigation for targets / value references in makefiles.
  • Recent find usages action works in usage view for c++ symbols.
  • Option to disable multiple definition checks (C++ Project Settings|Settings).
  • No absent definition error produced for declaration of static integral constant inside class.
  • Leading // file level header comments are folded.
  • Fixed bug with broken "Navigate to constant / macro".
  • Added IdeaX support.
  • Dropped Idea 6 (Demetra) and Idea 7 (Selena) support.

Comments:

Deviruchi
Rated: noRate
2013-06-01 15:58:54
Seems that GDB is not working correctly with this plugin. I coudn't find root problem. Debug process is nicely started and first break is hit, but no frame or variables are availaible. And no debug stepping is reflected back to IntelliJ Idea. I am glad this is plugin is developed but this is must have for serious work. Using version 12.1.3 IU 129.451 with Cpp plugin 0.8 build 5. In case of additional questions, feel free to contact me.
.
msmouse
Rated: noRate
2013-05-23 06:33:50
Not working with the default configuration on IDEA 12/Windows/MinGW the reason seems to be macro substitution failure -- “set PATH=$PATH;c:/MinGW/bin” just don't work, so IDEA reports "cannot find make.exe" with a manual "external tool" before running could do the trick...but...hope it can be fixed
.
DavidNo
Rated:
2013-05-22 07:17:02
I'm grateful that someone is working on C/C++support for IntelliJ, but this product is not ready for inclusion in the JetBrains repository. In short it is buggy and feature poor.
.
Anonymous
Rated: noRate
2013-03-10 14:43:51
After update to 0.8.5 the same error: 14:42:42 NoSuchMethodError: Error during dispatching of java.awt.event.MouseEvent[MOUSE_RELEASED,(657,677),absolute(850,716),button=1,modifiers=Button1,clickCount=1] on dialog0: com.intellij.openapi.projectRoots.impl.ProjectJdkImpl.(Ljava/lang/String;Lcom/intellij/openapi/projectRoots/SdkType;)V (show balloon)
.
josef.van.niekerk@gmail.com
Rated:
2013-03-04 12:05:54
I'm a big fan of IntelliJ and using it for nearly everything I do, from PHP dev, to Ruby, Ruby on Rails an much more. I do some C/C++ development in my free time, in particular for embedded programming of the ARM Cortex-M4 processor. Take a peek here: http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/PF252419 I recently brought the above evaluation board from ST Microelectronics, and so far the only IDE I could find to code and debug the device, is Eclipse, and I HATE Eclipse with a passion. I already have a license for IntelliJ IDEA Ultimate, so my question is whether it is possible to use/adapt AdvancedTools' C/C++ plugin to support debugging for the device. So far, I've been able to figure out how to change to use arm-none-eabi-gdb debugger, instead of gdb. This is just a different flavour of GDB, specifically compiled for ARM development. http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/PF252419 Further, I can use a utility, called ST-Link to start a remote instance of a GDB server, connected to the device via USB, and a JTAG debugger. Your plugin though, doesn't need to know all this, it already has support for remote C/C++ debugging, with GDB, and the GDB server for the electronic device is basically GDB compliant. Normally I take the following process to debug with GDB as follows from the command line: Start the st-link utility, which starts a GDB instance on 127.0.0.1:4242 > st-link Then, connect GDB to the above instance: > cd ~/Projects/stm32f4-examples/ > arm-none-eabi-gcc -f debug/main.elf This pops me into the (gdb) command line, where I can set breakpoints, pause, continue etc the device core. Is there a way for me to achieve this with your plugin? I'm not entirely sure how to configure it, or to get it to run with the: -f filename ...argument, but would love to be able to use it. I think if this would be possible, it would open doors for embedded hardware programmers, and get much more people to use the much better IntelliJ IDEA. I know you folks like it too, why else would you build a C/C++ plugin for it? ;)
.
Anonymous
Rated: noRate
2013-02-28 03:29:25
-------------Trace------------- Symbol table is not available (probably, not loaded yet).: Error: `File "src/server/cfserver.cpp", line 762: void Server::process_command(Ref, Pipe&): Failure: Error while executing TCL script: couldn't read file "C:\Users\Андрей\.IntelliJIdea12\config\plugins\CppTools\lib\lib.tcl": no such file or directory while executing "source "C:\\Users\\Андрей\\.IntelliJIdea12\\config\\plugins\\CppTools\\lib\\lib.tcl""; errorline: 1 file C:\Users\Андрей\.IntelliJIdea12\config\plugins\CppTools\lib\lib.tcl really exists in this path
.
monnef
Rated: noRate
2013-02-21 14:41:52
I can't manage to get debugging working. Any up-to date guide? I'm using MinGW (so gcc+gdb), paths seem ok but after launching debug it just doesn't do a thing (even though there are breakpoints set) - it opens debug window, and that's it. console with running program is immediately closed, no crash, just opened debug panel. I'd say that it doesn't run gdb at all (or it's not attached to the program). Is needed to set some other options in order to get it working?
.
TP
Rated: noRate
2013-02-20 13:22:52
I'm getting an error when I install it: 10:20:01 NoSuchMethodError: Error during dispatching of java.awt.event.InvocationEvent[INVOCATION_DEFAULT,runnable=com.advancedtools.cpp.communicator.Communicator$4$2@55c923e4,notifier=null,catchExceptions=false,when=1361352001339] on apple.awt.CToolkit@5f309025: com.intellij.openapi.roots.ProjectRootManager.addModuleRootListener(Lcom/intellij/openapi/roots/ModuleRootListener;)V
.
advtools
Rated: noRate
2013-02-17 12:09:04
Hold on to report same problems, updated plugin 0.8.5 is under moderation
.
Anonymous
Rated: noRate
2013-02-17 11:25:45
NoSuchMethodError: Error during dispatching of java.awt.event.MouseEvent[MOUSE_RELEASED,(680,683),absolute(873,722),button=1,modifiers=Button1,clickCount=1] on dialog1: com.intellij.openapi.projectRoots.impl.ProjectJdkImpl.(Ljava/lang/String;Lcom/intellij/openapi/projectRoots/SdkType;)V
.
Anonymous
Rated: noRate
2013-02-17 11:23:40
I have the same error on windows with mingw. I tried reinstall the plugin. Idea 12.0.4
.
advtools
Rated: noRate
2013-02-15 21:58:28
Another build of plugin version 0.8.5 was released
.
Anonymous
Rated: noRate
2013-02-15 20:51:53
I just tried the plugin with Intellij 12 Community Edition on Linux with GCC. I get the following Exception creating a new project. java.lang.NoSuchMethodError: com.intellij.openapi.projectRoots.impl.ProjectJdkImpl.(Ljava/lang/String;Lcom/intellij/openapi/projectRoots/SdkType;)V at com.advancedtools.cpp.sdk.CppSdkType$1.compute(CppSdkType.java:101) at com.advancedtools.cpp.sdk.CppSdkType$1.compute(CppSdkType.java:98) at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:997) at com.advancedtools.cpp.sdk.CppSdkType.createOrGetSdkByPath(CppSdkType.java:98) at com.advancedtools.cpp.sdk.ChooseCppSdkStep.updateDataModel(ChooseCppSdkStep.java:88) at com.intellij.ide.util.newProjectWizard.AddModuleWizard.commitStepData(AddModuleWizard.java:231) at com.intellij.ide.util.newProjectWizard.AddModuleWizard.doNextAction(AddModuleWizard.java:237) at com.intellij.ide.wizard.AbstractWizard$5.actionPerformed(AbstractWizard.java:197) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252) at java.awt.Component.processMouseEvent(Component.java:6505) at javax.swing.JComponent.processMouseEvent(JComponent.java:3321) at java.awt.Component.processEvent(Component.java:6270) at java.awt.Container.processEvent(Container.java:2229) at java.awt.Component.dispatchEventImpl(Component.java:4861) at java.awt.Container.dispatchEventImpl(Container.java:2287) at java.awt.Component.dispatchEvent(Component.java:4687) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422) at java.awt.Container.dispatchEventImpl(Container.java:2273) at java.awt.Window.dispatchEventImpl(Window.java:2719) at java.awt.Component.dispatchEvent(Component.java:4687) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:729) at java.awt.EventQueue.access$200(EventQueue.java:103) at java.awt.EventQueue$3.run(EventQueue.java:688) at java.awt.EventQueue$3.run(EventQueue.java:686) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87) at java.awt.EventQueue$4.run(EventQueue.java:702) at java.awt.EventQueue$4.run(EventQueue.java:700) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.awt.EventQueue.dispatchEvent(EventQueue.java:699) at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:673) at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:494) at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:333) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:154) at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:182) at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:221) at java.security.AccessController.doPrivileged(Native Method) at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:219) at java.awt.Dialog.show(Dialog.java:1082) at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl$MyDialog.superShow(DialogWrapperPeerImpl.java:727) at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl$MyDialog.show(DialogWrapperPeerImpl.java:723) at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl.show(DialogWrapperPeerImpl.java:425) at com.intellij.openapi.ui.DialogWrapper.showAndGetOk(DialogWrapper.java:1438) at com.intellij.openapi.ui.DialogWrapper.show(DialogWrapper.java:1414) at com.intellij.ide.impl.NewProjectUtil.createNewProject(NewProjectUtil.java:76) at com.intellij.ide.actions.NewProjectAction.actionPerformed(NewProjectAction.java:26) at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter$1.run(ActionMenuItem.java:255) at com.intellij.openapi.wm.impl.FocusManagerImpl.runOnOwnContext(FocusManagerImpl.java:892) at com.intellij.openapi.wm.impl.IdeFocusManagerImpl.runOnOwnContext(IdeFocusManagerImpl.java:114) at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.actionPerformed(ActionMenuItem.java:226) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018) at com.intellij.openapi.actionSystem.impl.ActionMenuItem.fireActionPerformed(ActionMenuItem.java:100) at com.intellij.ui.plaf.beg.BegMenuItemUI.doClick(BegMenuItemUI.java:512) at com.intellij.ui.plaf.beg.BegMenuItemUI.access$300(BegMenuItemUI.java:44) at com.intellij.ui.plaf.beg.BegMenuItemUI$MyMouseInputHandler.mouseReleased(BegMenuItemUI.java:532) at java.awt.Component.processMouseEvent(Component.java:6505) at javax.swing.JComponent.processMouseEvent(JComponent.java:3321) at java.awt.Component.processEvent(Component.java:6270) at java.awt.Container.processEvent(Container.java:2229) at java.awt.Component.dispatchEventImpl(Component.java:4861) at java.awt.Container.dispatchEventImpl(Container.java:2287) at java.awt.Component.dispatchEvent(Component.java:4687) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422) at java.awt.Container.dispatchEventImpl(Container.java:2273) at java.awt.Window.dispatchEventImpl(Window.java:2719) at java.awt.Component.dispatchEvent(Component.java:4687) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:729) at java.awt.EventQueue.access$200(EventQueue.java:103) at java.awt.EventQueue$3.run(EventQueue.java:688) at java.awt.EventQueue$3.run(EventQueue.java:686) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87) at java.awt.EventQueue$4.run(EventQueue.java:702) at java.awt.EventQueue$4.run(EventQueue.java:700) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.awt.EventQueue.dispatchEvent(EventQueue.java:699) at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:673) at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:494) at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:333) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138) at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
.
advtools
Rated: noRate
2013-02-14 16:21:56
Please try plugin version 0.8.5
.
Anonymous
Rated: noRate
2013-02-13 18:22:51
Newest version 0.8.4 doesn't work with IntelliJ 11.1.5: com.intellij.openapi.projectRoots.Sdk.getSdkType()Lcom/intellij/openapi/projectRoots/SdkTypeId; [Plugin: C/C++] com.intellij.diagnostic.PluginException: com.intellij.openapi.projectRoots.Sdk.getSdkType()Lcom/intellij/openapi/projectRoots/SdkTypeId; [Plugin: C/C++] at com.intellij.compiler.impl.CompileDriver.a(CompileDriver.java:765) at com.intellij.compiler.impl.CompileDriver.access$1000(CompileDriver.java:104) at com.intellij.compiler.impl.CompileDriver$8.run(CompileDriver.java:665) at com.intellij.compiler.progress.CompilerTask.run(CompilerTask.java:155) at com.intellij.openapi.progress.impl.ProgressManagerImpl$TaskRunnable.run(ProgressManagerImpl.java:469) at com.intellij.openapi.progress.impl.ProgressManagerImpl$2.run(ProgressManagerImpl.java:178) at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:218) at com.intellij.openapi.progress.impl.ProgressManagerImpl.runProcess(ProgressManagerImpl.java:169) at com.intellij.openapi.progress.impl.ProgressManagerImpl$8.run(ProgressManagerImpl.java:378) at com.intellij.openapi.application.impl.ApplicationImpl$6.run(ApplicationImpl.java:434) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) at java.util.concurrent.FutureTask.run(FutureTask.java:166) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) at java.lang.Thread.run(Thread.java:722) at com.intellij.openapi.application.impl.ApplicationImpl$1$1.run(ApplicationImpl.java:145) Caused by: java.lang.NoSuchMethodError: com.intellij.openapi.projectRoots.Sdk.getSdkType()Lcom/intellij/openapi/projectRoots/SdkTypeId; at com.advancedtools.cpp.facade.CppCompiler.getProcessingItems(CppCompiler.java:46) at com.intellij.compiler.impl.FileProcessingCompilerAdapter.getProcessingItems(FileProcessingCompilerAdapter.java:42) at com.intellij.compiler.impl.CompileDriver.a(CompileDriver.java:2023) at com.intellij.compiler.impl.CompileDriver.a(CompileDriver.java:1464) at com.intellij.compiler.impl.CompileDriver.a(CompileDriver.java:1004) at com.intellij.compiler.impl.CompileDriver.a(CompileDriver.java:747) ... 16 more
.