2017-04-26 4 views
0

Ich verwende MonoDevelop-Unity 5.9.6.MonoDevelop "else if" unterbrochene Einrückung

Ich habe eine benutzerdefinierte Richtlinie erstellt, die meist funktioniert.

Es gibt ein Problem, das trotz mehrerer Versuche ich nicht beheben konnte.

"else if" Klauseln haben eine völlig gebrochene Einbuchtung, wie hier gezeigt:

broken else if indentation

 if (Input.GetButton("Left")) 
     { 
      _nextDir = Direction.Left; 
     } 
     else if (Input.GetButton("Right")) 
      { 
       _nextDir = Direction.Right; 
      } 
      else if (Input.GetButton("Up")) 
       { 
        _nextDir = Direction.Up; 
       } 
       else if (Input.GetButton("Down")) 
        { 
         _nextDir = Direction.Down; 
        } 
     else 
     { 
         ; 
     } 

     return false; 

Was es verursacht sein könnte?

Ich glaube nicht, dass jemand jemals auf diese Weise einrücken möchte, also nehme ich an, es ist entweder ein Fehler oder einige Einstellungen, die nicht gut zusammenpassen, und wenn es Letzteres ist, hoffe ich, dass jemand darauf zeigen kann ich in die richtige Richtung.

+7

Sorry, Sie zu enttäuschen, aber monodevelop nur saugt. Ich habe es nie geschafft, dass es einem konsistenten Satz von Formatierungsregeln folgt – Dunno

+0

Zitieren @Dunno. Verwenden Sie Visual Studio, dann Strg k + d und voilà Auto-Einrückung –

+0

Monodevelop ist ass. Unity verwendet leicht eine angepasste Version, aber das Hauptproblem ist, dass MD Probleme hat. Zurück in den Unity 3.5 Tagen, als ich das erste Mal anfing, fand ich, dass das Einfügen von etwas dazu führen würde, dass der Charakter unmittelbar rechts von meinem Cursor dupliziert würde. Aber nur in .js Dateien und nur unter Windows (die Mac Version war in Ordnung). Habe es als Fehler bei MD gemeldet und sie sind wie "wir benutzen kein JS, also reparieren wir es nicht, auch das ist ein Zweig einer wirklich alten Version von MD. Beschweren Sie sich bei Unity." Nahm bis Unity 4.5, bevor sie auf eine neue Version von MD aktualisiert wurden. TLDR: Verwenden Sie VS. – Draco18s

Antwort

0

Ich denke, MonoDevelop sieht die else if-Anweisung als if-Anweisung in eine else-Anweisung eingebettet. Wenn Sie also die Option Align Embedded Statements in Ihrer Richtlinie deaktiviert haben, erhalten Sie einige seltsame Einrückungen. Schalten Sie es einfach wieder ein und Sie werden Ihren Code so formatieren, wie Sie möchten.

+0

Könnte die Antwort gewesen sein ... aber leider ist es schon auf :(Deaktivierung scheint keine Wirkung zu haben, also denke ich, es ignoriert es einfach? –