package Ġcom . jetbrains . snake charm . framework Ċ Ċ import Ġcom . intellij . framework . Framework Type Ċ import Ġcom . intellij . openapi . module . Module Ċ import Ġcom . intellij . openapi . module . Module Type Ċ import Ġcom . jetbrains . python . Python Module Type Base Ċ import Ġcom . jetbrains . python . module . Python Module Type Ċ import Ġcom . jetbrains . snake charm . Sn ak em ake Bundle Ċ Ċ class ĠS mk Framework Type Ġ: ĠFramework Type ( ID ) Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġget Present able Name () Ġ= ĠSn ak em ake Bundle . message (" sm k . framework . display . name ") ĊĠĠĠ Ġoverride Ġfun Ġget Icon () Ġ= ĠS mk Support Project Settings . get Icon () ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠID Ġ= Ġ" S mk Support Framework Type " ĊĊĠĠĠĠĠĠĠ Ġfun Ġis Suit able Module Type ( module : ĠModule ) Ġ= Ġis Suit able Module Type ( Module Type . get ( module )) ĊĊĠĠĠĠĠĠĠ Ġfun Ġis Suit able Module Type ( module Type : ĠModule Type < *> ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠXXX Ġlet 's Ġallow Ġin Ġpython Ġmodules Ġonly , Ġbut Ġactually Ġsome Ġuser Ġcould ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġalso Ġwant Ġthis Ġin Ġother Ġlanguage Ġmodule Ġ+ Ġpython Ġfacet ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ( module Type Ġis ĠPython Module Type Base ) Ġ|| Ġ( module Type ?. id Ġ== ĠPython Module Type . getInstance (). id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }