dotnet / dotnet/csharp-tmLanguage
Syntax highlighting breaks when opening bracket of a method is placed in a new line
- Vorherrschende Sprache
- TypeScript
- Sterne
- 78
- Forks
- 43
- Ø Merge
- 34 Min.
- Gemergte PRs (30 T.)
- 1
Beschreibung
_From @zeroskyx on May 17, 2017 18:46_
The following code placed in a class breaks syntax highlighting:
public void Routine
(
IInterface Interface0,
IInterface Interface1,
IInterface Interface2
)
{
string One = "";
string Two = "";
string Three = "";
}
interface IInterface
{
}
Beginning with the second instance of IInterface and after the method body, everything is white -- in more complex projects, somewhere it works again later in the file.
Screenshot:

Removing the newline after public void Routine does not cause the issue:

I am aware that this appears to be a "strange" coding style; it makes reading constructors with loads of dependency injections much cleaner though (issue happens with both methods and constructors).
_Copied from original issue: OmniSharp/omnisharp-vscode#1489_
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Rechercherichtung
Beginne damit, den gemeldeten Fehler bei der Hervorhebung anhand des C#-Beispiels zu reproduzieren, und vergleiche ihn mit der Version, in der die öffnende Klammer in der Deklarationszeile bleibt. Untersuche anschließend, wie die Syntaxgrammatik Method- und Konstruktor-Deklarationen über diesen Zeilenumbruch hinweg behandelt; abgeschlossen ist die Aufgabe, wenn die verbleibenden Parameter, der Methodenrumpf und das folgende Interface korrekt hervorgehoben werden.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- csharp
- Bereich
- tooling
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100