/* Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 1 8 ĠJetBrains Ġs . r . o . Ġand ĠKotlin ĠProgramming ĠLanguage Ġcontributors . Ċ Ġ* ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe Ġlicense / LICENSE . txt Ġfile . Ċ Ġ*/ Ċ Ċ package Ġorg . jetbrains . kotlin . extensions Ċ Ċ import Ġcom . intellij . openapi . Disposable Ċ import Ġcom . intellij . openapi . application . Application Manager Ċ import Ġcom . intellij . openapi . extensions . Extension Point Ċ import Ġcom . intellij . openapi . extensions . Extension Point Name Ċ Ċ open Ġclass ĠApplication Extension Descriptor < T Ġ: ĠAny >( name : ĠString , Ġprivate Ġval Ġextension Class : ĠClass < T >) Ġ{ ĊĠĠĠ Ġval Ġextension Point Name : ĠExtension Point Name < T > Ġ= ĠExtension Point Name . create ( name ) ĊĊĠĠĠ Ġfun Ġregister Extension Point () Ġ{ ĊĠĠĠĠĠĠĠ ĠApplication Manager . getApplication (). extension Area . register Extension Point ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġextension Point Name . name , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġextension Class . name , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠExtension Point . Kind . INTERFACE ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġregister Extension ( extension : ĠT , Ġdis posable : ĠDis posable ) Ġ{ ĊĠĠĠĠĠĠĠ ĠApplication Manager . getApplication (). extension Area . getExtension Point ( extension Point Name ). register Extension ( extension , Ġdis posable ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Instances (): ĠList < T > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġproject Area Ġ= ĠApplication Manager . getApplication (). extension Area ĊĠĠĠĠĠĠĠ Ġif Ġ(! project Area . has Extension Point ( extension Point Name . name )) Ġreturn ĠlistOf () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġproject Area . getExtension Point ( extension Point Name ). extensions . toList () ĊĠĠĠ Ġ} Ċ } Ċ