Prettier för Ruby når v1.0 🎉
Denna sida har översatts av PageTurner AI (beta). Inte officiellt godkänd av projektet. Hittade du ett fel? Rapportera problem →
Efter 1500 commits och 50 releaser sedan juli 2018 är vi glada att meddela att vi precis släppt v1.0 av Prettier för Ruby. I det här blogginlägget ger vi en kort översikt över hur pluginet fungerar, dess filosofi och vad ni kan förvänta er i framtiden.
Hur fungerar det?
Prettier för Ruby fungerar via Prettiers plugin-API. Dess parse-funktion startar en Ruby-process och använder Rubys egen parser (känd som Ripper). Efter att ha samlat in alla olika nodtyper, kommentarer, positionsinformation och annan metadata returnerar den ett abstrakt syntaxträd (AST) till Prettier-processen. Slutligen konverterar den AST:n till Prettiers mellanrepresentation (känd som Doc) innan Prettier skriver ut resultatet.
Filosofi
Ruby-pluginet försöker hantera så många kodvarianter som möjligt. Om du till exempel väljer att anropa en metod med eller utan parenteser kommer pluginet att respektera ditt val. Men för några områden där Ruby-gemenskapen har starka åsikter finns alternativ:
-
rubyArrayLiteral- Som standard konverterar pluginet arrayer med enkla strängar och symboler till motsvarande array-literal-syntax (%wrespektive%i). Om du inaktiverar detta alternativ lämnas de orörda. -
rubyHashLabel- Det här alternativet är för hash rocket-entusiaster. Som standard skriver pluginet ut hashnycklar konsekvent, dvs. använder etiketter där möjligt och hash rockets för alla nycklar annars. Om du inaktiverar standardbeteendet används alltid hash rockets. -
rubyModifier- För användare som ogillar modifierarformer somif,unless,whileochuntil. -
rubySingleQuote- Standardbeteendet använder enkla citattecken där det passar och dubbla annars. Med detta alternativ kan du vända på beteendet. -
rubyToProc- Möjliggör konvertering av uttryck somarray.map { |elem| elem.to_s }tillarray.map(&:to_s). Inaktiverat som standard eftersom det tekniskt ändrar blockets aritet och kan bryta reflektion.
Pluginet stöder även flera centrala Prettier-alternativ:
-
printWidth- Standard 80 tecken, men du kan öka längden om du föredrar det. -
tabWidth- Standard 2 tecken. -
trailingComma- Standard"none", men du kan välja"all"för att lägga till avslutande komman i flerradiga arrayer, hashar och argumentlistor.
Prettiers stil överensstämmer generellt med Ruby style guide, dvs. standardkonfigurationen för Rubocop. När du använder Prettier kan du dessutom stänga av Rubocops Formatting/*-regler för snabbare linter-körningar.
Vad händer nu?
Våra framtidsplaner inkluderar:
-
Stöd för ny syntax i Ruby 3, inklusive högerledstilldelning och utökad pattern matching.
-
Bättre prestanda, som i dessa experiment.
-
Stöd för Ruby i Prettiers playground.
-
Stöd för HTML ERB-mallar via separat plugin, som i detta experiment.
Idag kan du testa plugin:et direkt från kommandoraden genom att följa instruktionerna i README:n. Rapportera gärna alla buggar du hittar – vi jobbar aktivt med att åtgärda dem så fort de uppstår. Du är också välkommen att börja bidra till projektet själv om du är intresserad.
