Հեշտությամբ տեսակավորեք ձեր տեգերի ներմուծումը

TL;DR

Dart Import Sorter ընդլայնումը կատարում է մեկ հիմնական բան. այն փոխակերպում է ձեր ներմուծումները խառնաշփոթից մի կոկիկ և հետևողական բանի:

Ներածություն

Մեծ մասամբ IDE-ները հոգ են տանում ձեր ներմուծման կազմակերպումը ձեզ համար: Ես IntelliJ-ի մոլի օգտատեր չեմ, բայց հաճախ գնահատում էի այն, թե ինչպես է այն պարզապես պահում ներմուծումը տեսադաշտից և մտքից հեռու:

Ես ուզում էի նույն ֆունկցիոնալությունը VS Code-ում, բայց ես չկարողացա գտնել որևէ ընդլայնում շուկայում, որպեսզի հասնեմ իմ ուզած պահվածքին: Այսպիսով, ինչպես ցանկացած չափազանց հավակնոտ ծրագրավորող, ես որոշեցի գրել իմը:

Նկարագրություն

Dart Import Sorter ընդլայնումը կատարում է մեկ հիմնական բան. այն փոխակերպում է ձեր ներմուծումները խառնաշփոթից մի կոկիկ և հետևողական բանի:

Ստեղծեք ձեր սեփական կազմաձևը

Դուք կարող եք կամ գնալ լռելյայն կազմաձևով, կամ կարող եք այն հարմարեցնել ձեր կարիքներին համապատասխան: Ընդլայնումը կարող է կազմաձևվել՝ օգտագործելով կանոնավոր արտահայտություններ, այնպես որ sky-ի սահմանը:

Ահա մի օրինակ կոնֆիգուրացիա.

Համաձայն վերը նշված օրինակի, ընդլայնումը կփնտրի Flutter կանոնին համապատասխանող ներմուծումներ, այնուհետև Dart, ապա Ամեն ինչ: Այս պիտակները իրականում չեն օգտագործվում տեսակավորման գործընթացում: Նրանք պարզապես այստեղ են, որպեսզի օգնեն ձեզ հետևել, թե ինչ է անում յուրաքանչյուր կանոն:

Ահա այս կանոնների ցուցադրությունը: Հետևյալը խառնաշփոթ ներկրումների մի խումբ է.

Վերոնշյալ կոդը տեսակավորվելուց հետո դառնում է հետևյալը.

Դուք կնկատեք նոր գծեր յուրաքանչյուր խմբի միջև, և որ խմբերի ներսում ներմուծումները դասավորված են այբբենական կարգով:

Դուք կարող եք անջատել խմբերի միջև նոր գծերի առկայությունը՝ սահմանելով հետևյալ կանոնը.

"dartimportsorter.leaveEmptyLinesBetweenGroups": false

Ինչպես օգտագործել

Դուք կարող եք գործարկել ընդլայնումը` օգտագործելով Ctrl + Alt + O դյուրանցումը, կամ կարող եք օգտագործել հրամանի պալիտրա Ctrl + Shift + P -> Dart: Sort Imports:

Վերջապես, դուք կարող եք սահմանել ընդլայնումը, որպեսզի տեսակավորի ձեր ներմուծումները, երբ պահպանեք ձեր ֆայլը: Դա անելու համար սահմանեք հետևյալ կանոնը.

"dartimportsorter.sortOnSave": true

Ինչու՞ տեսակավորել ձեր ներմուծումները:

Երբ ես առաջին անգամ սկսեցի գրել այս ընդլայնումը, դա իսկապես այն պատճառով էր, որ ինձ պարզապես դուր եկավ տեսնել իմ ներմուծումները խմբավորված և կազմակերպված: Բայց հետո ես գտա մի քանի (տեսակի) համոզիչ պատճառներ.

  1. Ձեր ներմուծումները ավելի կոմպակտ են ձեր ֆայլի սկզբում: Դուք գիտեք, թե որ մասը պետք է անմիջապես բաց թողնել՝ իրական ծածկագրին հասնելու համար: Դուք կարող եք նաև փլուզել ամբողջ բլոկը՝ այն հեշտացնելու համար:
  2. Դուք կարող եք ավելի արագ պարզել և ուղղել սխալ ներմուծումները, եթե այդպիսի անհրաժեշտություն առաջանա:

Ընդլայնման մասին

Նշում. Այս մասում իրականում խոսվում է ոչ թե ընդլայնման ֆունկցիոնալության, այլ զարգացման գործընթացի մասին:

Ես օգտագործել եմ այս ընդլայնման մշակման գործընթացը որպես մի փոքր խաղահրապարակ՝ փորձելու ծրագրավորման/ճարտարապետության մի քանի տեխնիկա, որոնց մասին ես կարդում էի: Հիմնականում մաքուր ճարտարապետություն (հորեղբայր Բոբի կողմից): Ես իրականում չեմ կիրառել այն այստեղ, բայց դա ինձ ոգեշնչեց կիրառել SOLID սկզբունքները (կամ գոնե մի լավ փորձել):

Ինձ հաջողվեց իրականացնել հսկողության ինվերսիա՝ TSyringe-ի միջոցով կախվածություն ներարկելով: Սա ինձ թույլ տվեց տարանջատել իրերը միմյանցից և պատշաճ կերպով կատարել միավորի թեստեր՝ առանց ընդդեմ կոդի ընդլայնման API-ի ներգրավման:

Ես ամենափորձառու մարդը չեմ, երբ խոսքը վերաբերում է թեստեր գրելուն, բայց պետք է խոստովանեմ, որ թեստերը լրջորեն մեծացրել են իմ վստահությունը իմ կոդի մեջ իմ ներդրած փոփոխությունների նկատմամբ, անկախ նրանից, թե դա հնարավորություններ է ավելացնում, թե վերամշակում: Այն ամենը, ինչ ես պետք է անեմ, որպեսզի համոզվեմ, որ ամեն ինչ լավ է, պարզապես գրել է մի փոքրիկ հրաման bash-ով, և եթե այն վառվում է կանաչ, ապա ես պատրաստ եմ գնալ:

Եթե ​​դուք հետաքրքրված եք ներդրում ունենալով կամ ցանկանում եք որևէ հատկանիշ խնդրել, ահա հղումը դեպի ռեպո:

Նաև, ահա հղում դեպի ընդլայնում VS Code շուկայում

Ուրախ կոդավորում: