Forum: PC-Programmierung IDE mit Code Completion, Variable Inspection etc - für externen Complier?


von Andreas K. (andreasmc)


Lesenswert?

Hi,

ich spiele mit dem Gedanken einen eigenen kleinen Compiler zu schreiben 
um ein paar Sachen auszuprobieren.

Dafür könnte ich, wenn ich keine eigene Benutzeroberfläche entwickeln 
will,  als IDE einfach einen Texteditor mit Syntax Highlighting nehmen 
und den Compiler-Aufruf dort irgendwo als Werkzeug hinterlegen.

Nun haben moderne IDEs schon seit Jahren nette Features wie Code 
Completion (nach "Klasse."  werden alle möglichen Members der Klasse 
aufgelistet), Debugging samt Variable Inspection (Maus über Variable bei 
angehaltenem Programm zeigt den aktuellen Wert der Variable). Dafür muss 
natürlich mehr Information fliessen als "Compiliere mal Datei xyz", aber 
dafür haben diese IDEs ja ihren eigenen Compiler/Debugger mit dem sie 
eng verzahnt sind.

Eigentliche Frage:
Gibt es fertige IDEs,  die solche Features auch für "fremde" Compiler 
anbieten und wie werden da die notwendigen Informationen übertragen?
(Bevorzugt FOS für Windows, notfalls geht auch Linux)

danke,
  Andreas

von PittyJ (Gast)


Lesenswert?

Die IDE muss ja erst mal deine Sprache (ich schätze mal Fortran) 
verstehen, um da etwas zu Highlighen etc.
Also müßtest du die IDE mit der Sprachdefinition erweitern können.

Und Klassen bei Fortran? Gibt es die schon?

von J. S. (jojos)


Lesenswert?

Echt noch nichts von Visual Studio Code gehört? Oder Eclipse/Eclipse 
Theia?

von server client (Gast)


Lesenswert?

Diese Sachen werden von LSP (language server protocol) angeboten. Für C 
/ C++ ist es z.B. clangd.

Da kann auch ein Editor eine Abfrage an diesen Server schicken und 
bekommt die gleichen Infos wie eine IDE.

Wenn es den Server für die Sprache schon gibt, dann musst du einen 
Client schreiben (sonst beides). Aber das ist die beste Variante. 
Irgendwelche Eigenschaften direkt in die IDE einbinden geht auch (ist 
aber nicht optimal).

von Andreas K. (andreasmc)


Lesenswert?

> Die IDE muss ja erst mal deine Sprache (ich schätze mal Fortran)
> verstehen, um da etwas zu Highlighen etc.
> Also müßtest du die IDE mit der Sprachdefinition erweitern können.
>
> Und Klassen bei Fortran? Gibt es die schon?

Nein, kein Fortran :-)
Richtung C#/C/Pascal/Java, werde also das Syntax-Highlighting anpassen 
müssen, aber das ist in den mir bekannten Editoren (z.B. Ultraedit) im 
wesentlichen Anpassung eines Config-Files, sollte also kein Problem 
sein.

>Echt noch nichts von Visual Studio Code gehört? Oder Eclipse/Eclipse
>Theia?

>Diese Sachen werden von LSP (language server protocol) angeboten. Für C
>/ C++ ist es z.B. clangd.


Visual Studio Code hatte ich geistig als irgend eine Edition von Visual 
Studio eingeordnet, also für MS Compiler. Nach etwas Lektüre sieht es 
aber aus als könnte das genau das sein was ich suche (Stichwort Language 
Extensions mit eigenem Language Server).
Eclipse hatte ich bisher ausschließlich im Java-Umfeld wahrgenommen, 
scheint aber mit ähnlichen Language Servern zu arbeiten.

Danke, Language Server waren wohl das Stichwort das mir gefehlt hat!

von J. S. (jojos)


Lesenswert?

VSC und seine Extensions laufen in JavaScript und sind einfacher zu 
durchschauen als das alte Java Eclipse. Theia ist die neue Eclipse 
Version und auch in JS, weniger MS lastig aber es dürfen die VS 
Extensions nicht benutzt werden, daher bisher deutlich geringer 
verbreitet.
Man kann einen Compiler in VSC auch ohne Extensions benutzen, es gibt 
die 'Tasks' die man in einer JSON Datei beschreibt und die einfach einen 
Compiler direkt oder per CLI (wenn vorhanden) aufrufen. Der Output wird 
eingefangen und durch einen Parser, der per regex konfiguriert wird, 
gejagt und dann Warnungen und Fehler übrig lassen kann.
https://code.visualstudio.com/docs/editor/tasks

Die Debug Anbindung läuft wohl hauptsächlich über den gdb, das wird die 
meiste Anpassung benötigen. Syntax Hightlighting gibt es für alle 
möglichen Sprachen, sicher auch anpassbar.

: Bearbeitet durch User
von Klaus W. (mfgkw)


Lesenswert?

Emacs

von c-hater (Gast)


Lesenswert?

Klaus W. schrieb:

> Emacs

...ist ein halbwegs brauchbares Betriebssystem, aber ein ziemlich 
lausiger Editor.

von Klaus W. (mfgkw)


Lesenswert?

Danke für den sinnvollen Beitrag, vielleicht gibt es sogar jemanden der 
den Witz noch nicht kennt.

Trotzdem kann man sich den gdb oder ähnliches recht brauchbar 
dranflanschen und sinnvoll damit arbeiten.

von c-hater (Gast)


Lesenswert?

Klaus W. schrieb:

> Trotzdem kann man sich den gdb oder ähnliches recht brauchbar
> dranflanschen und sinnvoll damit arbeiten.

Aber nur unter heftigen Schmerzen. DAS ist sicher nicht, was man unter 
einer ergonomischen Software versteht...

von Klaus W. (mfgkw)


Lesenswert?

Sagt einer, der Assembler für alles toll findet.

von c-hater (Gast)


Lesenswert?

Klaus W. schrieb:
> Sagt einer, der Assembler für alles toll findet.

Ob du es glaubst oder nicht: Man kann auch mittels purem Assemblercode 
ergonomische Anwendungen schreiben. Ist nur eine Frage der Zeit, die man 
zu investieren bereit ist.

Wenn man es kann. Also sowohl Assembler als auch ergonomische 
Anwendungen. Die Emacs-Schöpfer konnten wohl weder das eine noch das 
andere. Naja, so sehr viele brauchbare GUIs gab es damals(tm) ja auch 
noch nicht.

Aber klar: natürlich wird man eine GUI-Anwendung heute sehr 
wahrscheinlich nicht in Assembler schreiben, höchstens kleine Teile 
davon. Allerdings auch nicht in C. Auch hier wieder nur: höchstens 
kleine Teile davon.

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
Noch kein Account? Hier anmelden.