Merge pull request #297 from JetBrains/next

pull/314/head v1.3.0
Jakub Chrzanowski 2 years ago committed by GitHub
commit 61a1a04ede
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -0,0 +1,52 @@
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="2024" height="305" viewBox="0 0 745.71429 112.5">
<defs>
<linearGradient id="linear-gradient" x1="21.98732" y1="-879.27899" x2="91.77826" y2="-949.06994" gradientTransform="matrix(1, 0, 0, -1, 0, -853.5)" gradientUnits="userSpaceOnUse">
<stop offset="0.15937" stop-color="#3bea62"/>
<stop offset="0.5404" stop-color="#3c99cc"/>
<stop offset="0.93739" stop-color="#6b57ff"/>
</linearGradient>
</defs>
<g>
<g fill="#fff">
<g>
<path d="M112.7808,40.71086l1.61129-1.40324c1.21437,1.86213,2.45824,2.864,4.5225,2.864,2.23248,0,3.8718-1.63342,3.8718-4.81172V23.93107h2.262V37.33336a7.2901,7.2901,0,0,1-1.809,5.26766,6.02144,6.02144,0,0,1-4.35283,1.66145A6.76237,6.76237,0,0,1,112.7808,40.71086Z"/>
<path d="M128.35213,36.61625v-.05607c0-4.26724,2.9688-7.70377,7.01027-7.70377,4.32479,0,6.81254,3.49259,6.81254,7.81739a5.86042,5.86042,0,0,1-.028.71564H130.55805a5.13042,5.13042,0,0,0,5.14371,5.01091,6.01592,6.01592,0,0,0,4.60808-2.08936l1.356,1.2306a7.50169,7.50169,0,0,1-6.02019,2.777C131.63224,44.31854,128.35213,41.19779,128.35213,36.61625Zm11.61836-.85877c-.22723-2.69137-1.75293-5.04042-4.66416-5.04042-2.54383,0-4.46645,2.14838-4.74828,5.04042Z"/>
<path d="M146.04527,40.05277V31.1184H144.009V29.1707h2.03625V24.70425h2.17642V29.1707h4.63465v1.9477h-4.63465v8.64812a2.17465,2.17465,0,0,0,2.45824,2.46267,4.53615,4.53615,0,0,0,2.12035-.51644v1.89016a5.4128,5.4128,0,0,1-2.62941.63C147.82624,44.233,146.04527,43.05844,146.04527,40.05277Z"/>
<path d="M156.35926,23.93107h8.42384a7.21772,7.21772,0,0,1,5.17323,1.77509,4.48482,4.48482,0,0,1,1.27191,3.20781V28.97a4.8351,4.8351,0,0,1-3.13846,4.63909c2.34611.71711,4.24068,2.09083,4.24068,4.83975v.05755c0,3.43652-2.85515,5.46981-7.17995,5.46981h-8.79125Zm12.607,5.29865c0-1.97722-1.55374-3.26536-4.38087-3.26536h-6.02018v6.90107h5.85051c2.68547,0,4.55054-1.2306,4.55054-3.57965Zm-4.1551,5.63949h-6.24595v7.07372h6.64139c2.99681,0,4.86189-1.34569,4.86189-3.57965v-.05754C170.06846,36.12932,168.25945,34.86921,164.81113,34.86921Z"/>
<path d="M175.69173,29.1707h2.1764v3.8659a6.26083,6.26083,0,0,1,5.9641-4.12264v2.37561H183.664c-3.19453,0-5.7959,2.31954-5.7959,6.78746v5.89919h-2.17642Z"/>
<path d="M184.62166,39.67946v-.05607c0-3.12223,2.54383-4.78221,6.24742-4.78221a15.34686,15.34686,0,0,1,4.49448.63007v-.51646c0-2.66186-1.61129-4.03706-4.35283-4.03706a10.05314,10.05314,0,0,0-4.43842,1.08894l-.64923-1.80457a11.92286,11.92286,0,0,1,5.3134-1.23208,6.36624,6.36624,0,0,1,4.72023,1.63342,5.88893,5.88893,0,0,1,1.49767,4.32332v9.04946h-2.09082v-2.234a6.378,6.378,0,0,1-5.28684,2.54825C187.36469,44.29051,184.62166,42.71611,184.62166,39.67946Zm10.76995-1.145V37.10318a15.03578,15.03578,0,0,0-4.29676-.63006c-2.74154,0-4.26724,1.20255-4.26724,3.06469v.05607c0,1.86212,1.69539,2.94959,3.67408,2.94959C193.18715,42.54348,195.39161,40.8835,195.39161,38.53446Z"/>
<path d="M201.43834,23.50169h2.48775v2.43463h-2.48775Zm.14165,5.669h2.17641V43.97622H201.58Z"/>
<path d="M208.10629,29.1707h2.17642v2.57776a5.52394,5.52394,0,0,1,5.00354-2.89205c3.53392,0,5.5967,2.40512,5.5967,5.92722v9.19258h-2.17642V35.3281c0-2.74892-1.46965-4.46644-4.0415-4.46644a4.33064,4.33064,0,0,0-4.38234,4.63908v8.47548h-2.17643Z"/>
<path d="M223.595,42.08458l1.10223-1.57291a8.48365,8.48365,0,0,0,5.05962,1.88868c1.75147,0,3.02485-.91631,3.02485-2.34758v-.05754c0-1.48882-1.7249-2.06132-3.64753-2.60579-2.28857-.65809-4.83237-1.46078-4.83237-4.18167V33.1517c0-2.54825,2.09084-4.23774,4.974-4.23774a9.88682,9.88682,0,0,1,5.25732,1.63194l-.9886,1.66146a8.188,8.188,0,0,0-4.32478-1.43277c-1.72491,0-2.82714.91631-2.82714,2.1469v.059c0,1.40175,1.809,1.94625,3.75965,2.54677,2.26051.6876,4.69219,1.57587,4.69219,4.23921V39.824c0,2.80648-2.29,4.43841-5.20126,4.43841A9.96351,9.96351,0,0,1,223.595,42.08458Z"/>
</g>
<g>
<path d="M115.968,52.15661h3.9692V87.79078H115.968Z"/>
<path d="M124.30768,81.986l2.864-2.49366c2.16019,3.30815,4.37053,5.0906,8.03872,5.0906,3.96772,0,6.8819-2.90089,6.8819-8.5522V52.15661h4.01936v23.824c0,4.17281-1.20551,7.33046-3.2152,9.3667a10.71062,10.71062,0,0,1-7.73622,2.95106A12.0199,12.0199,0,0,1,124.30768,81.986Z"/>
<path d="M165.55775,52.15661H178.7195c7.9369,0,13.16177,4.2761,13.16177,11.29964v.10329c0,7.68606-6.33,11.65672-13.81544,11.65672h-8.54039V87.79077h-3.96772ZM178.21636,71.551c5.82837,0,9.64558-3.15617,9.64558-7.83952v-.10181c0-5.0906-3.767-7.73771-9.44342-7.73771h-8.89308V71.551Z"/>
<path d="M196.3079,50.62793h3.86886V87.79076H196.3079Z"/>
<path d="M204.69779,80.15339v-.10033c0-5.54949,4.521-8.502,11.10342-8.502a27.211,27.211,0,0,1,7.98706,1.11994v-.91631c0-4.73352-2.864-7.177-7.73624-7.177a17.9221,17.9221,0,0,0-7.88821,1.93295l-1.15535-3.20634a21.22123,21.22123,0,0,1,9.4449-2.18822c3.66819,0,6.48056.96648,8.3899,2.90089,1.75885,1.78245,2.66186,4.32627,2.66186,7.68755V87.79076h-3.71689V83.81862A11.32989,11.32989,0,0,1,214.39351,88.35C209.57149,88.35,204.69779,85.5509,204.69779,80.15339Zm19.14065-2.03624V75.57333a26.73167,26.73167,0,0,0-7.63589-1.12139c-4.87369,0-7.58572,2.13951-7.58572,5.44768v.1018c0,3.30963,3.01453,5.24259,6.53071,5.24259,4.77187,0,8.6909-2.95109,8.6909-7.12686Z"/>
<path d="M234.3413,80.81591V64.93325h-3.61654V61.47164h3.61654V53.53031h3.86885v7.94133h8.2394v3.46161h-8.2394V80.30686c0,3.20781,1.75884,4.37791,4.37055,4.37791a8.05285,8.05285,0,0,0,3.767-.91631v3.35979a9.6214,9.6214,0,0,1-4.67157,1.11993C237.50632,88.24818,234.3413,86.16177,234.3413,80.81591Z"/>
<path d="M252.22922,64.93325h-3.56636v-3.41h3.56636V59.23178c0-3.00271.80416-5.29422,2.26051-6.77123a7.59978,7.59978,0,0,1,5.57753-2.03625,11.59177,11.59177,0,0,1,4.2702.66252v3.40995a12.78069,12.78069,0,0,0-3.76851-.661c-3.01452,0-4.521,1.83261-4.521,5.59965v2.138h8.23938v3.35979h-8.1892V87.79075h-3.86886Z"/>
<path d="M264.59124,74.75884v-.10329a13.53974,13.53974,0,1,1,27.07755-.10033v.10034A13.57821,13.57821,0,0,1,278.054,88.40164,13.39652,13.39652,0,0,1,264.59124,74.75884Zm23.10837,0v-.10329c0-5.64982-4.16987-10.28153-9.64558-10.28153-5.6262,0-9.495,4.63171-9.495,10.1812v.10033c0,5.6513,4.1197,10.23284,9.5954,10.23284C283.78058,84.88838,287.69961,80.30685,287.69961,74.75884Z"/>
<path d="M296.1441,61.47164H300.013v6.87157c1.90787-4.37644,5.67637-7.53409,10.60023-7.33047v4.22594h-.30249c-5.67637,0-10.29777,4.12264-10.29777,12.064V87.79075h-3.86885Z"/>
<path d="M313.98036,61.47164h3.86885v4.42808c1.7072-2.59547,4.01788-4.98731,8.38843-4.98731a8.81582,8.81582,0,0,1,8.33973,5.24257,10.32787,10.32787,0,0,1,9.14388-5.24257c5.9774,0,9.64558,4.07247,9.64558,10.58844v16.2899H349.498V72.41568c0-5.0906-2.51136-7.94133-6.73138-7.94133-3.919,0-7.18438,2.954-7.18438,8.145V87.79076H331.765V72.31535c0-4.93862-2.563-7.841-6.6827-7.841-4.11823,0-7.23307,3.46161-7.23307,8.29841v15.018h-3.86886Z"/>
<path d="M372.31491,52.15661h13.16177c7.93544,0,13.16177,4.2761,13.16177,11.29964v.10329c0,7.68606-6.33,11.65672-13.8169,11.65672h-8.5404V87.79077h-3.96624ZM384.97205,71.551c5.82837,0,9.647-3.15617,9.647-7.83952v-.10181c0-5.0906-3.76851-7.73771-9.44344-7.73771h-8.89451V71.551Z"/>
<path d="M403.06211,50.62793H406.931V87.79076h-3.86886Z"/>
<path d="M413.0131,77.81319V61.47164H416.879V76.84525c0,4.887,2.61464,7.94133,7.18584,7.94133,4.42072,0,7.78494-3.30816,7.78494-8.24677V61.47164h3.81868V87.79077H431.8498v-4.583A9.87131,9.87131,0,0,1,422.95823,88.35C416.67837,88.35,413.0131,84.07389,413.0131,77.81319Z"/>
<path d="M441.55,92.37083l1.75885-3.05438a16.446,16.446,0,0,0,9.99824,3.36127c5.72506,0,9.44344-3.20782,9.44344-9.3667V80.205c-2.26054,3.05438-5.427,5.54949-10.1989,5.54949A12.08515,12.08515,0,0,1,440.346,73.43379v-.10034a12.26417,12.26417,0,0,1,22.35433-7.12683v-4.735h3.86886V83.20775c0,4.0725-1.207,7.17848-3.317,9.31652-2.31066,2.34168-5.77523,3.51178-9.89495,3.51178A20.18232,20.18232,0,0,1,441.55,92.37083Zm21.30083-18.98719v-.10182c0-5.396-4.62137-8.9078-9.54379-8.9078a8.64347,8.64347,0,0,0-8.99486,8.85616v.10328a8.84778,8.84778,0,0,0,8.99486,8.95946C458.22945,82.29292,462.85082,78.67785,462.85082,73.38364Z"/>
<path d="M472.80183,51.39226h4.42072v4.32627h-4.42072Zm.25082,10.07938h3.86886V87.79076h-3.86886Z"/>
<path d="M483.40207,61.47164h3.86885v4.58153a9.81531,9.81531,0,0,1,8.89157-5.14076c6.27986,0,9.94807,4.2761,9.94807,10.53679V87.79075h-3.86885V72.41568c0-4.887-2.61171-7.94133-7.1829-7.94133-4.4709,0-7.78789,3.30963-7.78789,8.24826V87.79078h-3.86885Z"/>
<path d="M534.19883,55.872H522.34144V52.15661h27.681V55.872H538.168V87.79078h-3.9692Z"/>
<path d="M546.31,74.70719v-.10181c0-7.58425,5.27358-13.693,12.45648-13.693,7.68754,0,12.10826,6.209,12.10826,13.89659a10.352,10.352,0,0,1-.05017,1.2719H550.22611c.55481,5.70147,4.521,8.90929,9.14539,8.90929a10.68587,10.68587,0,0,0,8.18628-3.7154l2.414,2.18822a13.3417,13.3417,0,0,1-10.70058,4.93861C552.13543,88.40163,546.31,82.85215,546.31,74.70719ZM566.95574,73.18c-.40134-4.78516-3.1134-8.95945-8.28958-8.95945-4.521,0-7.93541,3.81868-8.44005,8.95945Z"/>
<path d="M575.15085,61.47164h3.86886v4.42808c1.70573-2.59547,4.01639-4.98731,8.38693-4.98731a8.81427,8.81427,0,0,1,8.33971,5.24257,10.33034,10.33034,0,0,1,9.14538-5.24257c5.97592,0,9.64408,4.07247,9.64408,10.58844v16.2899H610.667V72.41568c0-5.0906-2.51136-7.94133-6.73139-7.94133-3.919,0-7.1829,2.954-7.1829,8.145V87.79076H592.934V72.31535c0-4.93862-2.56153-7.841-6.68121-7.841s-7.23307,3.46161-7.23307,8.29841v15.018h-3.86886Z"/>
<path d="M620.26974,61.47164h3.86886v5.29422c2.11-3.15617,5.17323-5.85345,9.94513-5.85345,6.22969,0,12.40925,4.98731,12.40925,13.64281v.10033c0,8.60384-6.12939,13.69447-12.40925,13.69447a11.68492,11.68492,0,0,1-9.94513-5.59966V95.93574h-3.86886Zm22.254,13.23555v-.10181c0-6.21053-4.22-10.1812-9.14244-10.1812-4.82207,0-9.39326,4.12265-9.39326,10.131v.10034c0,6.10871,4.57119,10.18119,9.39326,10.18119C638.4041,84.83674,642.52378,81.07117,642.52378,74.70719Z"/>
<path d="M651.46846,50.62793h3.86886V87.79076h-3.86886Z"/>
<path d="M659.86133,80.15339v-.10033c0-5.54949,4.521-8.502,11.10193-8.502a27.21427,27.21427,0,0,1,7.98853,1.11994v-.91631c0-4.73352-2.86547-7.177-7.73771-7.177a17.93248,17.93248,0,0,0-7.88823,1.93295L662.172,63.30425a21.2147,21.2147,0,0,1,9.44344-2.18822c3.66815,0,6.48056.96648,8.38987,2.90089,1.75884,1.78245,2.66188,4.32627,2.66188,7.68755V87.79076h-3.71539V83.81862a11.33082,11.33082,0,0,1-9.3962,4.53137C664.73352,88.35,659.86133,85.5509,659.86133,80.15339ZM679.002,78.11715V75.57333a26.7344,26.7344,0,0,0-7.63737-1.12139c-4.87224,0-7.58424,2.13951-7.58424,5.44768v.1018c0,3.30963,3.01305,5.24259,6.53073,5.24259,4.77185,0,8.69088-2.95109,8.69088-7.12686Z"/>
<path d="M689.5048,80.81591V64.93325h-3.618V61.47164h3.618V53.53031h3.86885v7.94133h8.23945v3.46161h-8.23945V80.30686c0,3.20781,1.75885,4.37791,4.37055,4.37791a8.0669,8.0669,0,0,0,3.76851-.91631v3.35979a9.63752,9.63752,0,0,1-4.67449,1.11993C692.66837,88.24818,689.5048,86.16177,689.5048,80.81591Z"/>
<path d="M703.57554,74.70719v-.10181c0-7.58425,5.27358-13.693,12.45648-13.693,7.68754,0,12.10826,6.209,12.10826,13.89659a10.36192,10.36192,0,0,1-.05017,1.2719H707.49162c.55481,5.70147,4.521,8.90929,9.14539,8.90929a10.68594,10.68594,0,0,0,8.18628-3.7154l2.414,2.18822a13.3417,13.3417,0,0,1-10.70058,4.93861C709.40094,88.40163,703.57554,82.85215,703.57554,74.70719ZM724.2212,73.18c-.40134-4.78516-3.1134-8.95945-8.28957-8.95945-4.521,0-7.93542,3.81868-8.44006,8.95945Z"/>
</g>
</g>
<path d="M80.37373,31.871V23.97684H64.21736v7.993H48.20705v-7.993H31.95183V31.871H24.10714V88.08737H48.15763V80.0826a8.00515,8.00515,0,0,1,16.0103,0v8.00477H88.21842V31.871Z" fill="url(#linear-gradient)"/>
<rect width="745.71429" height="112.5" fill="none"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 12 KiB

