Laden...

Eigene IDE bzw Editor: Wie kann ich in Echtzeit Syntax-Fehler anzeigen?

Erstellt von Davaaron vor 6 Jahren Letzter Beitrag vor 6 Jahren 1.841 Views
D
Davaaron Themenstarter:in
106 Beiträge seit 2016
vor 6 Jahren
Eigene IDE bzw Editor: Wie kann ich in Echtzeit Syntax-Fehler anzeigen?

Hallo,

schon seit Ewigkeiten kribbelt es mir in den Fingern, eine eigene IDE bzw. einen eigenen Editor zu entwickeln. Zwar ist Visual Studio sehr mächtig und ich werde alleine nie so weit kommen, aber ich mag Desktop-Anwendungen und das Programm soll nur just for fun sein, also wieso nicht.. ich brauche ohnehin noch Erfahrungen in WPF.

Den Editor will ich dann, wenn er "fertig" ist, um eine Webanwendung erweitern.

Nur frage ich mich: Wie kriege ich es hin, Sprachen auf Syntax zu prüfen, um Syntax-Fehler anzuzeigen? Kennt da jemand geeignete Methoden für eine performante Echtzeit-Prüfung?

16.807 Beiträge seit 2008
vor 6 Jahren

Erst WPF nehmen und dann ne Webanwendung? Da machst Du ja alles doppelt.
Eigentlich versuchst Du Visual Studio Code nachzubauen, oder?

Die Grundidee von VSCode war Syntax Highlighting im Browser und ist nun der weit verbreiteste Code-Editor, den es gibt.

D
Davaaron Themenstarter:in
106 Beiträge seit 2016
vor 6 Jahren

Jap. Darum geht es, praktische Erfahrungen in WPF und Asp.NET Core MVC zu sammeln. Die Webanwendung werde ich mit Angular und PrimeNG (Web UI Collection) realisieren.
Genau, Visual Studio Code..

Bei so vielen IDEs und Editoren gibt es doch sicherlich eine vernünftige Methode, um Autocompletion und Syntax-Prüfung zu realisieren?

16.807 Beiträge seit 2008
vor 6 Jahren

Mit ASP.NET wirst Du bei sowas nicht weit kommen, da ein Editor Client-seitig ist und ASP.NET eben Serverseitig.
Was Du hier brauchst ist JavaScript.

ASP.NET ist hier nicht die Wahl.

VSCode ist Open Source.
Die Welt steht Dir offen den Quelltext anzuschauen, um die Syntax Highlighting Engine hier zu erlernen.

D
Davaaron Themenstarter:in
106 Beiträge seit 2016
vor 6 Jahren

Nun, ASP NET wollte ich dazu verwenden, um den Editor-Inhalt zu speichern in einer Datenbank (optional).

VSCode ist Open Source

Super danke 😃

6.911 Beiträge seit 2009
vor 6 Jahren

Hallo Davaaron,

Echtzeit Syntax-Fehler anzeigen

Geht grundsätzlich über eine "Live-Compilierung", wobei die lexikalische Analyse dazu reichen sollte. D.h. bei der Eingabe im Editor wird gleich der Code geparst (in einen Syntaxbaum) und analysiert.
Um dies allerdings "flüssig" zu bewerkstelligen ist schon einiges an Programmierkunst nötig.

VS hatte früher seinen eigenen "Compiler" zur Syntaxanalyse und für Intellisense dabei. Neben dem C#-Compiler (csc.exe) gab es somit eine zweite Compiler-Plattform und da dies nicht sehr zielführend und effektiv (aus Entwicklungssicht) ist, war dies auch eine der Motivationen für Roslyn, dem C#-Compiler als Service.
Nun verwendet VS statt dem eigenen Compiler Roslyn um so Doppelgleisigkeiten zu vermeiden -- ein großer Vorteil, v.a. wenn sich die Sprache recht schnell weiterentwickelt.
Zusätzlich gibt es in VS seitdem auch die (mächtige) Möglichkeit von Analyzern um "live code refactoring" zu ermöglichen.

Wenn du das selbst entwickeln willst, so schau dir neben Abts Tipps auch Roslyn an und integriere das in dein System.

Willst du aber nur ganz simples Intellisense, so reicht ein Dictionary-Lookup bei Eingabe eines . 😉

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

Y
102 Beiträge seit 2005
vor 6 Jahren

Sieh dir dazu Omnisharp und das LanguageServerProtocol von Microsoft an.

Omnisharp

LanguageServerProtocol