Created
August 7, 2025 10:48
-
-
Save ileasile/9adc9cce05caf8fdf4f0d34829bca94e to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "cells" : [ { | |
| "cell_type" : "code", | |
| "metadata" : { | |
| "collapsed" : true, | |
| "ExecuteTime" : { | |
| "end_time" : "2025-08-07T10:45:32.912247Z", | |
| "start_time" : "2025-08-07T10:45:04.821098Z" | |
| } | |
| }, | |
| "source" : [ "%useLatestDescriptors\n", "%use intellij-platform\n", "%use kraphviz" ], | |
| "id" : "3c6eaa088a894984", | |
| "outputs" : [ { | |
| "data" : { | |
| "text/plain" : [ "IntelliJ Platform integration is loaded" ] | |
| }, | |
| "metadata" : { }, | |
| "output_type" : "display_data", | |
| "jetTransient" : { | |
| "display_id" : null | |
| } | |
| } ], | |
| "execution_count" : 1 | |
| }, { | |
| "metadata" : { | |
| "ExecuteTime" : { | |
| "end_time" : "2025-08-07T10:45:33.554169Z", | |
| "start_time" : "2025-08-07T10:45:32.950902Z" | |
| } | |
| }, | |
| "cell_type" : "code", | |
| "source" : [ "import guru.nidi.graphviz.model.Factory.mutGraph\n", "import guru.nidi.graphviz.model.Factory.mutNode\n", "import guru.nidi.graphviz.model.MutableGraph\n", "import guru.nidi.graphviz.model.MutableNode\n", "\n", "fun <T> createGraph(\n", " nodes: Collection<T>,\n", " getParents: (T) -> Collection<T>,\n", " getLabel: (Int, T) -> String = { index, _ -> index.toString() }\n", "): Graphviz {\n", " val nodeToIndex = nodes.withIndex().associate { it.value to it.index }\n", "\n", " val nodeMap = buildMap<Int, MutableNode> {\n", " for ((index, node) in nodes.withIndex()) {\n", " val label = getLabel(index, node)\n", " put(index, mutNode(label))\n", " }\n", " }\n", "\n", " for ((childIndex, child) in nodes.withIndex()) {\n", " for (parent in getParents(child)) {\n", " val parentIndex = nodeToIndex[parent]\n", " if (parentIndex != null) {\n", " nodeMap[childIndex]?.addLink(nodeMap[parentIndex]!!)\n", " }\n", " }\n", " }\n", "\n", " val graph = mutGraph(\"G\").setDirected(true).apply {\n", " for (node in nodeMap.values) {\n", " add(node)\n", " }\n", " }\n", "\n", " return Graphviz.fromGraph(graph)\n", "}" ], | |
| "id" : "f592de196dfa25fe", | |
| "outputs" : [ ], | |
| "execution_count" : 2 | |
| }, { | |
| "metadata" : { | |
| "ExecuteTime" : { | |
| "end_time" : "2025-08-07T10:45:33.694377Z", | |
| "start_time" : "2025-08-07T10:45:33.565685Z" | |
| } | |
| }, | |
| "cell_type" : "code", | |
| "source" : [ "import com.intellij.ide.plugins.cl.PluginClassLoader\n", "\n", "fun getParents(classLoader: ClassLoader): List<ClassLoader> {\n", " val allParents = when {\n", " classLoader is PluginClassLoader -> classLoader.getAllParentsClassLoaders().toList()\n", " else -> generateSequence(classLoader.parent) { it.parent }.toList()\n", " }\n", "\n", " return allParents//.filterNot { it === classLoader }\n", "}" ], | |
| "id" : "b6fc58ca4b62b9bc", | |
| "outputs" : [ ], | |
| "execution_count" : 3 | |
| }, { | |
| "metadata" : { | |
| "ExecuteTime" : { | |
| "end_time" : "2025-08-07T10:45:33.842668Z", | |
| "start_time" : "2025-08-07T10:45:33.731193Z" | |
| } | |
| }, | |
| "cell_type" : "code", | |
| "source" : [ "import com.intellij.openapi.extensions.PluginId\n", "\n", "val propPlugin = pluginManager.findEnabledPlugin(PluginId.getId(\"com.intellij.properties\"))" ], | |
| "id" : "91d9f399bd036dd6", | |
| "outputs" : [ ], | |
| "execution_count" : 4 | |
| }, { | |
| "metadata" : { | |
| "ExecuteTime" : { | |
| "end_time" : "2025-08-07T10:45:34.004424Z", | |
| "start_time" : "2025-08-07T10:45:33.847544Z" | |
| } | |
| }, | |
| "cell_type" : "code", | |
| "source" : [ "import com.intellij.ide.plugins.PluginMainDescriptor\n", "\n", "val classLoaders = propPlugin.let { plugin ->\n", " plugin as PluginMainDescriptor\n", " plugin.content.modules\n", " .map { it.descriptor.classLoader } + listOf(plugin.classLoader)\n", "}\n", "\n", "val allClassLoaders = classLoaders.flatMap { getParents(it) + it }.distinct()" ], | |
| "id" : "d44daf643fb9de60", | |
| "outputs" : [ ], | |
| "execution_count" : 5 | |
| }, { | |
| "metadata" : { | |
| "ExecuteTime" : { | |
| "end_time" : "2025-08-07T10:45:55.128002Z", | |
| "start_time" : "2025-08-07T10:45:47.503032Z" | |
| } | |
| }, | |
| "cell_type" : "code", | |
| "source" : "createGraph(allClassLoaders, ::getParents)", | |
| "id" : "ae79c4a3321e19fa", | |
| "outputs" : [ { | |
| "data" : { | |
| "image/svg+xml" : "<svg width=\"945px\" height=\"476px\"\n viewBox=\"0.00 0.00 945.00 476.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0.0) translate(4.0 472.0)\">\n<title>G</title>\n<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-472 941,-472 941,4 -4,4\"/>\n<!-- 0 -->\n<g id=\"node1\" class=\"node\">\n<title>0</title>\n<ellipse fill=\"none\" stroke=\"black\" cx=\"265\" cy=\"-90\" rx=\"27\" ry=\"18\"/>\n<text text-anchor=\"middle\" x=\"265\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n</g>\n<!-- 3 -->\n<g id=\"node2\" class=\"node\">\n<title>3</title>\n<ellipse fill=\"none\" stroke=\"black\" cx=\"434\" cy=\"-18\" rx=\"27\" ry=\"18\"/>\n<text text-anchor=\"middle\" x=\"434\" y=\"-13.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n</g>\n<!-- 0->3 -->\n<g id=\"edge1\" class=\"edge\">\n<title>0->3</title>\n<path fill=\"none\" stroke=\"black\" d=\"M287.56,-79.65C293.55,-77.16 300.02,-74.48 306,-72 338.71,-58.45 376.12,-42.96 402.01,-32.24\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"403.44,-35.44 411.34,-28.38 400.76,-28.97 403.44,-35.44\"/>\n</g>\n<!-- 1 -->\n<g id=\"node3\" class=\"node\">\n<title>1</title>\n<ellipse fill=\"none\" stroke=\"black\" cx=\"27\" cy=\"-90\" rx=\"27\" ry=\"18\"/>\n<text text-anchor=\"middle\" x=\"27\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n</g>\n<!-- 1->3 -->\n<g id=\"edge3\" class=\"edge\">\n<title>1->3</title>\n<path fill=\"none\" stroke=\"black\" d=\"M50.93,-81.34C61.59,-78.13 74.34,-74.56 86,-72 198.53,-47.33 334.03,-30.25 397.65,-22.96\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"398.05,-26.44 407.59,-21.84 397.26,-19.49 398.05,-26.44\"/>\n</g>\n<!-- 1->1 -->\n<g id=\"edge2\" class=\"edge\">\n<title>1->1</title>\n<path fill=\"none\" stroke=\"black\" d=\"M46.9,-102.43C59.69,-105.68 72,-101.53 72,-90 72,-81.62 65.5,-77.14 57.04,-76.56\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"56.5,-73.1 46.9,-77.57 57.19,-80.07 56.5,-73.1\"/>\n</g>\n<!-- 2 -->\n<g id=\"node4\" class=\"node\">\n<title>2</title>\n<ellipse fill=\"none\" stroke=\"black\" cx=\"193\" cy=\"-90\" rx=\"27\" ry=\"18\"/>\n<text text-anchor=\"middle\" x=\"193\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n</g>\n<!-- 2->3 -->\n<g id=\"edge4\" class=\"edge\">\n<title>2->3</title>\n<path fill=\"none\" stroke=\"black\" d=\"M214.04,-78.26C218.88,-76.01 224.06,-73.79 229,-72 287,-51.02 357.03,-34.77 398.41,-26.07\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"399.21,-29.48 408.29,-24.02 397.78,-22.62 399.21,-29.48\"/>\n</g>\n<!-- 4 -->\n<g id=\"node5\" class=\"node\">\n<title>4</title>\n<ellipse fill=\"none\" stroke=\"black\" cx=\"138\" cy=\"-162\" rx=\"27\" ry=\"18\"/>\n<text text-anchor=\"middle\" x=\"138\" y=\"-157.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n</g>\n<!-- 4->0 -->\n<g id=\"edge5\" class=\"edge\">\n<title>4->0</title>\n<path fill=\"none\" stroke=\"black\" d=\"M158.12,-149.91C178.99,-138.41 211.84,-120.3 235.61,-107.2\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"237.48,-110.16 244.55,-102.27 234.1,-104.03 237.48,-110.16\"/>\n</g>\n<!-- 4->3 -->\n<g id=\"edge8\" class=\"edge\">\n<title>4->3</title>\n<path fill=\"none\" stroke=\"black\" d=\"M136.49,-143.98C135.73,-123.87 137.81,-90.79 157,-72 190.54,-39.16 329.23,-25.78 396.74,-21.13\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"397.19,-24.61 406.94,-20.46 396.73,-17.63 397.19,-24.61\"/>\n</g>\n<!-- 4->1 -->\n<g id=\"edge6\" class=\"edge\">\n<title>4->1</title>\n<path fill=\"none\" stroke=\"black\" d=\"M118.92,-148.97C101.29,-137.85 74.88,-121.19 54.88,-108.58\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"56.53,-105.48 46.2,-103.11 52.8,-111.41 56.53,-105.48\"/>\n</g>\n<!-- 4->2 -->\n<g id=\"edge7\" class=\"edge\">\n<title>4->2</title>\n<path fill=\"none\" stroke=\"black\" d=\"M149.93,-145.81C157.21,-136.55 166.66,-124.52 174.85,-114.09\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"177.66,-116.18 181.09,-106.16 172.16,-111.86 177.66,-116.18\"/>\n</g>\n<!-- 5 -->\n<g id=\"node6\" class=\"node\">\n<title>5</title>\n<ellipse fill=\"none\" stroke=\"black\" cx=\"66\" cy=\"-162\" rx=\"27\" ry=\"18\"/>\n<text text-anchor=\"middle\" x=\"66\" y=\"-157.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n</g>\n<!-- 5->0 -->\n<g id=\"edge9\" class=\"edge\">\n<title>5->0</title>\n<path fill=\"none\" stroke=\"black\" d=\"M87.07,-150.34C91.91,-148.09 97.08,-145.84 102,-144 156.93,-123.4 174.07,-128.6 229,-108 230.84,-107.31 232.72,-106.56 234.61,-105.78\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"236.2,-108.9 243.93,-101.66 233.37,-102.5 236.2,-108.9\"/>\n</g>\n<!-- 5->3 -->\n<g id=\"edge11\" class=\"edge\">\n<title>5->3</title>\n<path fill=\"none\" stroke=\"black\" d=\"M74.11,-144.52C85.12,-123.99 106.83,-89.49 136,-72 179.62,-45.85 327.64,-28.94 397.25,-22.25\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"397.7,-25.73 407.33,-21.3 397.04,-18.76 397.7,-25.73\"/>\n</g>\n<!-- 5->1 -->\n<g id=\"edge10\" class=\"edge\">\n<title>5->1</title>\n<path fill=\"none\" stroke=\"black\" d=\"M56.95,-144.76C52.18,-136.19 46.22,-125.49 40.87,-115.9\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"43.92,-114.18 36,-107.15 37.81,-117.59 43.92,-114.18\"/>\n</g>\n<!-- 6 -->\n<g id=\"node7\" class=\"node\">\n<title>6</title>\n<ellipse fill=\"none\" stroke=\"black\" cx=\"599\" cy=\"-378\" rx=\"27\" ry=\"18\"/>\n<text text-anchor=\"middle\" x=\"599\" y=\"-373.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n</g>\n<!-- 6->0 -->\n<g id=\"edge14\" class=\"edge\">\n<title>6->0</title>\n<path fill=\"none\" stroke=\"black\" d=\"M608.07,-360.87C613.28,-350.65 619.31,-336.96 622,-324 631.86,-276.49 635.42,-254.59 606,-216 531.86,-118.73 374.32,-97.1 302.31,-92.33\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"302.52,-88.83 292.33,-91.74 302.1,-95.82 302.52,-88.83\"/>\n</g>\n<!-- 6->3 -->\n<g id=\"edge21\" class=\"edge\">\n<title>6->3</title>\n<path fill=\"none\" stroke=\"black\" d=\"M621.76,-368.24C664.16,-350.25 751,-304.88 751,-235 751,-235 751,-235 751,-161 751,-39.56 554.83,-21.31 471.13,-19.05\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"471.1,-15.55 461.03,-18.84 470.95,-22.55 471.1,-15.55\"/>\n</g>\n<!-- 7 -->\n<g id=\"node8\" class=\"node\">\n<title>7</title>\n<ellipse fill=\"none\" stroke=\"black\" cx=\"806\" cy=\"-234\" rx=\"27\" ry=\"18\"/>\n<text text-anchor=\"middle\" x=\"806\" y=\"-229.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n</g>\n<!-- 6->7 -->\n<g id=\"edge12\" class=\"edge\">\n<title>6->7</title>\n<path fill=\"none\" stroke=\"black\" d=\"M625.82,-375.04C661.61,-371.1 725.11,-359.27 765,-324 783.45,-307.69 794.14,-281.36 799.95,-261.57\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"803.34,-262.46 802.56,-251.9 796.58,-260.64 803.34,-262.46\"/>\n</g>\n<!-- 8 -->\n<g id=\"node9\" class=\"node\">\n<title>8</title>\n<ellipse fill=\"none\" stroke=\"black\" cx=\"844\" cy=\"-306\" rx=\"27\" ry=\"18\"/>\n<text text-anchor=\"middle\" x=\"844\" y=\"-301.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n</g>\n<!-- 6->8 -->\n<g id=\"edge13\" class=\"edge\">\n<title>6->8</title>\n<path fill=\"none\" stroke=\"black\" d=\"M624.45,-371.58C663.39,-363.03 739.86,-345.18 803,-324 806.14,-322.95 809.38,-321.77 812.61,-320.53\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"814.1,-323.71 822.08,-316.75 811.5,-317.21 814.1,-323.71\"/>\n</g>\n<!-- 9 -->\n<g id=\"node10\" class=\"node\">\n<title>9</title>\n<ellipse fill=\"none\" stroke=\"black\" cx=\"430\" cy=\"-306\" rx=\"27\" ry=\"18\"/>\n<text text-anchor=\"middle\" x=\"430\" y=\"-301.8\" font-family=\"Times,serif\" font-size=\"14.00\">9</text>\n</g>\n<!-- 6->9 -->\n<g id=\"edge15\" class=\"edge\">\n<title>6->9</title>\n<path fill=\"none\" stroke=\"black\" d=\"M576.34,-367.62C550.76,-357.03 507.89,-339.28 471,-324 468.1,-322.8 465.09,-321.55 462.08,-320.3\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"463.13,-316.95 452.56,-316.35 460.45,-323.42 463.13,-316.95\"/>\n</g>\n<!-- 10 -->\n<g id=\"node11\" class=\"node\">\n<title>10</title>\n<ellipse fill=\"none\" stroke=\"black\" cx=\"548\" cy=\"-234\" rx=\"27\" ry=\"18\"/>\n<text text-anchor=\"middle\" x=\"548\" y=\"-229.8\" font-family=\"Times,serif\" font-size=\"14.00\">10</text>\n</g>\n<!-- 6->10 -->\n<g id=\"edge16\" class=\"edge\">\n<title>6->10</title>\n<path fill=\"none\" stroke=\"black\" d=\"M593.05,-360.43C584.31,-336.09 567.9,-290.4 557.48,-261.4\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"560.74,-260.13 554.07,-251.9 554.16,-262.5 560.74,-260.13\"/>\n</g>\n<!-- 11 -->\n<g id=\"node12\" class=\"node\">\n<title>11</title>\n<ellipse fill=\"none\" stroke=\"black\" cx=\"286\" cy=\"-234\" rx=\"27\" ry=\"18\"/>\n<text text-anchor=\"middle\" x=\"286\" y=\"-229.8\" font-family=\"Times,serif\" font-size=\"14.00\">11</text>\n</g>\n<!-- 6->11 -->\n<g id=\"edge17\" class=\"edge\">\n<title>6->11</title>\n<path fill=\"none\" stroke=\"black\" d=\"M572.46,-373.89C532.08,-368.34 453.62,-354.37 394,-324 360.02,-306.69 327.11,-277.15 306.73,-256.89\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"309.07,-254.28 299.56,-249.62 304.09,-259.2 309.07,-254.28\"/>\n</g>\n<!-- 12 -->\n<g id=\"node13\" class=\"node\">\n<title>12</title>\n<ellipse fill=\"none\" stroke=\"black\" cx=\"696\" cy=\"-234\" rx=\"27\" ry=\"18\"/>\n<text text-anchor=\"middle\" x=\"696\" y=\"-229.8\" font-family=\"Times,serif\" font-size=\"14.00\">12</text>\n</g>\n<!-- 6->12 -->\n<g id=\"edge18\" class=\"edge\">\n<title>6->12</title>\n<path fill=\"none\" stroke=\"black\" d=\"M614.88,-363.25C625.92,-353.14 640.48,-338.67 651,-324 665.2,-304.2 677.38,-279.28 685.48,-260.85\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"688.72,-262.18 689.43,-251.6 682.28,-259.42 688.72,-262.18\"/>\n</g>\n<!-- 13 -->\n<g id=\"node14\" class=\"node\">\n<title>13</title>\n<ellipse fill=\"none\" stroke=\"black\" cx=\"362\" cy=\"-162\" rx=\"27\" ry=\"18\"/>\n<text text-anchor=\"middle\" x=\"362\" y=\"-157.8\" font-family=\"Times,serif\" font-size=\"14.00\">13</text>\n</g>\n<!-- 6->13 -->\n<g id=\"edge19\" class=\"edge\">\n<title>6->13</title>\n<path fill=\"none\" stroke=\"black\" d=\"M583.45,-362.96C542.77,-326.23 433.05,-227.15 385.03,-183.8\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"387.38,-181.2 377.61,-177.09 382.68,-186.39 387.38,-181.2\"/>\n</g>\n<!-- 14 -->\n<g id=\"node15\" class=\"node\">\n<title>14</title>\n<ellipse fill=\"none\" stroke=\"black\" cx=\"434\" cy=\"-162\" rx=\"27\" ry=\"18\"/>\n<text text-anchor=\"middle\" x=\"434\" y=\"-157.8\" font-family=\"Times,serif\" font-size=\"14.00\">14</text>\n</g>\n<!-- 6->14 -->\n<g id=\"edge20\" class=\"edge\">\n<title>6->14</title>\n<path fill=\"none\" stroke=\"black\" d=\"M602.95,-359.75C609.22,-327.65 617.57,-258.17 584,-216 552.22,-176.09 522.82,-197.78 475,-180 471.89,-178.85 468.68,-177.6 465.47,-176.32\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"466.59,-173 456.01,-172.48 463.96,-179.49 466.59,-173\"/>\n</g>\n<!-- 7->3 -->\n<g id=\"edge22\" class=\"edge\">\n<title>7->3</title>\n<path fill=\"none\" stroke=\"black\" d=\"M807.22,-215.88C808.56,-182.74 806.32,-109.74 765,-72 722.57,-33.25 548.66,-22.75 471.35,-19.97\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"471.22,-16.46 461.11,-19.63 470.98,-23.46 471.22,-16.46\"/>\n</g>\n<!-- 8->3 -->\n<g id=\"edge24\" class=\"edge\">\n<title>8->3</title>\n<path fill=\"none\" stroke=\"black\" d=\"M846.33,-287.95C851.28,-243.86 857.47,-125.72 791,-72 742.38,-32.71 552.66,-22.47 471.34,-19.86\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"471.16,-16.36 461.06,-19.56 470.95,-23.35 471.16,-16.36\"/>\n</g>\n<!-- 8->7 -->\n<g id=\"edge23\" class=\"edge\">\n<title>8->7</title>\n<path fill=\"none\" stroke=\"black\" d=\"M835.19,-288.76C830.58,-280.28 824.84,-269.71 819.68,-260.2\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"822.61,-258.27 814.77,-251.15 816.46,-261.61 822.61,-258.27\"/>\n</g>\n<!-- 9->0 -->\n<g id=\"edge28\" class=\"edge\">\n<title>9->0</title>\n<path fill=\"none\" stroke=\"black\" d=\"M403.97,-301.19C358.71,-293.97 268.54,-276.78 250,-252 220.46,-212.51 238.52,-151.41 252.77,-116.95\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"256.07,-118.14 256.83,-107.57 249.64,-115.36 256.07,-118.14\"/>\n</g>\n<!-- 9->3 -->\n<g id=\"edge31\" class=\"edge\">\n<title>9->3</title>\n<path fill=\"none\" stroke=\"black\" d=\"M437.14,-288.42C446.85,-264.85 463.74,-220.07 470,-180 477.53,-131.74 459.05,-76.33 445.88,-44.71\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"449,-43.12 441.82,-35.32 442.57,-45.89 449,-43.12\"/>\n</g>\n<!-- 9->10 -->\n<g id=\"edge25\" class=\"edge\">\n<title>9->10</title>\n<path fill=\"none\" stroke=\"black\" d=\"M449.49,-293.44C468.62,-282.09 498,-264.66 519.71,-251.78\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"521.67,-254.69 528.49,-246.58 518.1,-248.67 521.67,-254.69\"/>\n</g>\n<!-- 9->11 -->\n<g id=\"edge26\" class=\"edge\">\n<title>9->11</title>\n<path fill=\"none\" stroke=\"black\" d=\"M408.75,-294.67C384.4,-282.83 344.28,-263.33 316.57,-249.86\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"317.86,-246.6 307.33,-245.37 314.8,-252.89 317.86,-246.6\"/>\n</g>\n<!-- 9->12 -->\n<g id=\"edge27\" class=\"edge\">\n<title>9->12</title>\n<path fill=\"none\" stroke=\"black\" d=\"M455.02,-298.41C502.77,-285.85 606.96,-258.43 661.37,-244.11\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"662.46,-247.45 671.24,-241.52 660.67,-240.68 662.46,-247.45\"/>\n</g>\n<!-- 9->13 -->\n<g id=\"edge29\" class=\"edge\">\n<title>9->13</title>\n<path fill=\"none\" stroke=\"black\" d=\"M409.23,-294.42C393.98,-285.41 374.38,-270.92 365,-252 355.53,-232.89 355.39,-208.54 357.28,-190.14\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"360.77,-190.44 358.57,-180.08 353.83,-189.55 360.77,-190.44\"/>\n</g>\n<!-- 9->14 -->\n<g id=\"edge30\" class=\"edge\">\n<title>9->14</title>\n<path fill=\"none\" stroke=\"black\" d=\"M430.48,-287.87C431.16,-263.67 432.42,-219.21 433.23,-190.39\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"436.73,-190.28 433.52,-180.19 429.74,-190.09 436.73,-190.28\"/>\n</g>\n<!-- 10->3 -->\n<g id=\"edge32\" class=\"edge\">\n<title>10->3</title>\n<path fill=\"none\" stroke=\"black\" d=\"M552.51,-215.79C559.7,-184.36 570.16,-116.78 541,-72 524.99,-47.42 493.99,-33.82 469.46,-26.57\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"470.31,-23.18 459.75,-23.92 468.47,-29.93 470.31,-23.18\"/>\n</g>\n<!-- 11->0 -->\n<g id=\"edge35\" class=\"edge\">\n<title>11->0</title>\n<path fill=\"none\" stroke=\"black\" d=\"M283.47,-215.87C279.89,-191.67 273.31,-147.21 269.05,-118.39\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"272.47,-117.57 267.54,-108.19 265.54,-118.59 272.47,-117.57\"/>\n</g>\n<!-- 11->3 -->\n<g id=\"edge36\" class=\"edge\">\n<title>11->3</title>\n<path fill=\"none\" stroke=\"black\" d=\"M291.99,-216.27C298.92,-197.87 311.28,-167.76 326,-144 347.78,-108.83 357.83,-103.2 385,-72 394,-61.66 404.25,-50.48 413.05,-41.07\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"415.74,-43.32 420.03,-33.63 410.63,-38.53 415.74,-43.32\"/>\n</g>\n<!-- 11->13 -->\n<g id=\"edge33\" class=\"edge\">\n<title>11->13</title>\n<path fill=\"none\" stroke=\"black\" d=\"M301.38,-218.83C312.2,-208.87 326.86,-195.37 339.05,-184.14\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"341.66,-186.49 346.64,-177.14 336.92,-181.34 341.66,-186.49\"/>\n</g>\n<!-- 11->14 -->\n<g id=\"edge34\" class=\"edge\">\n<title>11->14</title>\n<path fill=\"none\" stroke=\"black\" d=\"M307.52,-222.82C332.73,-210.9 374.68,-191.06 403.3,-177.52\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"404.91,-180.63 412.45,-173.19 401.92,-174.3 404.91,-180.63\"/>\n</g>\n<!-- 12->3 -->\n<g id=\"edge40\" class=\"edge\">\n<title>12->3</title>\n<path fill=\"none\" stroke=\"black\" d=\"M686.53,-217.09C666.96,-185.45 619.11,-114.04 562,-72 533.66,-51.14 495.91,-36.81 468.75,-28.36\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"469.49,-24.93 458.91,-25.41 467.48,-31.63 469.49,-24.93\"/>\n</g>\n<!-- 13->0 -->\n<g id=\"edge37\" class=\"edge\">\n<title>13->0</title>\n<path fill=\"none\" stroke=\"black\" d=\"M344.21,-148.16C329.3,-137.41 307.83,-121.91 291,-109.76\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"292.84,-106.77 282.68,-103.76 288.74,-112.45 292.84,-106.77\"/>\n</g>\n<!-- 13->3 -->\n<g id=\"edge38\" class=\"edge\">\n<title>13->3</title>\n<path fill=\"none\" stroke=\"black\" d=\"M370.26,-144.71C382.67,-120.23 406.24,-73.74 420.98,-44.67\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"424.21,-46.04 425.62,-35.54 417.97,-42.87 424.21,-46.04\"/>\n</g>\n<!-- 14->3 -->\n<g id=\"edge39\" class=\"edge\">\n<title>14->3</title>\n<path fill=\"none\" stroke=\"black\" d=\"M434,-143.87C434,-119.67 434,-75.21 434,-46.39\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"437.5,-46.19 434,-36.19 430.5,-46.19 437.5,-46.19\"/>\n</g>\n<!-- 15 -->\n<g id=\"node16\" class=\"node\">\n<title>15</title>\n<ellipse fill=\"none\" stroke=\"black\" cx=\"430\" cy=\"-450\" rx=\"27\" ry=\"18\"/>\n<text text-anchor=\"middle\" x=\"430\" y=\"-445.8\" font-family=\"Times,serif\" font-size=\"14.00\">15</text>\n</g>\n<!-- 15->0 -->\n<g id=\"edge41\" class=\"edge\">\n<title>15->0</title>\n<path fill=\"none\" stroke=\"black\" d=\"M404.08,-444.4C374.63,-438.01 326.59,-423.94 295,-396 267.74,-371.89 268.51,-358.18 256,-324 228.24,-248.15 208.28,-221.51 231,-144 234.09,-133.46 240,-123.02 246.03,-114.24\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"248.93,-116.2 252,-106.06 243.28,-112.07 248.93,-116.2\"/>\n</g>\n<!-- 15->3 -->\n<g id=\"edge53\" class=\"edge\">\n<title>15->3</title>\n<path fill=\"none\" stroke=\"black\" d=\"M456.85,-447.24C534.36,-441.86 757.18,-424.28 824,-396 882.87,-371.08 937,-370.93 937,-307 937,-307 937,-307 937,-161 937,-95.31 879.72,-97.07 819,-72 756.28,-46.11 554.43,-28.18 470.81,-21.69\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"470.99,-18.19 460.75,-20.92 470.46,-25.17 470.99,-18.19\"/>\n</g>\n<!-- 15->1 -->\n<g id=\"edge43\" class=\"edge\">\n<title>15->1</title>\n<path fill=\"none\" stroke=\"black\" d=\"M402.9,-449.69C345.32,-450.09 207.81,-445.33 107,-396 54.74,-370.43 11,-365.18 11,-307 11,-307 11,-307 11,-233 11,-192.74 17.43,-146.47 22.14,-117.98\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"25.61,-118.43 23.84,-107.98 18.71,-117.25 25.61,-118.43\"/>\n</g>\n<!-- 15->5 -->\n<g id=\"edge44\" class=\"edge\">\n<title>15->5</title>\n<path fill=\"none\" stroke=\"black\" d=\"M402.97,-447.52C338.84,-443.47 179.91,-430.15 141,-396 80.13,-342.57 68.32,-239.56 66.27,-190.4\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"69.76,-190.1 65.95,-180.22 62.76,-190.32 69.76,-190.1\"/>\n</g>\n<!-- 15->6 -->\n<g id=\"edge42\" class=\"edge\">\n<title>15->6</title>\n<path fill=\"none\" stroke=\"black\" d=\"M452.44,-439.7C481.94,-427.49 533.94,-405.95 567.4,-392.09\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"568.83,-395.28 576.73,-388.22 566.16,-388.82 568.83,-395.28\"/>\n</g>\n<!-- 15->7 -->\n<g id=\"edge45\" class=\"edge\">\n<title>15->7</title>\n<path fill=\"none\" stroke=\"black\" d=\"M457.35,-448.56C516.29,-446.79 658.83,-438.13 769,-396 823.92,-375 851.93,-375.67 880,-324 887.64,-309.94 887.31,-302.23 880,-288 871.07,-270.61 853.48,-257.65 837.7,-248.9\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"839.18,-245.73 828.69,-244.23 835.96,-251.94 839.18,-245.73\"/>\n</g>\n<!-- 15->8 -->\n<g id=\"edge46\" class=\"edge\">\n<title>15->8</title>\n<path fill=\"none\" stroke=\"black\" d=\"M457.03,-448.38C510.74,-446.26 633.71,-436.93 727,-396 764.05,-379.74 800.08,-349.49 822.15,-328.81\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"824.81,-331.11 829.62,-321.67 819.97,-326.05 824.81,-331.11\"/>\n</g>\n<!-- 15->9 -->\n<g id=\"edge47\" class=\"edge\">\n<title>15->9</title>\n<path fill=\"none\" stroke=\"black\" d=\"M430,-431.87C430,-407.67 430,-363.21 430,-334.39\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"433.5,-334.19 430,-324.19 426.5,-334.19 433.5,-334.19\"/>\n</g>\n<!-- 15->10 -->\n<g id=\"edge48\" class=\"edge\">\n<title>15->10</title>\n<path fill=\"none\" stroke=\"black\" d=\"M438.87,-432.92C459.24,-395.97 509.51,-304.8 534.06,-260.28\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"537.26,-261.72 539.03,-251.27 531.13,-258.34 537.26,-261.72\"/>\n</g>\n<!-- 15->11 -->\n<g id=\"edge49\" class=\"edge\">\n<title>15->11</title>\n<path fill=\"none\" stroke=\"black\" d=\"M410.37,-437.58C395.3,-428.02 374.8,-413.21 361,-396 327.61,-354.36 305.09,-295.42 294,-261.62\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"297.3,-260.44 290.92,-251.98 290.63,-262.57 297.3,-260.44\"/>\n</g>\n<!-- 15->12 -->\n<g id=\"edge50\" class=\"edge\">\n<title>15->12</title>\n<path fill=\"none\" stroke=\"black\" d=\"M457.17,-448.59C499.45,-446.61 581.64,-437.27 635,-396 676.96,-363.54 690.06,-298.71 694.15,-261.99\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"697.63,-262.28 695.11,-251.99 690.67,-261.61 697.63,-262.28\"/>\n</g>\n<!-- 15->13 -->\n<g id=\"edge51\" class=\"edge\">\n<title>15->13</title>\n<path fill=\"none\" stroke=\"black\" d=\"M406.55,-440.47C385.34,-431.84 354.27,-416.79 333,-396 280.17,-344.37 269.09,-323.36 250,-252 245.86,-236.54 241.44,-229.52 250,-216 266.56,-189.85 299.89,-176.35 325.9,-169.54\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"326.91,-172.9 335.82,-167.17 325.28,-166.09 326.91,-172.9\"/>\n</g>\n<!-- 15->14 -->\n<g id=\"edge52\" class=\"edge\">\n<title>15->14</title>\n<path fill=\"none\" stroke=\"black\" d=\"M422.18,-432.68C409.25,-403.75 385.65,-341.48 394,-288 399.5,-252.78 413.21,-213.92 423.05,-189.03\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"426.37,-190.16 426.86,-179.58 419.88,-187.54 426.37,-190.16\"/>\n</g>\n</g>\n</svg>\n" | |
| }, | |
| "execution_count" : 7, | |
| "metadata" : { }, | |
| "output_type" : "execute_result" | |
| } ], | |
| "execution_count" : 7 | |
| }, { | |
| "metadata" : { | |
| "ExecuteTime" : { | |
| "end_time" : "2025-08-07T10:45:59.682678Z", | |
| "start_time" : "2025-08-07T10:45:59.639956Z" | |
| } | |
| }, | |
| "cell_type" : "code", | |
| "source" : "allClassLoaders[1]", | |
| "id" : "d44fea102781f332", | |
| "outputs" : [ { | |
| "data" : { | |
| "text/plain" : [ "PluginClassLoader(plugin=PluginMainDescriptor(name=Properties, id=com.intellij.properties, version=253.20250804.0, package=com.intellij.lang.properties, isBundled=true, path=~/Applications/IntelliJ IDEA Ultimate.app/Contents/plugins/properties), packagePrefix=com.intellij.lang.properties., state=active, parents=ContentModuleDescriptor(moduleName=intellij.properties.psi, loadingRule=EMBEDDED) <- PluginMainDescriptor(name=Properties, id=com.intellij.properties, version=253.20250804.0, package=com.intellij.lang.properties, isBundled=true, path=~/Applications/IntelliJ IDEA Ultimate.app/Contents/plugins/properties), )" ] | |
| }, | |
| "execution_count" : 8, | |
| "metadata" : { }, | |
| "output_type" : "execute_result" | |
| } ], | |
| "execution_count" : 8 | |
| }, { | |
| "metadata" : { | |
| "ExecuteTime" : { | |
| "end_time" : "2025-08-07T10:45:59.860192Z", | |
| "start_time" : "2025-08-07T10:45:59.815300Z" | |
| } | |
| }, | |
| "cell_type" : "code", | |
| "source" : "allClassLoaders[1] === getParents(allClassLoaders[1]).first()", | |
| "id" : "4ef3ef6c03ea71ae", | |
| "outputs" : [ { | |
| "data" : { | |
| "text/plain" : [ "true" ] | |
| }, | |
| "execution_count" : 9, | |
| "metadata" : { }, | |
| "output_type" : "execute_result" | |
| } ], | |
| "execution_count" : 9 | |
| }, { | |
| "metadata" : { }, | |
| "cell_type" : "code", | |
| "outputs" : [ ], | |
| "execution_count" : null, | |
| "source" : "", | |
| "id" : "d73776e65a931b43" | |
| } ], | |
| "metadata" : { | |
| "kernelspec" : { | |
| "display_name" : "Kotlin", | |
| "language" : "kotlin", | |
| "name" : "kotlin" | |
| }, | |
| "language_info" : { | |
| "name" : "kotlin", | |
| "version" : "2.2.20-Beta2", | |
| "mimetype" : "text/x-kotlin", | |
| "file_extension" : ".kt", | |
| "pygments_lexer" : "kotlin", | |
| "codemirror_mode" : "text/x-kotlin", | |
| "nbconvert_exporter" : "" | |
| }, | |
| "ktnbPluginMetadata" : { | |
| "sessionRunMode" : "IDE_PROCESS" | |
| } | |
| }, | |
| "nbformat" : 4, | |
| "nbformat_minor" : 0 | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment