mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-02-04 23:39:07 +07:00
138 lines
14 KiB
XML
138 lines
14 KiB
XML
<!-- Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -->
|
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentStyleType="text/css" height="592px" preserveAspectRatio="none" style="width:2126px;height:592px;background:#FFFFFF;" version="1.1" viewBox="0 0 2126 592" width="2126px" zoomAndPan="magnify">
|
|
<style>
|
|
@import url('https://fonts.googleapis.com/css?family=Roboto|Roboto+Mono&display=swap');
|
|
</style>
|
|
<defs>
|
|
<filter height="300%" id="f1xwkxbbskub7s" width="300%" x="-1" y="-1">
|
|
<feGaussianBlur result="blurOut" stdDeviation="2.0"/>
|
|
<feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/>
|
|
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
|
|
<feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/>
|
|
</filter>
|
|
<style type="text/css">@import url('https://fonts.googleapis.com/css?family=Roboto:400,100,100italic,300,300italic,400italic,500,500italic,700,700italic,900,900italic');</style>
|
|
</defs>
|
|
<g>
|
|
<!--cluster PluginContent-->
|
|
<g id="cluster_PluginContent">
|
|
<path d="M211,141.84 L266,141.84 A3.75,3.75 0 0 1 268.5,144.34 L275.5,164.3283 L1802,164.3283 A2.5,2.5 0 0 1 1804.5,166.8283 L1804.5,580.66 A2.5,2.5 0 0 1 1802,583.16 L211,583.16 A2.5,2.5 0 0 1 208.5,580.66 L208.5,144.34 A2.5,2.5 0 0 1 211,141.84 " fill="none" filter="url(#f1xwkxbbskub7s)" style="stroke:#000000;stroke-width:1.5;"/>
|
|
<line style="stroke:#000000;stroke-width:1.5;" x1="208.5" x2="275.5" y1="164.3283" y2="164.3283"/>
|
|
<text fill="#000000" font-family="Roboto" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="54" x="212.5" y="157.3752">content</text>
|
|
</g>
|
|
<!--cluster ModuleDependencies-->
|
|
<g id="cluster_ModuleDependencies">
|
|
<path d="M431,313.7 L529,313.7 A3.75,3.75 0 0 1 531.5,316.2 L538.5,336.1883 L1258,336.1883 A2.5,2.5 0 0 1 1260.5,338.6883 L1260.5,540.66 A2.5,2.5 0 0 1 1258,543.16 L431,543.16 A2.5,2.5 0 0 1 428.5,540.66 L428.5,316.2 A2.5,2.5 0 0 1 431,313.7 " fill="none" filter="url(#f1xwkxbbskub7s)" style="stroke:#000000;stroke-width:1.5;"/>
|
|
<line style="stroke:#000000;stroke-width:1.5;" x1="428.5" x2="538.5" y1="336.1883" y2="336.1883"/>
|
|
<text fill="#000000" font-family="Roboto" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="97" x="432.5" y="329.2352">dependencies</text>
|
|
</g>
|
|
<!--cluster PluginDependencies-->
|
|
<g id="cluster_PluginDependencies">
|
|
<path d="M1847,137.46 L1945,137.46 A3.75,3.75 0 0 1 1947.5,139.96 L1954.5,159.9483 L2114,159.9483 A2.5,2.5 0 0 1 2116.5,162.4483 L2116.5,420.49 A2.5,2.5 0 0 1 2114,422.99 L1847,422.99 A2.5,2.5 0 0 1 1844.5,420.49 L1844.5,139.96 A2.5,2.5 0 0 1 1847,137.46 " fill="none" filter="url(#f1xwkxbbskub7s)" style="stroke:#000000;stroke-width:1.5;"/>
|
|
<line style="stroke:#000000;stroke-width:1.5;" x1="1844.5" x2="1954.5" y1="159.9483" y2="159.9483"/>
|
|
<text fill="#000000" font-family="Roboto" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="97" x="1848.5" y="152.9952">dependencies</text>
|
|
</g>
|
|
<!--entity M-->
|
|
<g id="elem_M">
|
|
<rect fill="#F1F1F1" filter="url(#f1xwkxbbskub7s)" height="36.4883" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="186" x="857.5" y="184.84"/>
|
|
<text fill="#000000" font-family="Roboto" font-size="14" lengthAdjust="spacing" textLength="166" x="867.5" y="208.3752">module name="…" 0…N</text>
|
|
</g>
|
|
<!--entity M_N-->
|
|
<g id="elem_M_N">
|
|
<rect fill="#F1F1F1" filter="url(#f1xwkxbbskub7s)" height="36.4883" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="163" x="241" y="361.07"/>
|
|
<text fill="#000000" font-family="Roboto" font-size="14" lengthAdjust="spacing" textLength="143" x="251" y="384.6052">module name="…" N</text>
|
|
</g>
|
|
<g id="elem_GMN7">
|
|
<path d="M1081,189.84 L1081,199.08 L1043.87,203.08 L1081,207.08 L1081,216.3283 A0,0 0 0 0 1081,216.3283 L1484,216.3283 A0,0 0 0 0 1484,216.3283 L1484,199.84 L1474,189.84 L1081,189.84 A0,0 0 0 0 1081,189.84 " fill="#FAFAFA" filter="url(#f1xwkxbbskub7s)" style="stroke:#181818;stroke-width:0.5;"/>
|
|
<path d="M1474,189.84 L1474,199.84 L1484,199.84 L1474,189.84 " fill="#FAFAFA" style="stroke:#181818;stroke-width:0.5;"/>
|
|
<text fill="#000000" font-family=""Roboto Mono"" font-size="14" lengthAdjust="spacing" textLength="52" x="1087" y="208.3752">content</text>
|
|
<text fill="#000000" font-family="Roboto" font-size="14" lengthAdjust="spacing" textLength="326" x="1143" y="208.3752">is not allowed and is not supported for module.</text>
|
|
</g>
|
|
<g id="elem_GMN17">
|
|
<path d="M1285,477.99 L1285,520.9666 L1780,520.9666 L1780,487.99 L1770,477.99 L1285,477.99 " fill="#FAFAFA" filter="url(#f1xwkxbbskub7s)" style="stroke:#181818;stroke-width:0.5;"/>
|
|
<path d="M1770,477.99 L1770,487.99 L1780,487.99 L1770,477.99 " fill="#FAFAFA" style="stroke:#181818;stroke-width:1.0;"/>
|
|
<text fill="#000000" font-family="Roboto" font-size="14" lengthAdjust="spacing" textLength="267" x="1291" y="496.5252">Module dependency is always optional.</text>
|
|
<text fill="#000000" font-family="Roboto" font-size="14" lengthAdjust="spacing" textLength="474" x="1291" y="513.0134">If the module depends on an unavailable plugin, it will not be loaded.</text>
|
|
</g>
|
|
<g id="elem_MDM">
|
|
<ellipse cx="553.5023" cy="379.3065" fill="#F1F1F1" filter="url(#f1xwkxbbskub7s)" rx="101.0823" ry="22.6165" style="stroke:#181818;stroke-width:0.5;"/>
|
|
<text fill="#000000" font-family="Roboto" font-size="14" lengthAdjust="spacing" textLength="166" x="470.5023" y="382.5975">module name="…" 0…N</text>
|
|
</g>
|
|
<g id="elem_MDP">
|
|
<ellipse cx="553.499" cy="499.4798" fill="#F1F1F1" filter="url(#f1xwkxbbskub7s)" rx="86.399" ry="19.6798" style="stroke:#181818;stroke-width:0.5;"/>
|
|
<text fill="#000000" font-family="Roboto" font-size="14" lengthAdjust="spacing" textLength="133" x="486.999" y="502.7708">plugin id="…" 0…N</text>
|
|
</g>
|
|
<g id="elem_GMN13">
|
|
<path d="M692.5,357.82 L692.5,375.31 L655.06,379.31 L692.5,383.31 L692.5,400.7966 A0,0 0 0 0 692.5,400.7966 L1214.5,400.7966 A0,0 0 0 0 1214.5,400.7966 L1214.5,367.82 L1204.5,357.82 L692.5,357.82 A0,0 0 0 0 692.5,357.82 " fill="#FAFAFA" filter="url(#f1xwkxbbskub7s)" style="stroke:#181818;stroke-width:0.5;"/>
|
|
<path d="M1204.5,357.82 L1204.5,367.82 L1214.5,367.82 L1204.5,357.82 " fill="#FAFAFA" style="stroke:#181818;stroke-width:0.5;"/>
|
|
<text fill="#000000" font-family="Roboto" font-size="14" lengthAdjust="spacing" textLength="501" x="698.5" y="376.3552">The dependency is specified in a module descriptor itself in a new model,</text>
|
|
<text fill="#000000" font-family="Roboto" font-size="14" lengthAdjust="spacing" textLength="248" x="698.5" y="392.8434">not where the module is referenced.</text>
|
|
</g>
|
|
<g id="elem_PDM">
|
|
<ellipse cx="1991.5023" cy="203.0765" fill="#F1F1F1" filter="url(#f1xwkxbbskub7s)" rx="101.0823" ry="22.6165" style="stroke:#181818;stroke-width:0.5;"/>
|
|
<text fill="#000000" font-family="Roboto" font-size="14" lengthAdjust="spacing" textLength="166" x="1908.5023" y="206.3675">module name="…" 0…N</text>
|
|
</g>
|
|
<g id="elem_PDP">
|
|
<ellipse cx="1991.499" cy="379.3098" fill="#F1F1F1" filter="url(#f1xwkxbbskub7s)" rx="86.399" ry="19.6798" style="stroke:#181818;stroke-width:0.5;"/>
|
|
<text fill="#000000" font-family="Roboto" font-size="14" lengthAdjust="spacing" textLength="133" x="1924.999" y="382.6008">plugin id="…" 0…N</text>
|
|
</g>
|
|
<!--entity P-->
|
|
<g id="elem_P">
|
|
<rect fill="#F1F1F1" filter="url(#f1xwkxbbskub7s)" height="36.4883" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="64" x="918.5" y="17.49"/>
|
|
<a href="https://youtrack.jetbrains.com/articles/IJPL-A-31/Plugin-Model" target="_top" title="https://youtrack.jetbrains.com/articles/IJPL-A-31/Plugin-Model" xlink:actuate="onRequest" xlink:href="https://youtrack.jetbrains.com/articles/IJPL-A-31/Plugin-Model" xlink:show="new" xlink:title="https://youtrack.jetbrains.com/articles/IJPL-A-31/Plugin-Model" xlink:type="simple">
|
|
<text fill="#1D1D1D" font-family="Roboto" font-size="14" lengthAdjust="spacing" text-decoration="underline" textLength="44" x="928.5" y="41.0252">plugin</text>
|
|
</a>
|
|
</g>
|
|
<g id="elem_GMN22">
|
|
<path d="M6,6 L6,65.4648 L427,65.4648 L427,16 L417,6 L6,6 " fill="#FAFAFA" filter="url(#f1xwkxbbskub7s)" style="stroke:#181818;stroke-width:0.5;"/>
|
|
<path d="M417,6 L417,16 L427,16 L417,6 " fill="#FAFAFA" style="stroke:#181818;stroke-width:1.0;"/>
|
|
<text fill="#000000" font-family="Roboto" font-size="14" lengthAdjust="spacing" textLength="400" x="12" y="24.5352">Every plugin is a module, but not every module is a plugin.</text>
|
|
<text fill="#000000" font-family="Roboto" font-size="14" lengthAdjust="spacing" textLength="355" x="12" y="41.0234">A plugin is a group of related modules and for now,</text>
|
|
<text fill="#000000" font-family="Roboto" font-size="14" lengthAdjust="spacing" textLength="268" x="12" y="57.5117">it is the only way to distribute modules.</text>
|
|
</g>
|
|
<g id="elem_GMN29">
|
|
<path d="M1774,22.49 L1774,48.9783 L1931,48.9783 L1931,32.49 L1921,22.49 L1774,22.49 " fill="#FAFAFA" filter="url(#f1xwkxbbskub7s)" style="stroke:#181818;stroke-width:0.5;"/>
|
|
<path d="M1921,22.49 L1921,32.49 L1931,32.49 L1921,22.49 " fill="#FAFAFA" style="stroke:#181818;stroke-width:1.0;"/>
|
|
<text fill="#000000" font-family="Roboto" font-size="14" lengthAdjust="spacing" textLength="80" x="1780" y="41.0252">Same as for</text>
|
|
<text fill="#000000" font-family=""Roboto Mono"" font-size="14" lengthAdjust="spacing" textLength="52" x="1864" y="41.0252">module</text>
|
|
</g>
|
|
<!--link M to M_N-->
|
|
<g id="link_M_M_N">
|
|
<path d="M872.48,221.81 C866.07,223.16 859.68,224.48 853.5,225.7 C668.56,262.21 609.49,225.13 435.5,297.7 C398.8,313 362.47,342.07 341.27,360.8 " fill="none" id="M-M_N" style="stroke:#181818;stroke-width:1.0;stroke-dasharray:7.0,7.0;"/>
|
|
<text fill="#000000" font-family="Roboto" font-size="14" lengthAdjust="spacing" textLength="323" x="575.5" y="270.2352">a sibling cannot access classes from each other</text>
|
|
<text fill="#000000" font-family="Roboto" font-size="14" lengthAdjust="spacing" textLength="227" x="625.5" y="286.7234">unless specified as a dependency</text>
|
|
</g>
|
|
<!--link MDM to MDP-->
|
|
<!--link ModuleDependencies to GMN17-->
|
|
<g id="link_ModuleDependencies_GMN17">
|
|
<path d="M1260.5078,383.6898 C1260.6518,383.7505 1260.7974,383.812 1260.9449,383.8743 C1261.2398,383.9988 1261.5419,384.1262 1261.8509,384.2567 C1262.4689,384.5175 1263.1149,384.7902 1263.788,385.0743 C1265.1343,385.6425 1266.5892,386.2566 1268.1462,386.9137 C1271.2602,388.228 1274.7828,389.7147 1278.662,391.3519 C1294.1791,397.9006 1315.4031,406.8575 1339.0163,416.8225 C1386.2425,436.7525 1443.025,460.715 1482.82,477.51 " fill="none" id="ModuleDependencies-GMN17" style="stroke:#181818;stroke-width:1.0;stroke-dasharray:7.0,7.0;"/>
|
|
</g>
|
|
<!--link M to P-->
|
|
<g id="link_M_P">
|
|
<path d="M950.5,184.51 C950.5,154.64 950.5,93.93 950.5,60.36 " fill="none" id="M-to-P" style="stroke:#181818;stroke-width:1.0;stroke-dasharray:7.0,7.0;"/>
|
|
<polygon fill="#181818" points="950.5,55.43,946.5,64.43,950.5,60.43,954.5,64.43,950.5,55.43" style="stroke:#181818;stroke-width:1.0;"/>
|
|
<text fill="#000000" font-family="Roboto" font-size="14" lengthAdjust="spacing" textLength="366" x="951.5" y="109.9952">a module can access classes from a containing plugin</text>
|
|
</g>
|
|
<!--link M to ModuleDependencies-->
|
|
<g id="link_M_ModuleDependencies">
|
|
<path d="M1030.66,221.77 C1103.53,239.41 1203.79,268.08 1231.5,297.7 C1234.5625,300.9738 1237.1912,304.6367 1239.4464,308.5466 C1240.0102,309.5241 1240.5506,310.517 1241.0686,311.5232 C1241.3276,312.0262 1241.581,312.5326 1241.829,313.042 C1241.8909,313.1693 1241.9526,313.2969 1242.0139,313.4246 " fill="none" id="M-ModuleDependencies" style="stroke:#181818;stroke-width:1.0;"/>
|
|
</g>
|
|
<!--link GMN22 to PluginContent-->
|
|
<g id="link_GMN22_PluginContent">
|
|
<path d="M216.5,65.91 C216.5,77.5925 216.5,91.7719 216.5,106.5116 C216.5,113.8814 216.5,121.3913 216.5,128.7993 C216.5,132.5032 216.5,136.1817 216.5,139.8044 C216.5,140.2572 216.5,140.7092 216.5,141.1602 C216.5,141.3858 216.5,141.611 216.5,141.8361 " fill="none" id="GMN22-PluginContent" style="stroke:#181818;stroke-width:1.0;stroke-dasharray:7.0,7.0;"/>
|
|
</g>
|
|
<!--link PDM to PDP-->
|
|
<!--link GMN29 to PluginDependencies-->
|
|
<g id="link_GMN29_PluginDependencies">
|
|
<path d="M1852.5,49.43 C1852.5,58.9575 1852.5,73.0406 1852.5,88.8602 C1852.5,96.7699 1852.5,105.1138 1852.5,113.5394 C1852.5,117.7521 1852.5,121.9853 1852.5,126.1949 C1852.5,128.2997 1852.5,130.3986 1852.5,132.4861 C1852.5,133.5298 1852.5,134.5707 1852.5,135.608 C1852.5,136.1267 1852.5,136.6445 1852.5,137.1613 " fill="none" id="GMN29-PluginDependencies" style="stroke:#181818;stroke-width:1.0;stroke-dasharray:7.0,7.0;"/>
|
|
</g>
|
|
<!--link P to PluginContent-->
|
|
<g id="link_P_PluginContent">
|
|
<path d="M918.46,39.91 C779.55,53.77 235.85,108.74 223.5,121.46 C220.4663,124.585 218.0645,128.1353 216.1863,131.9621 C215.2471,133.8755 214.4389,135.858 213.7479,137.8911 C213.4024,138.9076 213.0862,139.9367 212.7977,140.9762 C212.7256,141.236 212.6552,141.4966 212.5865,141.7577 " fill="none" id="P-PluginContent" style="stroke:#181818;stroke-width:1.0;"/>
|
|
</g>
|
|
<!--link P to PluginDependencies-->
|
|
<g id="link_P_PluginDependencies">
|
|
<path d="M982.95,36.39 C1120.68,35.48 1656.14,37.51 1797.5,121.46 C1815.565,132.19 1829.0325,151.44 1838.1188,168.4387 C1840.3903,172.6884 1842.388,176.7974 1844.1153,180.5974 C1844.2233,180.8349 1844.3302,181.0712 1844.436,181.3062 " fill="none" id="P-PluginDependencies" style="stroke:#181818;stroke-width:1.0;"/>
|
|
</g>
|
|
</g>
|
|
</svg>
|