@ -0,0 +1,52 @@
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="2024" height="305" viewBox="0 0 745.71429 112.5">
<defs>
<linearGradient id="linear-gradient" x1="21.98732" y1="-879.27899" x2="91.77826" y2="-949.06994" gradientTransform="matrix(1, 0, 0, -1, 0, -853.5)" gradientUnits="userSpaceOnUse">
<stop offset="0.15937" stop-color="#3bea62"/>
<stop offset="0.5404" stop-color="#3c99cc"/>
<stop offset="0.93739" stop-color="#6b57ff"/>
</linearGradient>
</defs>
<g>
<g>
<g>
<path d="M112.7808,40.71086l1.61129-1.40324c1.21437,1.86213,2.45824,2.864,4.5225,2.864,2.23248,0,3.8718-1.63342,3.8718-4.81172V23.93107h2.262V37.33336a7.2901,7.2901,0,0,1-1.809,5.26766,6.02144,6.02144,0,0,1-4.35283,1.66145A6.76237,6.76237,0,0,1,112.7808,40.71086Z"/>
<path d="M128.35213,36.61625v-.05607c0-4.26724,2.9688-7.70377,7.01027-7.70377,4.32479,0,6.81254,3.49259,6.81254,7.81739a5.86042,5.86042,0,0,1-.028.71564H130.55805a5.13042,5.13042,0,0,0,5.14371,5.01091,6.01592,6.01592,0,0,0,4.60808-2.08936l1.356,1.2306a7.50169,7.50169,0,0,1-6.02019,2.777C131.63224,44.31854,128.35213,41.19779,128.35213,36.61625Zm11.61836-.85877c-.22723-2.69137-1.75293-5.04042-4.66416-5.04042-2.54383,0-4.46645,2.14838-4.74828,5.04042Z"/>
<path d="M146.04527,40.05277V31.1184H144.009V29.1707h2.03625V24.70425h2.17642V29.1707h4.63465v1.9477h-4.63465v8.64812a2.17465,2.17465,0,0,0,2.45824,2.46267,4.53615,4.53615,0,0,0,2.12035-.51644v1.89016a5.4128,5.4128,0,0,1-2.62941.63C147.82624,44.233,146.04527,43.05844,146.04527,40.05277Z"/>
<path d="M156.35926,23.93107h8.42384a7.21772,7.21772,0,0,1,5.17323,1.77509,4.48482,4.48482,0,0,1,1.27191,3.20781V28.97a4.8351,4.8351,0,0,1-3.13846,4.63909c2.34611.71711,4.24068,2.09083,4.24068,4.83975v.05755c0,3.43652-2.85515,5.46981-7.17995,5.46981h-8.79125Zm12.607,5.29865c0-1.97722-1.55374-3.26536-4.38087-3.26536h-6.02018v6.90107h5.85051c2.68547,0,4.55054-1.2306,4.55054-3.57965Zm-4.1551,5.63949h-6.24595v7.07372h6.64139c2.99681,0,4.86189-1.34569,4.86189-3.57965v-.05754C170.06846,36.12932,168.25945,34.86921,164.81113,34.86921Z"/>
<path d="M175.69173,29.1707h2.1764v3.8659a6.26083,6.26083,0,0,1,5.9641-4.12264v2.37561H183.664c-3.19453,0-5.7959,2.31954-5.7959,6.78746v5.89919h-2.17642Z"/>
<path d="M184.62166,39.67946v-.05607c0-3.12223,2.54383-4.78221,6.24742-4.78221a15.34686,15.34686,0,0,1,4.49448.63007v-.51646c0-2.66186-1.61129-4.03706-4.35283-4.03706a10.05314,10.05314,0,0,0-4.43842,1.08894l-.64923-1.80457a11.92286,11.92286,0,0,1,5.3134-1.23208,6.36624,6.36624,0,0,1,4.72023,1.63342,5.88893,5.88893,0,0,1,1.49767,4.32332v9.04946h-2.09082v-2.234a6.378,6.378,0,0,1-5.28684,2.54825C187.36469,44.29051,184.62166,42.71611,184.62166,39.67946Zm10.76995-1.145V37.10318a15.03578,15.03578,0,0,0-4.29676-.63006c-2.74154,0-4.26724,1.20255-4.26724,3.06469v.05607c0,1.86212,1.69539,2.94959,3.67408,2.94959C193.18715,42.54348,195.39161,40.8835,195.39161,38.53446Z"/>
<path d="M201.43834,23.50169h2.48775v2.43463h-2.48775Zm.14165,5.669h2.17641V43.97622H201.58Z"/>
<path d="M208.10629,29.1707h2.17642v2.57776a5.52394,5.52394,0,0,1,5.00354-2.89205c3.53392,0,5.5967,2.40512,5.5967,5.92722v9.19258h-2.17642V35.3281c0-2.74892-1.46965-4.46644-4.0415-4.46644a4.33064,4.33064,0,0,0-4.38234,4.63908v8.47548h-2.17643Z"/>
<path d="M223.595,42.08458l1.10223-1.57291a8.48365,8.48365,0,0,0,5.05962,1.88868c1.75147,0,3.02485-.91631,3.02485-2.34758v-.05754c0-1.48882-1.7249-2.06132-3.64753-2.60579-2.28857-.65809-4.83237-1.46078-4.83237-4.18167V33.1517c0-2.54825,2.09084-4.23774,4.974-4.23774a9.88682,9.88682,0,0,1,5.25732,1.63194l-.9886,1.66146a8.188,8.188,0,0,0-4.32478-1.43277c-1.72491,0-2.82714.91631-2.82714,2.1469v.059c0,1.40175,1.809,1.94625,3.75965,2.54677,2.26051.6876,4.69219,1.57587,4.69219,4.23921V39.824c0,2.80648-2.29,4.43841-5.20126,4.43841A9.96351,9.96351,0,0,1,223.595,42.08458Z"/>
</g>
<g>
<path d="M115.968,52.15661h3.9692V87.79078H115.968Z"/>
<path d="M124.30768,81.986l2.864-2.49366c2.16019,3.30815,4.37053,5.0906,8.03872,5.0906,3.96772,0,6.8819-2.90089,6.8819-8.5522V52.15661h4.01936v23.824c0,4.17281-1.20551,7.33046-3.2152,9.3667a10.71062,10.71062,0,0,1-7.73622,2.95106A12.0199,12.0199,0,0,1,124.30768,81.986Z"/>
<path d="M165.55775,52.15661H178.7195c7.9369,0,13.16177,4.2761,13.16177,11.29964v.10329c0,7.68606-6.33,11.65672-13.81544,11.65672h-8.54039V87.79077h-3.96772ZM178.21636,71.551c5.82837,0,9.64558-3.15617,9.64558-7.83952v-.10181c0-5.0906-3.767-7.73771-9.44342-7.73771h-8.89308V71.551Z"/>
<path d="M196.3079,50.62793h3.86886V87.79076H196.3079Z"/>
<path d="M204.69779,80.15339v-.10033c0-5.54949,4.521-8.502,11.10342-8.502a27.211,27.211,0,0,1,7.98706,1.11994v-.91631c0-4.73352-2.864-7.177-7.73624-7.177a17.9221,17.9221,0,0,0-7.88821,1.93295l-1.15535-3.20634a21.22123,21.22123,0,0,1,9.4449-2.18822c3.66819,0,6.48056.96648,8.3899,2.90089,1.75885,1.78245,2.66186,4.32627,2.66186,7.68755V87.79076h-3.71689V83.81862A11.32989,11.32989,0,0,1,214.39351,88.35C209.57149,88.35,204.69779,85.5509,204.69779,80.15339Zm19.14065-2.03624V75.57333a26.73167,26.73167,0,0,0-7.63589-1.12139c-4.87369,0-7.58572,2.13951-7.58572,5.44768v.1018c0,3.30963,3.01453,5.24259,6.53071,5.24259,4.77187,0,8.6909-2.95109,8.6909-7.12686Z"/>
<path d="M234.3413,80.81591V64.93325h-3.61654V61.47164h3.61654V53.53031h3.86885v7.94133h8.2394v3.46161h-8.2394V80.30686c0,3.20781,1.75884,4.37791,4.37055,4.37791a8.05285,8.05285,0,0,0,3.767-.91631v3.35979a9.6214,9.6214,0,0,1-4.67157,1.11993C237.50632,88.24818,234.3413,86.16177,234.3413,80.81591Z"/>
<path d="M252.22922,64.93325h-3.56636v-3.41h3.56636V59.23178c0-3.00271.80416-5.29422,2.26051-6.77123a7.59978,7.59978,0,0,1,5.57753-2.03625,11.59177,11.59177,0,0,1,4.2702.66252v3.40995a12.78069,12.78069,0,0,0-3.76851-.661c-3.01452,0-4.521,1.83261-4.521,5.59965v2.138h8.23938v3.35979h-8.1892V87.79075h-3.86886Z"/>
<path d="M264.59124,74.75884v-.10329a13.53974,13.53974,0,1,1,27.07755-.10033v.10034A13.57821,13.57821,0,0,1,278.054,88.40164,13.39652,13.39652,0,0,1,264.59124,74.75884Zm23.10837,0v-.10329c0-5.64982-4.16987-10.28153-9.64558-10.28153-5.6262,0-9.495,4.63171-9.495,10.1812v.10033c0,5.6513,4.1197,10.23284,9.5954,10.23284C283.78058,84.88838,287.69961,80.30685,287.69961,74.75884Z"/>
<path d="M296.1441,61.47164H300.013v6.87157c1.90787-4.37644,5.67637-7.53409,10.60023-7.33047v4.22594h-.30249c-5.67637,0-10.29777,4.12264-10.29777,12.064V87.79075h-3.86885Z"/>
<path d="M313.98036,61.47164h3.86885v4.42808c1.7072-2.59547,4.01788-4.98731,8.38843-4.98731a8.81582,8.81582,0,0,1,8.33973,5.24257,10.32787,10.32787,0,0,1,9.14388-5.24257c5.9774,0,9.64558,4.07247,9.64558,10.58844v16.2899H349.498V72.41568c0-5.0906-2.51136-7.94133-6.73138-7.94133-3.919,0-7.18438,2.954-7.18438,8.145V87.79076H331.765V72.31535c0-4.93862-2.563-7.841-6.6827-7.841-4.11823,0-7.23307,3.46161-7.23307,8.29841v15.018h-3.86886Z"/>
<path d="M372.31491,52.15661h13.16177c7.93544,0,13.16177,4.2761,13.16177,11.29964v.10329c0,7.68606-6.33,11.65672-13.8169,11.65672h-8.5404V87.79077h-3.96624ZM384.97205,71.551c5.82837,0,9.647-3.15617,9.647-7.83952v-.10181c0-5.0906-3.76851-7.73771-9.44344-7.73771h-8.89451V71.551Z"/>
<path d="M403.06211,50.62793H406.931V87.79076h-3.86886Z"/>
<path d="M413.0131,77.81319V61.47164H416.879V76.84525c0,4.887,2.61464,7.94133,7.18584,7.94133,4.42072,0,7.78494-3.30816,7.78494-8.24677V61.47164h3.81868V87.79077H431.8498v-4.583A9.87131,9.87131,0,0,1,422.95823,88.35C416.67837,88.35,413.0131,84.07389,413.0131,77.81319Z"/>
<path d="M441.55,92.37083l1.75885-3.05438a16.446,16.446,0,0,0,9.99824,3.36127c5.72506,0,9.44344-3.20782,9.44344-9.3667V80.205c-2.26054,3.05438-5.427,5.54949-10.1989,5.54949A12.08515,12.08515,0,0,1,440.346,73.43379v-.10034a12.26417,12.26417,0,0,1,22.35433-7.12683v-4.735h3.86886V83.20775c0,4.0725-1.207,7.17848-3.317,9.31652-2.31066,2.34168-5.77523,3.51178-9.89495,3.51178A20.18232,20.18232,0,0,1,441.55,92.37083Zm21.30083-18.98719v-.10182c0-5.396-4.62137-8.9078-9.54379-8.9078a8.64347,8.64347,0,0,0-8.99486,8.85616v.10328a8.84778,8.84778,0,0,0,8.99486,8.95946C458.22945,82.29292,462.85082,78.67785,462.85082,73.38364Z"/>
<path d="M472.80183,51.39226h4.42072v4.32627h-4.42072Zm.25082,10.07938h3.86886V87.79076h-3.86886Z"/>
<path d="M483.40207,61.47164h3.86885v4.58153a9.81531,9.81531,0,0,1,8.89157-5.14076c6.27986,0,9.94807,4.2761,9.94807,10.53679V87.79075h-3.86885V72.41568c0-4.887-2.61171-7.94133-7.1829-7.94133-4.4709,0-7.78789,3.30963-7.78789,8.24826V87.79078h-3.86885Z"/>
<path d="M534.19883,55.872H522.34144V52.15661h27.681V55.872H538.168V87.79078h-3.9692Z"/>
<path d="M546.31,74.70719v-.10181c0-7.58425,5.27358-13.693,12.45648-13.693,7.68754,0,12.10826,6.209,12.10826,13.89659a10.352,10.352,0,0,1-.05017,1.2719H550.22611c.55481,5.70147,4.521,8.90929,9.14539,8.90929a10.68587,10.68587,0,0,0,8.18628-3.7154l2.414,2.18822a13.3417,13.3417,0,0,1-10.70058,4.93861C552.13543,88.40163,546.31,82.85215,546.31,74.70719ZM566.95574,73.18c-.40134-4.78516-3.1134-8.95945-8.28958-8.95945-4.521,0-7.93541,3.81868-8.44005,8.95945Z"/>
<path d="M575.15085,61.47164h3.86886v4.42808c1.70573-2.59547,4.01639-4.98731,8.38693-4.98731a8.81427,8.81427,0,0,1,8.33971,5.24257,10.33034,10.33034,0,0,1,9.14538-5.24257c5.97592,0,9.64408,4.07247,9.64408,10.58844v16.2899H610.667V72.41568c0-5.0906-2.51136-7.94133-6.73139-7.94133-3.919,0-7.1829,2.954-7.1829,8.145V87.79076H592.934V72.31535c0-4.93862-2.56153-7.841-6.68121-7.841s-7.23307,3.46161-7.23307,8.29841v15.018h-3.86886Z"/>
<path d="M620.26974,61.47164h3.86886v5.29422c2.11-3.15617,5.17323-5.85345,9.94513-5.85345,6.22969,0,12.40925,4.98731,12.40925,13.64281v.10033c0,8.60384-6.12939,13.69447-12.40925,13.69447a11.68492,11.68492,0,0,1-9.94513-5.59966V95.93574h-3.86886Zm22.254,13.23555v-.10181c0-6.21053-4.22-10.1812-9.14244-10.1812-4.82207,0-9.39326,4.12265-9.39326,10.131v.10034c0,6.10871,4.57119,10.18119,9.39326,10.18119C638.4041,84.83674,642.52378,81.07117,642.52378,74.70719Z"/>
<path d="M651.46846,50.62793h3.86886V87.79076h-3.86886Z"/>
<path d="M659.86133,80.15339v-.10033c0-5.54949,4.521-8.502,11.10193-8.502a27.21427,27.21427,0,0,1,7.98853,1.11994v-.91631c0-4.73352-2.86547-7.177-7.73771-7.177a17.93248,17.93248,0,0,0-7.88823,1.93295L662.172,63.30425a21.2147,21.2147,0,0,1,9.44344-2.18822c3.66815,0,6.48056.96648,8.38987,2.90089,1.75884,1.78245,2.66188,4.32627,2.66188,7.68755V87.79076h-3.71539V83.81862a11.33082,11.33082,0,0,1-9.3962,4.53137C664.73352,88.35,659.86133,85.5509,659.86133,80.15339ZM679.002,78.11715V75.57333a26.7344,26.7344,0,0,0-7.63737-1.12139c-4.87224,0-7.58424,2.13951-7.58424,5.44768v.1018c0,3.30963,3.01305,5.24259,6.53073,5.24259,4.77185,0,8.69088-2.95109,8.69088-7.12686Z"/>
<path d="M689.5048,80.81591V64.93325h-3.618V61.47164h3.618V53.53031h3.86885v7.94133h8.23945v3.46161h-8.23945V80.30686c0,3.20781,1.75885,4.37791,4.37055,4.37791a8.0669,8.0669,0,0,0,3.76851-.91631v3.35979a9.63752,9.63752,0,0,1-4.67449,1.11993C692.66837,88.24818,689.5048,86.16177,689.5048,80.81591Z"/>
<path d="M703.57554,74.70719v-.10181c0-7.58425,5.27358-13.693,12.45648-13.693,7.68754,0,12.10826,6.209,12.10826,13.89659a10.36192,10.36192,0,0,1-.05017,1.2719H707.49162c.55481,5.70147,4.521,8.90929,9.14539,8.90929a10.68594,10.68594,0,0,0,8.18628-3.7154l2.414,2.18822a13.3417,13.3417,0,0,1-10.70058,4.93861C709.40094,88.40163,703.57554,82.85215,703.57554,74.70719ZM724.2212,73.18c-.40134-4.78516-3.1134-8.95945-8.28957-8.95945-4.521,0-7.93542,3.81868-8.44006,8.95945Z"/>
</g>
</g>
<path d="M80.37373,31.871V23.97684H64.21736v7.993H48.20705v-7.993H31.95183V31.871H24.10714V88.08737H48.15763V80.0826a8.00515,8.00515,0,0,1,16.0103,0v8.00477H88.21842V31.871Z" fill="url(#linear-gradient)"/>
<rect width="745.71429" height="112.5" fill="none"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 12 KiB

