Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[EmBitz] Code Completion

I've been using Em::Bitz for quite some time, and it's very good (imo even better than keil that I use every day in work), but there seem to be one thing that I cannot figure out. CodeComplete does not work with standard library. Every time I try to use <vector> or anything like that I get no complete results, as if those files were not there (code works fine). Is this known issue or am I just doing something wrong?

//Before someone tells me how vectors are wrong
I'm familiar with all the cons, and costs but STM32F4 is more than enough for this task.

//Before someone tells me to "use search"
I've searched forum and tickets (and whole web) and I've found no answer.

Code completion or any code parsing features like finding the implementation etc, does not work well with heavily preprocessor nested definitions, declarations or implementations. It is yet to be completed. Please refer to ticket #11 for this feature.
Add me to the list of people who want the code completion bugs fixed. It does not appear to be checking for command line defines, evaluating macros and/or recursing down #includes.

I've just ported some code from ST's SPL to the LL drivers for the STM32L4 devices. The files make extensive use of #ifdef #endif based on conditional #includes and #defines that are one or two files away, which makes the code completion in its current state pretty useless.

Hopefully these problems will be fixed in the upcoming release.

ETA: Or if the upcoming release is going to be some time, a new plugin would be most welcome...
Just to let people know, I've found a workaround for code completion with the LL drivers:

1. Go to Settings / Editor...
2. Select Code Completion in the left pane of the dialog.
3. Under the C/C++ parser tab uncheck the 'Parse preprocessor directives' option.

That at least brings the symbols into view, though I suspect it will also bring in symbols that are not appropriate for the particular processor being used (as defined by the command line #define STM32L476xx in the build options for the project in my case).

Forum Jump:

Users browsing this thread: 1 Guest(s)