Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Eigene IDE bzw Editor: Wie kann ich in Echtzeit Syntax-Fehler anzeigen?
Davaaron
myCSharp.de - Member



Dabei seit:
Beiträge: 107

Themenstarter:

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

beantworten | zitieren | melden

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?
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15690
Herkunft: BW

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
Davaaron
myCSharp.de - Member



Dabei seit:
Beiträge: 107

Themenstarter:

beantworten | zitieren | melden

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?
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15690
Herkunft: BW

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
Davaaron
myCSharp.de - Member



Dabei seit:
Beiträge: 107

Themenstarter:

beantworten | zitieren | melden

Nun, ASP NET wollte ich dazu verwenden, um den Editor-Inhalt zu speichern in einer Datenbank (optional).
Zitat
VSCode ist Open Source
Super danke :)
private Nachricht | Beiträge des Benutzers
gfoidl
myCSharp.de - Team

Avatar #avatar-2894.jpg


Dabei seit:
Beiträge: 7537
Herkunft: Waidring

beantworten | zitieren | melden

Hallo Davaaron,
Zitat
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!"
private Nachricht | Beiträge des Benutzers
Yeats
myCSharp.de - Member



Dabei seit:
Beiträge: 97
Herkunft: Österreich

beantworten | zitieren | melden

Sieh dir dazu Omnisharp und das LanguageServerProtocol von Microsoft an.

Omnisharp

LanguageServerProtocol
private Nachricht | Beiträge des Benutzers