Hallo, ich weiß gar nicht so genau, wie ich mein Problem beschreiben soll: Ich übe gerade etwas mit Eclipse herum. Da kann man ja mit STRG+SPACE die code completion aufrufen. Er scheint dort ja die includes "verstanden" zu haben. Bei Visual Studio war es bisher so, daß dort auch nur die Sachen vorgeschlagen werden, die noch möglich sind. Beispiel: Ich inkludiere beim LPC17xx die Datei lpc17xx_timer.h und definiere außerhalb von main eine globale Variable TIM_ConfigStruct vom Typ TIM_TIMERCFG_Type (eine struct). In main greife ich dann mit dem Punktoperator auf das member PrescaleOption zu und will dann nach dem Gleichheitszeichen eine Zuweisung machen. Laut Lib gibt es dort nur die Möglichkeiten TIM_PRESCALE_TICKVAL und TIM_PRESCALE_USVAL. Es steht dort also TIM_ConfigStruct.PrescaleOption = Dann drücke ich STRG+SPACE und erwarte, daß nur die beiden laut Lib möglichen vorgenannten Werte TIM_PRESCALE_TICKVAL und TIM_PRESCALE_USVAL zur Auswahl stehen. Es stehen aber Dutzende sonstwelche Möglichkeiten in der Auswahlliste, die damit gar nichts zu tun haben. Das hilft natürlich nicht viel weiter, da ich ja dann alle Parameter der Lib kennen muß, um den richtigen auszuwählen. Wo muß ich bei Eclipse was einstellen, damit nur die möglichen Einträge zur Auswahl angezeigt werden?
Ich hab bisher Eclipse nur mit Java benutzt, aber vielleicht eine Idee. Durch die Deklaration im struct
1 | uint8_t PrescaleOption; |
ist es Eclispe nicht möglich nur auf die von Dir gewünschten enums einzuschränken. Wenn Du zum Test mal den uint8_t durch den enum typedef ersetzt könnte es gehen.
Im selben header steht
1 | typedef enum |
2 | {
|
3 | TIM_PRESCALE_TICKVAL = 0, /*!< Prescale in absolute value */ |
4 | TIM_PRESCALE_USVAL /*!< Prescale in microsecond value */ |
5 | } TIM_PRESCALE_OPT; |
Scheint wohl zum Parametercheck-Makro zu gehören. Die Änderung von
1 | typedef struct |
2 | {
|
3 | |
4 | uint8_t PrescaleOption; /**< Timer Prescale option, should be: |
5 | - TIM_PRESCALE_TICKVAL: Prescale in absolute value
|
6 | - TIM_PRESCALE_USVAL: Prescale in microsecond value
|
7 | */
|
8 | uint8_t Reserved[3]; /**< Reserved */ |
9 | uint32_t PrescaleValue; /**< Prescale value */ |
10 | } TIM_TIMERCFG_Type; |
in
1 | typedef struct |
2 | {
|
3 | |
4 | TIM_PRESCALE_OPT PrescaleOption; /**< Timer Prescale option, should be: |
5 | - TIM_PRESCALE_TICKVAL: Prescale in absolute value
|
6 | - TIM_PRESCALE_USVAL: Prescale in microsecond value
|
7 | */
|
8 | uint8_t Reserved[3]; /**< Reserved */ |
9 | uint32_t PrescaleValue; /**< Prescale value */ |
10 | } TIM_TIMERCFG_Type; |
hat jedenfalls nichts gebracht.
Welche Eclipse Version benutzt du? Ich habe hier für C/C++ 3.6. (ich weiss, nicht aktuell) Aber das schlimmste: Ich kann dein Problem reproduzieren. Ich habe Eclipse häufig für C/C++ eingesetzt, aber ist mir noch nie aufgefallen, entweder hat es mal korrekt funktioniert, oder ich habe einfach immer bereits die Hälfte geschrieben bis die Autocompletion angezeigt wurde. Bei Java ist das ja korrekt umgesetzt, da funktioniert es mit Sicherheit. Wenn es mit der aktuellsten Version auch nicht funktioniert kannst du ja mal ein Bugreport erstellen, aber dann Link hier posten;-) mfg Andreas
>Wo muß ich bei Eclipse was einstellen, damit nur die möglichen Einträge >zur Auswahl angezeigt werden? Meistens fehlt dann ein include irgendeiner Header-Datei. Oder eine Datei wurde bearbeitet aber noch nicht gespeichert. Dann kann man auch noch mal RebuildIndex versuchen.
Es wird nicht zuwenig angzeigt, sondern zuviel. Ich habe alles in einer Datei gehabt, und ich habe gespeichert. Trozdem hats nicht geklappt. Komisch, habe ich noch nie realisiert bis anhin... mfg Andreas
Andreas B. schrieb: > Welche Eclipse Version benutzt du? Ich habe hier für C/C++ 3.6. Also ich benutze Eclipse IDE for C/C++ Developers Version: Indigo Service Release 1 Build id: 20110916-0149 Eclipse Platform Version: 3.7.1.r37x_v20110729 Hoffe, daß das die relvanten Angaben sind (ich schätze 3.7.1 ist das Relevante).
genau, 3.7.1 ist relevant. Und das ist die aktuelle Version. => Bug Report schreiben, oder warten bis jemand noch einen guten Vorschlag bringt. In den Einstellung gibst du bei der Suche mal "content assist" ein, dann erscheinen die relevanten Einstellungen. Jedoch habe ich nichts gefunden das dein Problem löst. mfg Andreas
Ich habs auch mal im CDT probiert. Scheint nicht zu funktionieren und zeigt zuviel an. Auf die schnelle habe ich nur eine ähnliche Frage im Netz gefunden. http://stackoverflow.com/questions/3637814/how-can-the-cdt7-0-content-assist-be-configured-to-support-handling-of-enums-lik
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.