package Ġcom . jetbrains . snake charm . lang Ċ Ċ import Ġcom . intellij . lang . annotation . Annotation Holder Ċ import Ġcom . intellij . lang . annotation . Annot ator Ċ import Ġcom . intellij . openapi . project . D umb Aware Ċ import Ġcom . intellij . psi . Psi Element Ċ import Ġcom . jetbrains . python . validation . Py Annot ator Ċ import Ġcom . jetbrains . snake charm . lang . highlighter . S mk Syntax Annot ator Ċ import Ġcom . jetbrains . snake charm . lang . highlighter . S mk W ild cards Annot ator Ċ import Ġcom . jetbrains . snake charm . lang . psi . S mk File Ċ import Ġcom . jetbrains . snake charm . lang . validation . S mk Return Annot ator Ċ import Ġcom . jetbrains . snake charm . lang . validation . S mk SyntaxError Annot ator Ċ Ċ /** Ċ Ġ* Ġ@ author ĠRoman . Ch ern y atch ik Ċ Ġ* Ġ@ date Ġ 2 0 1 9 - 0 1 - 0 9 Ċ Ġ*/ Ċ abstract Ġclass ĠS mk Annot ator Manager Ġ: ĠAnnot ator , ĠD umb Aware Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġmy Holder : ĠAnnotation Holder ? Ġ= Ġnull ĊĊĠĠĠ Ġabstract Ġval Ġannot ators : ĠList < Py Annot ator > ĊĊĠĠĠ Ġoverride Ġfun Ġannotate ( element : ĠPsi Element , Ġholder : ĠAnnotation Holder ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfile Ġ= Ġelement . containing File ĊĠĠĠĠĠĠĠ Ġif Ġ( file Ġis ĠS mk File ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġannot ators . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy Holder Ġ= Ġholder ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . annotate Element ( element , Ġholder ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy Holder Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠS mk Standard Annot ator Manager Ġ: ĠS mk Annot ator Manager () Ġ{ ĊĠĠĠ Ġoverride Ġval Ġannot ators : ĠList < Py Annot ator > Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠS mk Return Annot ator ĊĠĠĠ Ġ) Ċ } Ċ Ċ class ĠS mk D umb Aware Annot ator Manager Ġ: ĠS mk Annot ator Manager (), ĠD umb Aware Ġ{ ĊĠĠĠ Ġoverride Ġval Ġannot ators Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠS mk Syntax Annot ator , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠS mk SyntaxError Annot ator , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠS mk W ild cards Annot ator ĊĠĠĠ Ġ) Ċ } Ċ