@ -8,10 +8,11 @@
- [x] Create a new [IntelliJ Platform Plugin Template][template] project.
- [ ] Get familiar with the [template documentation][template].
- [ ] Verify the [pluginGroup](./gradle.properties), [plugin ID](./src/main/resources/META-INF/plugin.xml) and [sources package](./src/main/kotlin).
- [ ] Review the [Legal Agreements](https://plugins.jetbrains.com/docs/marketplace/legal-agreements.html).
- [ ] Review the [Legal Agreements](https://plugins.jetbrains.com/docs/marketplace/legal-agreements.html?from=IJPluginTemplate).
- [ ] [Publish a plugin manually](https://plugins.jetbrains.com/docs/intellij/publishing-plugin.html?from=IJPluginTemplate) for the first time.
- [ ] Set the Plugin ID in the above README badges.
- [ ] Set the [Deployment Token](https://plugins.jetbrains.com/docs/marketplace/plugin-upload.html).
- [ ] Set the [Plugin Signing](https://plugins.jetbrains.com/docs/intellij/plugin-signing.html?from=IJPluginTemplate) related [secrets](https://github.com/JetBrains/intellij-platform-plugin-template#environment-variables).
- [ ] Set the [Deployment Token](https://plugins.jetbrains.com/docs/marketplace/plugin-upload.html?from=IJPluginTemplate).
- [ ] Click the <kbd>Watch</kbd> button on the top of the [IntelliJ Platform Plugin Template][template] to be notified about releases containing new features and fixes.
<!-- Plugin description -->

@ -2,14 +2,15 @@
pluginGroup = %GROUP%
pluginName = %NAME%
pluginRepositoryUrl = https://github.com/%REPOSITORY%
# SemVer format -> https://semver.org
pluginVersion = 0.0.1
# Supported build number ranges and IntelliJ Platform versions -> https://plugins.jetbrains.com/docs/intellij/build-number-ranges.html
pluginSinceBuild = 213
pluginUntilBuild = 222.*
pluginUntilBuild = 223.*
# IntelliJ Platform Properties -> https://plugins.jetbrains.com/docs/intellij/tools-gradle-intellij-plugin.html#intellij-extension
# IntelliJ Platform Properties -> https://plugins.jetbrains.com/docs/intellij/tools-gradle-intellij-plugin.html#configuration-intellij-extension
platformType = IC
platformVersion = 2021.3.3
@ -23,3 +24,6 @@ gradleVersion = 7.5.1
# Opt-out flag for bundling Kotlin standard library -> https://plugins.jetbrains.com/docs/intellij/kotlin.html#kotlin-standard-library
# suppress inspection "UnusedProperty"
kotlin.stdlib.default.dependency = false
# Enable Gradle Configuration Cache -> https://docs.gradle.org/current/userguide/configuration_cache.html
org.gradle.unsafe.configuration-cache = true

@ -46,7 +46,7 @@ jobs:
# Validate wrapper
- name: Gradle Wrapper Validation
uses: gradle/wrapper-validation-action@v1.0.4
uses: gradle/wrapper-validation-action@v1.0.5
# Setup Java 11 environment for the next steps
- name: Setup Java
@ -77,7 +77,7 @@ jobs:
# Run tests
- name: Run Tests
run: ./gradlew test
run: ./gradlew check
# Collect Tests Result of failed tests
- name: Collect Tests Result
@ -87,6 +87,12 @@ jobs:
name: tests-result
path: ${{ github.workspace }}/build/reports/tests
# Upload Kover report to CodeCov
- name: Upload Code Coverage Report
uses: codecov/codecov-action@v3
with:
files: ${{ github.workspace }}/build/reports/kover/xml/report.xml
# Cache Plugin Verifier IDEs
- name: Setup Plugin Verifier IDEs Cache
uses: actions/cache@v3
@ -108,7 +114,7 @@ jobs:
# Run Qodana inspections
- name: Qodana - Code Inspection
uses: JetBrains/qodana-action@v2022.2.1
uses: JetBrains/qodana-action@v2022.2.3
# Prepare plugin archive content for creating artifact
- name: Prepare Plugin Artifact

@ -77,6 +77,7 @@ jobs:
run: |
VERSION="${{ github.event.release.tag_name }}"
BRANCH="changelog-update-$VERSION"
LABEL="release changelog"
git config user.email "action@github.com"
git config user.name "GitHub Action"
@ -84,9 +85,13 @@ jobs:
git checkout -b $BRANCH
git commit -am "Changelog update - $VERSION"
git push --set-upstream origin $BRANCH
gh label create "$LABEL" \
--description "Pull requests with release changelog update" \
|| true
gh pr create \
--title "Changelog update - \`$VERSION\`" \
--body "Current pull request contains patched \`CHANGELOG.md\` file for the \`$VERSION\` version." \
--base main \
--label "$LABEL" \
--head $BRANCH

@ -48,7 +48,7 @@ jobs:
# Wait for IDEA to be started
- name: Health Check
uses: jtalk/url-health-check-action@v2
uses: jtalk/url-health-check-action@v3
with:
url: http://127.0.0.1:8082
max-attempts: 15

@ -5,18 +5,17 @@
name: Template Cleanup
on:
push:
branches:
- main
branches: [main]
jobs:
# Run cleaning process only if workflow is triggered by the non-JetBrains/intellij-platform-plugin-template repository.
# Run cleaning process only if workflow is triggered by the non-"intellij-platform-plugin-template" repository.
template-cleanup:
name: Template Cleanup
runs-on: ubuntu-latest
if: github.event.repository.name != 'intellij-platform-plugin-template'
permissions:
contents: write
if: github.event.repository.name != 'intellij-platform-plugin-template'
steps:
# Check out current repository
@ -59,6 +58,7 @@ jobs:
.github/readme \
.github/template-cleanup \
.github/workflows/template-cleanup.yml \
.github/workflows/template-verify.yml \
.idea/icon.png \
src/main/kotlin/org \
src/test/kotlin/org \

@ -0,0 +1,43 @@
# GitHub Actions Workflow verifies if the template repository is consistent with all provided content.
name: Template Verify
on:
# Trigger the workflow on pushes to only the 'main' branch (this avoids duplicate checks being run e.g. for dependabot pull requests)
push:
branches: [main]
paths: ['**/gradle.properties']
# Trigger the workflow on any pull request
pull_request:
paths: ['**/gradle.properties']
jobs:
build:
name: Template Verify
if: github.event.repository.name == 'intellij-platform-plugin-template'
runs-on: ubuntu-latest
outputs:
version: ${{ steps.properties.outputs.version }}
changelog: ${{ steps.properties.outputs.changelog }}
steps:
# Check out current repository
- name: Fetch Sources
uses: actions/checkout@v3
# Compare `gradle.properties` with `.github/template-cleanup/gradle.properties`
- name: Verify gradle.properties
run: |
echo "\`\`\`diff" >> $GITHUB_STEP_SUMMARY
diff -U 0 \
-I '^pluginVersion' \
-I '^pluginGroup' \
-I '^pluginName' \
-I '^pluginRepositoryUrl' \
--label .github/template-cleanup/gradle.properties \
--label gradle.properties \
.github/template-cleanup/gradle.properties gradle.properties \
>> $GITHUB_STEP_SUMMARY
echo "\`\`\`" >> $GITHUB_STEP_SUMMARY

@ -11,7 +11,7 @@
</option>
<option name="taskNames">
<list>
<option value="test" />
<option value="check" />
</list>
</option>
<option name="vmOptions" value="" />

@ -4,7 +4,31 @@
## [Unreleased]
## [1.2.0]
### Added
- [Kover](https://github.com/Kotlin/kotlinx-kover) integration
- Enable [Gradle Configuration Cache](https://docs.gradle.org/current/userguide/configuration_cache.html) in `gradle.proeprties`
- GitHub Actions - mark the pull request created with _Publish Plugin_ workflow with `release changelog` label
- GitHub Actions - send code coverage reports to [CodeCov](https://codecov.io)
- Dependencies - upgrade `org.jetbrains.kotlinx.kover` to `0.6.1`
### Changed
- Update `changelog` extension configuration in `build.gradle.kts` file
- Update `pluginUntilBuild` to include `223.*` (2022.3.*)
- Use `kotlin.jvmToolchain(11)` shorthand in Gradle configuration
- Dependencies - upgrade `org.jetbrains.intellij` to `1.10.0`
- Dependencies - upgrade `org.jetbrains.changelog` to `2.0.0`
- Dependencies - upgrade `org.jetbrains.kotlin.jvm` to `1.7.21`
- Dependencies (GitHub Actions) - upgrade `JetBrains/qodana-action` to `v2022.2.3`
- Dependencies (GitHub Actions) - upgrade `gradle/wrapper-validation-action` to `v1.0.5`
- Dependencies (GitHub Actions) - upgrade `jtalk/url-health-check-action` to `v3`
- Use `file` instead of `projectDir.resolve` in Gradle configuration file
### Fixed
- Update broken link in `gradle.properties`
- GitHub Actions - use `$BRANCH` for creating changelog pull request
## [1.2.0] - 2022-08-07
### Added
- Use JVM toolchain for configuring source/target compilation compatibility
- Make sure GitHub Actions release jobs have write permissions
@ -28,9 +52,10 @@
- Pass Plugin Signing secrets as environment variables in the Release workflow
### Removed
- Removed Gradle caching from GitHub Actions
- Removed Gradle caching from GitHub Actions
## [1.1.2] - 2022-02-11
## [1.1.2]
### Changed
- Update `platformVersion` to `2021.1.3` for compatibility with Apple M1
- Change since/until build to `211-213.*` (2021.1 - 2021.3)
@ -38,7 +63,8 @@
- Dependencies - upgrade `org.jetbrains.intellij` to `1.4.0`
- Dependencies (GitHub Actions) - upgrade `JetBrains/qodana-action` to `4.2.5`
## [1.1.1]
## [1.1.1] - 2022-01-24
### Changed
- GitHub Actions - fixed duplicated `.zip` extension in artifact file's name of the build flow
- Upgrade Gradle Wrapper to `7.3.3`
@ -47,12 +73,13 @@
- Dependencies (GitHub Actions) - upgrade `JetBrains/qodana-action` to `4.2.3`
- Dependencies (GitHub Actions) - upgrade `actions/cache` to `2.1.7`
## [1.1.0]
## [1.1.0] - 2021-11-16
### Added
- GitHub Actions: Collect Qodana/Tests/Plugin Verifier results as artifacts
### Changed
- Dependencies - upgrade `org.jetbrains.intellij` to `1.3.0`
- Dependencies - upgrade `org.jetbrains.intellij` to `1.3.0`
- Dependencies - upgrade `org.jetbrains.changelog` to `1.3.1`
- Dependencies - upgrade `org.jetbrains.kotlin.jvm` to `1.6.0`
- Dependencies (GitHub Actions) - upgrade `jtalk/url-health-check-action` to `2`
@ -66,14 +93,15 @@
### Fixed
- Fixed passing change notes from `CHANGELOG.md` to the Release Draft
- Fixed passing updated change notes from the Release Draft to `patchChangelog` Gradle task
- Fixed `QODANA_SHOW_REPORT` environment variable resolving for Gradle `6.x`
- Fixed `QODANA_SHOW_REPORT` environment variable resolving for Gradle `6.x`
### Removed
- Removed the `pluginVerifierIdeVersions` configuration to use default IDEs list provided by the `listProductsReleases` task for `runPluginVerifier`
- Removed `platformDownloadSources` from Gradle configuration to use default value
- Removed the `pluginVerifierIdeVersions` configuration to use default IDEs list provided by the `listProductsReleases` task for `runPluginVerifier`
- Removed `platformDownloadSources` from Gradle configuration to use default value
- Removed `updateSinceUntilBuild.set(true)` from Gradle configuration to use default value
## [1.0.0]
## [1.0.0] - 2021-09-07
### Added
- Plugin Signing
- Qodana integration
@ -103,7 +131,8 @@
### Removed
- Removed `detekt`/`ktlint` integration
## [0.10.1]
## [0.10.1] - 2021-05-31
### Added
- Introduced `next` branch in the root repository to make `main` always a stable one
@ -111,7 +140,8 @@
- Dependencies (GitHub Actions) - upgrade `actions/cache` to `v2.1.6`
- Trigger GitHub Actions `Build` workflows only on pushes to `main` branch or pull request to avoid duplicated checks
## [0.10.0]
## [0.10.0] - 2021-05-27
### Changed
- Remove reference to the `jcenter()` from Gradle configuration file
- Update `pluginVerifierIdeVersions` to `2020.2.4, 2020.3.4, 2021.1.2`
@ -125,29 +155,32 @@
- Dependencies (GitHub Actions) - upgrade `actions/create-release` to `v1.1.4`
- Upgrade Gradle Wrapper to `7.0.2`
## [0.9.0]
## [0.9.0] - 2021-03-29
### Added
- `properties` shorthand function for accessing `gradle.properties` in a cleaner way
- Dependabot check for GitHub Actions used in [workflow files](.github/workflows)
### Changed
- Dependencies - upgrade `detekt-formatting from` to `1.16.0`
- Dependencies - upgrade `io.gitlab.arturbosch.detekt` to `1.16.0`
- Dependencies - upgrade `org.jetbrains.kotlin.jvm` to `1.4.32`
- Dependencies - upgrade `detekt-formatting from` to `1.16.0`
- Dependencies - upgrade `io.gitlab.arturbosch.detekt` to `1.16.0`
- Dependencies - upgrade `org.jetbrains.kotlin.jvm` to `1.4.32`
- Dependencies (GitHub Actions) - upgrade `actions/upload-artifact` to `v2.2.2`
- Dependencies (GitHub Actions) - upgrade `actions/cache` to `v2.1.4`
### Fixed
- Fix `README.md` file resolution in the `build.gradle.kts`
## [0.8.3]
## [0.8.3] - 2021-02-23
### Changed
- Dependencies - upgrade `org.jetbrains.intellij` to `0.7.2`
- Dependencies - upgrade `org.jlleitschuh.gradle.ktlint` to `10.0.0`
- Update `platformVersion` to `2020.2.4` for compatibility with macOS Big Sur
- Upgrade Gradle Wrapper to `6.8.3`
## [0.8.2]
## [0.8.2] - 2021-02-09
### Changed
- Use `-bin` distribution of the Gradle Wrapper
- Upgrade Gradle Wrapper to `6.8.2`
@ -156,7 +189,8 @@
- Dependencies - upgrade `org.jetbrains.changelog` to `1.1.1`
- Configure the `changelog` Gradle plugin
## [0.8.1]
## [0.8.1] - 2021-01-12
### Added
- README: Dependencies management section
@ -169,7 +203,8 @@
- Template Cleanup: Run `ktlintFormat` task to fix imports order
- GitHub Actions: Use the correct property in the "Upload artifact" step
## [0.8.0]
## [0.8.0] - 2020-12-21
### Added
- Dependabot integration
- Show `idea.log` logs of the run IDE in the Run console
@ -186,7 +221,8 @@
### Fixed
- Return `Supplier<@Nls String>` instead of `String` in `MyBundle.messagePointer`
## [0.7.1]
## [0.7.1] - 2020-12-02
### Changed
- Upgrade Gradle Wrapper to `6.7.1`
- Dependencies - upgrade `org.jetbrains.intellij` to `0.6.5`
@ -194,7 +230,8 @@
- Update the base platform version to 2020.1
- Change since/until build to `201-203.*`
## [0.7.0]
## [0.7.0] - 2020-11-16
### Added
- Predefined Run/Debug Configurations
- Project icon for development purposes
@ -202,7 +239,8 @@
### Changed
- Dependencies - upgrade `org.jetbrains.intellij` to `0.6.3`
## [0.6.1]
## [0.6.1] - 2020-11-05
### Added
- GitHub Actions - use hash based on `pluginVerifierIdeVersions` in `Setup Plugin Verifier IDEs Cache` step
@ -211,7 +249,8 @@
- Dependencies - upgrade `org.jetbrains.intellij` to `0.6.2`
- Update `pluginVerifierIdeVersions` in the `gradle.properties` files
## [0.6.0]
## [0.6.0] - 2020-10-29
### Added
- Integration with [IntelliJ Plugin Verifier](https://github.com/JetBrains/intellij-plugin-verifier) through the [Gradle IntelliJ Plugin](https://plugins.jetbrains.com/docs/intellij/tools-gradle-intellij-plugin.html#runpluginverifier-task) `runPluginVerifier` task
- Cache downloaded IDEs used by Plugin Verifier for the verification
@ -227,7 +266,8 @@
### Removed
- Remove Third-party IntelliJ Plugin Verifier GitHub Action
## [0.5.1]
## [0.5.1] - 2020-10-15
### Added
- Missing properties in the `gradle.properties` template file
@ -235,7 +275,8 @@
- Upgrade Gradle Wrapper to `6.7`
- Dependencies - upgrade `org.jetbrains.changelog` to `0.6.2`
## [0.5.0]
## [0.5.0] - 2020-10-12
### Added
- Introduced `platformPlugins` property in `gradle.properties` for configuring dependencies to bundled/external plugins
@ -247,7 +288,8 @@
- Dependencies - upgrade `org.jlleitschuh.gradle.ktlint` to `9.4.1`
- Remove LICENSE file during the Template Cleanup workflow
## [0.4.0]
## [0.4.0] - 2020-10-02
### Added
- Fix default to opt-out of bundling Kotlin standard library in plugin distribution
@ -259,7 +301,8 @@
### Fixed
- `pluginName` variable name collision with `intellij` closure getter in Gradle configuration #29
## [0.3.2]
## [0.3.2] - 2020-08-09
### Changed
- Simplify and optimize GitHub Actions
- Gradle Wrapper upgrade to `6.6.1`
@ -273,7 +316,8 @@
### Fixed
- GitHub Actions - cache Gradle dependencies and wrapper separately
## [0.3.1]
## [0.3.1] - 2020-07-31
### Added
- Better handling of the Gradle plugin description extraction from the README file
- GitHub Actions - cache Gradle Wrapper
@ -288,7 +332,8 @@
- Resolve ktlint reports
- GitHub Actions - Plugin Verifier broken for artifacts with whitespaces in name
## [0.3.0]
## [0.3.0] - 2020-07-07
### Added
- Set publish channel depending on the plugin version, i.e. `1.0.0-beta` -> `beta` channel
@ -302,7 +347,8 @@
- Remove vendor website from `plugin.xml`
- Update Template Cleanup workflow test to avoid running it on forks
## [0.2.0]
## [0.2.0] - 2020-07-02
### Added
- JetBrains Plugin badges and TODO list for the end users
- `ktlint` integration
@ -316,7 +362,8 @@
- Update Template plugin name on cleanup
- Set `buildUponDefaultConfig = true` in detekt configuration
## [0.1.0]
## [0.1.0] - 2020-06-26
### Added
- `settings.gradle.kts` for the [performance purposes](https://docs.gradle.org/current/userguide/organizing_gradle_projects.html#always_define_a_settings_file)
- `#REMOVE-ON-CLEANUP#` token to mark content to be removed with **Template Cleanup** workflow
@ -326,7 +373,8 @@
- GitHub Actions - Update IDE versions for the Plugin Verifier
- Update platformVersion to `2020.1.2`
## [0.0.2]
## [0.0.2] - 2020-06-22
### Added
- [Gradle Changelog Plugin](https://github.com/JetBrains/gradle-changelog-plugin) integration
@ -335,7 +383,36 @@
- Change pluginSinceBuild to 193
## [0.0.1]
### Added
- Initial project scaffold
- GitHub Actions to automate testing and deployment
- Kotlin support
[Unreleased]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v1.2.0...HEAD
[1.2.0]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v1.1.2...v1.2.0
[1.1.2]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v1.1.1...v1.1.2
[1.1.1]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v1.1.0...v1.1.1
[1.1.0]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v1.0.0...v1.1.0
[1.0.0]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v0.10.1...v1.0.0
[0.10.1]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v0.10.0...v0.10.1
[0.10.0]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v0.9.0...v0.10.0
[0.9.0]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v0.8.3...v0.9.0
[0.8.3]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v0.8.2...v0.8.3
[0.8.2]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v0.8.1...v0.8.2
[0.8.1]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v0.8.0...v0.8.1
[0.8.0]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v0.7.1...v0.8.0
[0.7.1]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v0.7.0...v0.7.1
[0.7.0]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v0.6.1...v0.7.0
[0.6.1]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v0.6.0...v0.6.1
[0.6.0]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v0.5.1...v0.6.0
[0.5.1]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v0.5.0...v0.5.1
[0.5.0]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v0.4.0...v0.5.0
[0.4.0]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v0.3.2...v0.4.0
[0.3.2]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v0.3.1...v0.3.2
[0.3.1]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v0.3.0...v0.3.1
[0.3.0]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v0.2.0...v0.3.0
[0.2.0]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v0.1.0...v0.2.0
[0.1.0]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v0.0.2...v0.1.0
[0.0.2]: https://github.com/JetBrains/intellij-platform-plugin-template/commits/v0.0.2
[0.0.1]: https://github.com/JetBrains/intellij-platform-plugin-template/commits

@ -1,11 +1,12 @@
# IntelliJ Platform Plugin Template
[![official JetBrains project](https://jb.gg/badges/official.svg)][jb:confluence-on-gh]
[![official JetBrains project](https://jb.gg/badges/official.svg)][jb:github]
[![Twitter Follow](https://img.shields.io/twitter/follow/JBPlatform?style=flat-square&logo=twitter)](https://twitter.com/JBPlatform)
[![Build](https://github.com/JetBrains/intellij-platform-plugin-template/workflows/Build/badge.svg)][gh:build]
[![Slack](https://img.shields.io/badge/Slack-%23intellij--platform-blue?style=flat-square&logo=Slack)](https://plugins.jetbrains.com/slack)
![IntelliJ Platform Plugin Template][file:intellij-platform-plugin-template.png]
![IntelliJ Platform Plugin Template][file:intellij-platform-plugin-template-dark]
![IntelliJ Platform Plugin Template][file:intellij-platform-plugin-template-light]
> **Note**
>
@ -39,6 +40,7 @@ In this README, we will highlight the following elements of template-project cre
- actions basic action with shortcut binding
- [Testing](#testing)
- [Functional tests](#functional-tests)
- [Code coverage](#code-coverage)
- [UI tests](#ui-tests)
- [Qodana integration](#qodana-integration)
- [Predefined Run/Debug configurations](#predefined-rundebug-configurations)
@ -92,17 +94,17 @@ The most significant parts of the current configuration are:
- Integration with the [gradle-intellij-plugin][gh:gradle-intellij-plugin] for smoother development.
- [Plugin publishing][docs:publishing] using the token.
For more details regarding Kotlin integration, please see [Kotlin for Plugin Developers][kotlin-for-plugin-developers] section in the IntelliJ Platform Plugin SDK documentation.
For more details regarding Kotlin integration, please see [Kotlin for Plugin Developers][docs:kotlin] section in the IntelliJ Platform Plugin SDK documentation.
### Gradle properties
The project-specific configuration file [gradle.properties][file:gradle.properties] contains:
The project-specific configuration file [`gradle.properties`][file:gradle.properties] contains:
| Property name | Description |
|---------------------------|-----------------------------------------------------------------------------------------------------------|
| `pluginGroup` | Package name - after *using* the template, this will be set to `com.github.username.repo`. |
| `pluginName` | Plugin name displayed in the JetBrains Marketplace and the Plugins Repository. |
| `pluginVersion` | The current version of the plugin in [SemVer](https://semver.org/) format. |
| `pluginVersion` | The current version of the plugin in [SemVer][semver] format. |
| `pluginSinceBuild` | The `since-build` attribute of the `<idea-version>` tag. |
| `pluginUntilBuild` | The `until-build` attribute of the `<idea-version>` tag. |
| `platformType` | The type of IDE distribution. |
@ -112,6 +114,13 @@ The project-specific configuration file [gradle.properties][file:gradle.properti
The properties listed define the plugin itself or configure the [gradle-intellij-plugin][gh:gradle-intellij-plugin] check its documentation for more details.
In addition, extra behaviours are configured through the [`gradle.properties`][file:gradle.properties] file, such as:
| Property name | Value | Description |
|-----------------------------------------|---------|-------------------------------------------------------------------------|
| `kotlin.stdlib.default.dependency` | `false` | Opt-out flag for bundling [Kotlin standard library][docs:kotlin-stdlib] |
| `org.gradle.unsafe.configuration-cache` | `true` | Enable [Gradle Configuration Cache][gradle-configuration-cache] |
### Environment variables
Some values used for the Gradle configuration shouldn't be stored in files to avoid publishing them to the Version Control System.
@ -120,12 +129,12 @@ To avoid that, environment variables are introduced, which can be provided withi
Environment variables used by the current project are related to the [plugin signing](#plugin-signing) and [publishing](#publishing-the-plugin).
| Environment variable name | Description |
|---------------------------|---------------------------------------------------------------------------------------------------------------------------------------------|
| `PRIVATE_KEY` | Certificate private key, should contain: <code>-----BEGIN ENCRYPTED PRIVATE KEY-----<br/>...<br/>-----END ENCRYPTED PRIVATE KEY-----</code> |
| `PRIVATE_KEY_PASSWORD` | Password used for encrypting the certificate file. |
| `CERTIFICATE_CHAIN` | Certificate chain, should contain: <code>-----BEGIN CERTIFICATE-----<br/>...<br/>-----END CERTIFICATE----</code> |
| `PUBLISH_TOKEN` | Publishing token generated in your JetBrains Marketplace profile dashboard. |
| Environment variable name | Description |
|---------------------------|--------------------------------------------------------------------------------------------------------------|
| `PRIVATE_KEY` | Certificate private key, should contain: `-----BEGIN RSA PRIVATE KEY----- ... -----END RSA PRIVATE KEY-----` |
| `PRIVATE_KEY_PASSWORD` | Password used for encrypting the certificate file. |
| `CERTIFICATE_CHAIN` | Certificate chain, should contain: `-----BEGIN CERTIFICATE----- ... -----END CERTIFICATE----` |
| `PUBLISH_TOKEN` | Publishing token generated in your JetBrains Marketplace profile dashboard. |
For more details on how to generate proper values, check the relevant sections mentioned above.
@ -238,7 +247,14 @@ In `src/test/kotlin`, you'll find a basic `MyPluginTest` test that utilizes `Bas
> **Note**
>
> Run your tests using predefined *Run Tests* configuration or by invoking the `./gradlew test` Gradle task.
> Run your tests using predefined *Run Tests* configuration or by invoking the `./gradlew check` Gradle task.
### Code coverage
The [Kover][gh:kover] a Gradle plugin for Kotlin code coverage agents: IntelliJ and JaCoCo is integrated into the project to provide the code coverage feature.
Code coverage makes it possible to measure and track the degree of testing of the plugin sources.
The code coverage gets executed when running the `check` Gradle task.
The final test report is sent to [CodeCov][codecov] for better results visualization.
### UI tests
@ -250,7 +266,7 @@ Once IDE with `robot-server` has started, you can open the `http://localhost:808
> **Note**
>
> Run IDE for UI tests using predefined *Run IDE for UI Tests* and then *Run Tests* configurations or by invoking the `./gradlew runIdeForUiTests` and `./gradlew tests` Gradle tasks.
> Run IDE for UI tests using predefined *Run IDE for UI Tests* and then *Run Tests* configurations or by invoking the `./gradlew runIdeForUiTests` and `./gradlew check` Gradle tasks.
Check the UI Test Example project you can use as a reference for setting up UI testing in your plugin: [intellij-ui-test-robot/ui-test-example][gh:ui-test-example].
@ -273,13 +289,13 @@ Due to its optional nature, this workflow isn't set as an automatic one, but thi
## Qodana integration
To increase the project value, the IntelliJ Platform Plugin Template got integrated with [Qodana][docs:qodana], a code quality monitoring platform that allows you to check the condition of your implementation and find any possible problems that may require enhancing.
To increase the project value, the IntelliJ Platform Plugin Template got integrated with [Qodana][jb:qodana], a code quality monitoring platform that allows you to check the condition of your implementation and find any possible problems that may require enhancing.
Qodana brings into your CI/CD pipelines all the smart features you love in the JetBrains IDEs and generates an HTML report with the actual inspection status.
Qodana inspections are accessible within the project on two levels:
- using the [Qodana IntelliJ GitHub Action][docs:qodana-github-action], run automatically within the [Build](.github/workflows/build.yml) workflow,
- using the [Qodana IntelliJ GitHub Action][jb:qodana-github-action], run automatically within the [Build](.github/workflows/build.yml) workflow,
- with the [Gradle Qodana Plugin][gh:gradle-qodana-plugin], so you can use it on the local environment or any CI other than GitHub Actions.
Qodana inspection is configured with the `qodana { ... }` section in the Gradle build file and [`qodana.yml`][file:qodana.yml] YAML configuration file.
@ -501,14 +517,14 @@ That approach gives more possibilities for testing and debugging pre-releases, f
[docs]: https://plugins.jetbrains.com/docs/intellij?from=IJPluginTemplate
[docs:intro]: https://plugins.jetbrains.com/docs/intellij/intellij-platform.html?from=IJPluginTemplate
[docs:kotlin-ui-dsl]: https://plugins.jetbrains.com/docs/intellij/kotlin-ui-dsl.html?from=IJPluginTemplate
[docs:kotlin]: https://plugins.jetbrains.com/docs/intellij/kotlin.html?from=IJPluginTemplate
[docs:kotlin-stdlib]: https://plugins.jetbrains.com/docs/intellij/kotlin.html?from=IJPluginTemplate#kotlin-standard-library
[docs:plugin.xml]: https://plugins.jetbrains.com/docs/intellij/plugin-configuration-file.html?from=IJPluginTemplate
[docs:publishing]: https://plugins.jetbrains.com/docs/intellij/publishing-plugin.html?from=IJPluginTemplate
[docs:release-channel]: https://plugins.jetbrains.com/docs/intellij/deployment.html?from=IJPluginTemplate#specifying-a-release-channel
[docs:using-gradle]: https://plugins.jetbrains.com/docs/intellij/gradle-build-system.html?from=IJPluginTemplate
[docs:plugin-signing]: https://plugins.jetbrains.com/docs/intellij/plugin-signing.html?from=IJPluginTemplate
[docs:testing-plugins]: https://plugins.jetbrains.com/docs/intellij/testing-plugins.html
[docs:qodana]: https://www.jetbrains.com/help/qodana
[docs:qodana-github-action]: https://www.jetbrains.com/help/qodana/qodana-intellij-github-action.html
[docs:testing-plugins]: https://plugins.jetbrains.com/docs/intellij/testing-plugins.html?from=IJPluginTemplate
[file:use-this-template.png]: .github/readme/use-this-template.png
[file:draft-release.png]: .github/readme/draft-release.png
@ -518,43 +534,49 @@ That approach gives more possibilities for testing and debugging pre-releases, f
[file:run-debug-configurations.png]: .github/readme/run-debug-configurations.png
[file:settings-secrets.png]: .github/readme/settings-secrets.png
[file:template_cleanup.yml]: ./.github/workflows/template-cleanup.yml
[file:intellij-platform-plugin-template.png]: ./.github/readme/intellij-platform-plugin-template.png
[file:intellij-platform-plugin-template-dark]: ./.github/readme/intellij-platform-plugin-template-dark.svg#gh-dark-mode-only
[file:intellij-platform-plugin-template-light]: ./.github/readme/intellij-platform-plugin-template-light.svg#gh-light-mode-only
[file:ui-testing.png]: ./.github/readme/ui-testing.png
[file:qodana.yml]: ./qodana.yml
[file:qodana.png]: .github/readme/qodana.png
[gh:actions]: https://help.github.com/en/actions
[gh:dependabot]: https://docs.github.com/en/free-pro-team@latest/github/administering-a-repository/keeping-your-dependencies-updated-automatically
[gh:build]: https://github.com/JetBrains/intellij-platform-plugin-template/actions?query=workflow%3ABuild
[gh:code-samples]: https://github.com/JetBrains/intellij-sdk-code-samples
[gh:dependabot]: https://docs.github.com/en/free-pro-team@latest/github/administering-a-repository/keeping-your-dependencies-updated-automatically
[gh:dependabot-pr]: https://github.com/JetBrains/intellij-platform-plugin-template/pull/73
[gh:gradle-changelog-plugin]: https://github.com/JetBrains/gradle-changelog-plugin
[gh:gradle-qodana-plugin]: https://github.com/JetBrains/gradle-qodana-plugin
[gh:gradle-intellij-plugin]: https://github.com/JetBrains/gradle-intellij-plugin
[gh:gradle-intellij-plugin-docs]: https://plugins.jetbrains.com/docs/intellij/tools-gradle-intellij-plugin.html
[gh:gradle-intellij-plugin-runIde]: https://plugins.jetbrains.com/docs/intellij/tools-gradle-intellij-plugin.html#runide-task
[gh:gradle-intellij-plugin-runPluginVerifier]: https://plugins.jetbrains.com/docs/intellij/tools-gradle-intellij-plugin.html#runpluginverifier-task
[gh:releases]: https://github.com/JetBrains/intellij-platform-plugin-template/releases
[gh:build]: https://github.com/JetBrains/intellij-platform-plugin-template/actions?query=workflow%3ABuild
[gh:dependabot-pr]: https://github.com/JetBrains/intellij-platform-plugin-template/pull/73
[gh:gradle-intellij-plugin-runIde]: https://plugins.jetbrains.com/docs/intellij/tools-gradle-intellij-plugin.html#tasks-runide
[gh:gradle-intellij-plugin-runPluginVerifier]: https://plugins.jetbrains.com/docs/intellij/tools-gradle-intellij-plugin.html#tasks-runpluginverifier
[gh:gradle-qodana-plugin]: https://github.com/JetBrains/gradle-qodana-plugin
[gh:intellij-ui-test-robot]: https://github.com/JetBrains/intellij-ui-test-robot
[gh:kover]: https://github.com/Kotlin/kotlinx-kover
[gh:releases]: https://github.com/JetBrains/intellij-platform-plugin-template/releases
[gh:ui-test-example]: https://github.com/JetBrains/intellij-ui-test-robot/tree/master/ui-test-example
[jb:confluence-on-gh]: https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub
[jb:github]: https://github.com/JetBrains/.github/blob/main/profile/README.md
[jb:download-ij]: https://www.jetbrains.com/idea/download
[jb:forum]: https://intellij-support.jetbrains.com/hc/en-us/community/topics/200366979-IntelliJ-IDEA-Open-API-and-Plugin-Development
[jb:ipe]: https://plugins.jetbrains.com/intellij-platform-explorer
[jb:my-tokens]: https://plugins.jetbrains.com/author/me/tokens
[jb:paid-plugins]: https://plugins.jetbrains.com/docs/marketplace/paid-plugins-marketplace.html
[jb:qodana]: https://www.jetbrains.com/help/qodana
[jb:qodana-github-action]: https://www.jetbrains.com/help/qodana/qodana-intellij-github-action.html
[jb:quality-guidelines]: https://plugins.jetbrains.com/docs/marketplace/quality-guidelines.html
[jb:slack]: https://plugins.jetbrains.com/slack
[jb:twitter]: https://twitter.com/JBPlatform
[jb:ui-guidelines]: https://jetbrains.github.io/ui
[keep-a-changelog]: https://keepachangelog.com
[keep-a-changelog-how]: https://keepachangelog.com/en/1.0.0/#how
[codecov]: https://codecov.io
[github-actions-skip-ci]: https://github.blog/changelog/2021-02-08-github-actions-skip-pull-request-and-push-workflows-with-skip-ci/
[gradle]: https://gradle.org
[gradle-releases]: https://gradle.org/releases
[gradle-configuration-cache]: https://docs.gradle.org/current/userguide/configuration_cache.html
[gradle-kotlin-dsl]: https://docs.gradle.org/current/userguide/kotlin_dsl.html
[gradle-lifecycle-tasks]: https://docs.gradle.org/current/userguide/java_plugin.html#lifecycle_tasks
[kotlin-for-plugin-developers]: https://plugins.jetbrains.com/docs/intellij/kotlin.html#adding-kotlin-support
[gradle-releases]: https://gradle.org/releases
[keep-a-changelog]: https://keepachangelog.com
[keep-a-changelog-how]: https://keepachangelog.com/en/1.0.0/#how
[semver]: https://semver.org
[xpath]: https://www.w3.org/TR/xpath-21/

@ -1,3 +1,4 @@
import org.jetbrains.changelog.Changelog
import org.jetbrains.changelog.markdownToHTML
fun properties(key: String) = project.findProperty(key).toString()
@ -6,13 +7,15 @@ plugins {
// Java support
id("java")
// Kotlin support
id("org.jetbrains.kotlin.jvm") version "1.7.10"
id("org.jetbrains.kotlin.jvm") version "1.7.21"
// Gradle IntelliJ Plugin
id("org.jetbrains.intellij") version "1.8.0"
id("org.jetbrains.intellij") version "1.10.0"
// Gradle Changelog Plugin
id("org.jetbrains.changelog") version "1.3.1"
id("org.jetbrains.changelog") version "2.0.0"
// Gradle Qodana Plugin
id("org.jetbrains.qodana") version "0.1.13"
// Gradle Kover Plugin
id("org.jetbrains.kotlinx.kover") version "0.6.1"
}
group = properties("pluginGroup")
@ -23,11 +26,9 @@ repositories {
mavenCentral()
}
// Set the JVM language level used to compile sources and generate files - Java 11 is required since 2020.3
// Set the JVM language level used to build project. Use Java 11 for 2020.3+, and Java 17 for 2022.2+.
kotlin {
jvmToolchain {
languageVersion.set(JavaLanguageVersion.of(11))
}
jvmToolchain(11)
}
// Configure Gradle IntelliJ Plugin - read more: https://plugins.jetbrains.com/docs/intellij/tools-gradle-intellij-plugin.html
@ -42,18 +43,23 @@ intellij {
// Configure Gradle Changelog Plugin - read more: https://github.com/JetBrains/gradle-changelog-plugin
changelog {
version.set(properties("pluginVersion"))
groups.set(emptyList())
repositoryUrl.set(properties("pluginRepositoryUrl"))
}
// Configure Gradle Qodana Plugin - read more: https://github.com/JetBrains/gradle-qodana-plugin
qodana {
cachePath.set(projectDir.resolve(".qodana").canonicalPath)
reportPath.set(projectDir.resolve("build/reports/inspections").canonicalPath)
cachePath.set(file(".qodana").canonicalPath)
reportPath.set(file("build/reports/inspections").canonicalPath)
saveReport.set(true)
showReport.set(System.getenv("QODANA_SHOW_REPORT")?.toBoolean() ?: false)
}
// Configure Gradle Kover Plugin - read more: https://github.com/Kotlin/kotlinx-kover#configuration
kover.xmlReport {
onCheck.set(true)
}
tasks {
wrapper {
gradleVersion = properties("gradleVersion")
@ -66,7 +72,7 @@ tasks {
// Extract the <!-- Plugin description --> section from README.md and provide for the plugin's manifest
pluginDescription.set(
projectDir.resolve("README.md").readText().lines().run {
file("README.md").readText().lines().run {
val start = "<!-- Plugin description -->"
val end = "<!-- Plugin description end -->"
@ -74,14 +80,17 @@ tasks {
throw GradleException("Plugin description section not found in README.md:\n$start ... $end")
}
subList(indexOf(start) + 1, indexOf(end))
}.joinToString("\n").run { markdownToHTML(this) }
}.joinToString("\n").let { markdownToHTML(it) }
)
// Get the latest available change notes from the changelog file
changeNotes.set(provider {
changelog.run {
getOrNull(properties("pluginVersion")) ?: getLatest()
}.toHTML()
with(changelog) {
renderItem(
getOrNull(properties("pluginVersion")) ?: getLatest(),
Changelog.OutputType.HTML,
)
}
})
}

@ -2,14 +2,15 @@
pluginGroup = org.jetbrains.plugins.template
pluginName = IntelliJ Platform Plugin Template
pluginRepositoryUrl = https://github.com/JetBrains/intellij-platform-plugin-template
# SemVer format -> https://semver.org
pluginVersion = 1.2.0
pluginVersion = 1.3.0
# Supported build number ranges and IntelliJ Platform versions -> https://plugins.jetbrains.com/docs/intellij/build-number-ranges.html
pluginSinceBuild = 213
pluginUntilBuild = 222.*
pluginUntilBuild = 223.*
# IntelliJ Platform Properties -> https://plugins.jetbrains.com/docs/intellij/tools-gradle-intellij-plugin.html#intellij-extension
# IntelliJ Platform Properties -> https://plugins.jetbrains.com/docs/intellij/tools-gradle-intellij-plugin.html#configuration-intellij-extension
platformType = IC
platformVersion = 2021.3.3
@ -23,3 +24,6 @@ gradleVersion = 7.5.1
# Opt-out flag for bundling Kotlin standard library -> https://plugins.jetbrains.com/docs/intellij/kotlin.html#kotlin-standard-library
# suppress inspection "UnusedProperty"
kotlin.stdlib.default.dependency = false
# Enable Gradle Configuration Cache -> https://docs.gradle.org/current/userguide/configuration_cache.html
org.gradle.unsafe.configuration-cache = true

@ -11,4 +11,9 @@ class MyProjectService(project: Project) {
System.getenv("CI")
?: TODO("Don't forget to remove all non-needed sample code files with their corresponding registration entries in `plugin.xml`.")
}
/**
* Chosen by fair dice roll, guaranteed to be random.
*/
fun getRandomNumber() = 4
}

@ -1,7 +1,7 @@
<!-- Plugin Configuration File. Read more: https://plugins.jetbrains.com/docs/intellij/plugin-configuration-file.html -->
<idea-plugin>
<id>org.jetbrains.plugins.template</id>
<name>Template</name>
<name>IntelliJ Platform Plugin Template</name>
<vendor>JetBrains</vendor>
<depends>com.intellij.modules.platform</depends>

@ -1,10 +1,12 @@
package org.jetbrains.plugins.template
import com.intellij.ide.highlighter.XmlFileType
import com.intellij.openapi.components.service
import com.intellij.psi.xml.XmlFile
import com.intellij.testFramework.TestDataPath
import com.intellij.testFramework.fixtures.BasePlatformTestCase
import com.intellij.util.PsiErrorElementUtil
import org.jetbrains.plugins.template.services.MyProjectService
@TestDataPath("\$CONTENT_ROOT/src/test/testData")
class MyPluginTest : BasePlatformTestCase() {
@ -23,9 +25,15 @@ class MyPluginTest : BasePlatformTestCase() {
}
}
override fun getTestDataPath() = "src/test/testData/rename"
fun testRename() {
myFixture.testRename("foo.xml", "foo_after.xml", "a2")
}
fun testProjectService() {
val projectService = project.service<MyProjectService>()
assertEquals(4, projectService.getRandomNumber())
}
override fun getTestDataPath() = "src/test/testData/rename"
}

Loading…
Cancel
Save