package Ġorg . jetbrains . tiny gop l ugin . services Ċ Ċ import Ġcom . go ide . Go Libraries Util Ċ import Ġcom . go ide . project . Go Build Target Settings Ċ import Ġcom . go ide . project . Go Module Settings Ċ import Ġcom . go ide . sdk . Go Sdk Service Ċ import Ġcom . go ide . util . Go Util Ċ import Ġcom . intellij . openapi . application . Application Manager Ċ import Ġcom . intellij . openapi . diagnostic . Logger Ċ import Ġcom . intellij . openapi . module . Module Manager Ċ import Ġcom . intellij . openapi . options . Bound Configurable Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . openapi . ui . Dialog Panel Ċ import Ġcom . intellij . openapi . util . Empty Runnable Ċ import Ġcom . intellij . util . messages . Message Bus Ċ import Ġorg . jetbrains . tiny gop l ugin . configuration . Cached Go Root Invalid ator Ċ import Ġorg . jetbrains . tiny gop l ugin . configuration . Configuration With History Ċ import Ġorg . jetbrains . tiny gop l ugin . configuration . G arbage Collector Ċ import Ġorg . jetbrains . tiny gop l ugin . configuration . Scheduler Ċ import Ġorg . jetbrains . tiny gop l ugin . configuration . Tiny Go Configuration Ċ import Ġorg . jetbrains . tiny gop l ugin . sdk . Tiny Go Sdk Ċ import Ġorg . jetbrains . tiny gop l ugin . ui . Configuration Provider Ċ import Ġorg . jetbrains . tiny gop l ugin . ui . Tiny Go Properties Wrapper Ċ import Ġorg . jetbrains . tiny gop l ugin . ui . generate Settings Panel Ċ Ċ class ĠTiny Go Configuration With Tag Update ( ĊĠĠĠ Ġprivate Ġval Ġsettings : ĠTiny Go Configuration , ĊĠĠĠ Ġproject : ĠProject , ĊĠĠĠ Ġprivate Ġval Ġcallback : Ġ() Ġ-> ĠUnit , Ċ ) Ġ: ĊĠĠĠ ĠTiny Go Configuration Ġby Ġsettings Ġ{ ĊĊĠĠĠ Ġconstructor ( project : ĠProject , Ġcallback : Ġ() Ġ-> ĠUnit ) Ġ: Ġthis ( Configuration With History ( project ), Ġproject , Ġcallback ) ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmodule Settings Ġ= Ġgo Settings ( project ) ĊĠĠĠĠĠĠĠ Ġif Ġ( module Settings Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTiny Go Settings Service . logger . warn (" Could Ġnot Ġfind Ġgo Ġmodule Ġsettings ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuild Settings Ġ= Ġmodule Settings . build Target Settings ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsettings . go Arch Ġ= Ġbuild Settings . arch ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsettings . go OS Ġ= Ġbuild Settings . os ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsettings . go Tags Ġ= Ġbuild Settings . custom Flags . join ToString (" Ġ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġvar Ġsdk : ĠTiny Go Sdk ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġsettings . sdk ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( settings . sdk Ġ!= Ġvalue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsettings . sdk Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġvar Ġtarget Platform : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġsettings . target Platform ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( settings . target Platform Ġ!= Ġvalue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsettings . target Platform Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( value . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsettings . gc Ġ= ĠG arbage Collector . AUTO _ DETECT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsettings . scheduler Ġ= ĠScheduler . AUTO _ DETECT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġvar Ġgc : ĠG arbage Collector ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġsettings . gc ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( settings . gc Ġ!= Ġvalue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsettings . gc Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġvar Ġscheduler : ĠScheduler ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġsettings . scheduler ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( settings . scheduler Ġ!= Ġvalue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsettings . scheduler Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġgo Settings ( project : ĠProject ): ĠGo Module Settings ? Ġ= ĊĠĠĠĠĠĠĠ ĠModule Manager . getInstance ( project ). modules . map NotNull Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit ?. getService ( Go Module Settings :: class . java ) ĊĠĠĠĠĠĠĠ Ġ}. first OrNull () ĊĊĠĠĠ Ġoverride Ġfun Ġmodified ( project : ĠProject ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmodule Settings Ġ= Ġgo Settings ( project ) ĊĠĠĠĠĠĠĠ Ġif Ġ( module Settings Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuild Settings Ġ= Ġmodule Settings . build Target Settings ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( settings . go Arch Ġ!= Ġbuild Settings . arch Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsettings . go OS Ġ!= Ġbuild Settings . os Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsettings . go Tags Ġ!= Ġbuild Settings . custom Flags . join ToString (" Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsettings . modified ( project ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠTiny Go Settings Service ( private Ġval Ġproject : ĠProject ) Ġ: ĊĠĠĠ ĠBound Configurable (" Tiny Go "), ĠConfiguration Provider < Tiny Go Configuration > Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlogger : ĠLogger Ġ= ĠLogger . getInstance ( Tiny Go Settings Service :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġlocal Ġcopy Ġof Ġthe Ġsettings ĊĠĠĠ Ġoverride Ġvar Ġtiny Go Settings : ĠTiny Go Configuration Ġ= ĊĠĠĠĠĠĠĠ ĠTiny Go Configuration With Tag Update ( project , Ġthis :: call Extractor ) ĊĊĠĠĠ Ġprivate Ġval Ġinfo Extractor Ġ= ĠTiny Go Info Extractor ( project ) ĊĠĠĠ Ġprivate Ġval Ġproperties Wrapper Ġ= ĠTiny Go Properties Wrapper ( this ) ĊĊĠĠĠ Ġoverride Ġfun Ġis Modified (): ĠBoolean Ġ= Ġtiny Go Settings . modified ( project ) ĊĊĠĠĠ Ġoverride Ġfun Ġapply () Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . warn (" Apply Ġcalled ") ĊĠĠĠĠĠĠĠ Ġval Ġold Sdk Ġ= ĠTiny Go Configuration . getInstance ( project ). sdk ĊĠĠĠĠĠĠĠ Ġtiny Go Settings . save State ( project ) ĊĠĠĠĠĠĠĠ Ġpropagate Go Flags () ĊĠĠĠĠĠĠĠ Ġupdate Tiny Go Run Configurations () ĊĠĠĠĠĠĠĠ Ġif Ġ( old Sdk Ġ!= Ġtiny Go Settings . sdk ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! project . is Disposed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApplication Manager . getApplication (). assertIs Dispatch Thread () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGo Sdk Service . getInstance ( project ). inc Modification Count () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGo Util . clean Resolve Cache ( project ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGo Libraries Util . update Libraries ( project , ĠEmpty Runnable . getInstance (), Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmessage Bus : ĠMessage Bus Ġ= Ġproject . message Bus ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmodules Ġ= ĠModule Manager . getInstance ( project ). modules ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodules . filter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGo Build Target Settings . DEFAULT Ġ== ĠGo Module Settings . getInstance ( it ). build Target Settings . go Version ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. forEach Ġ{ Ġmessage Bus . sync Publisher ( Go Module Settings . BUILD _ TARGET _ TOPIC ). changed ( it , Ġtrue ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Panel (): ĠDialog Panel Ġ= Ġgenerate Settings Panel ( properties Wrapper , Ġdis posable !! ) ĊĊĠĠĠ Ġprivate Ġfun Ġcall Extractor () Ġ{ ĊĠĠĠĠĠĠĠ Ġinfo Extractor . extract Tiny Go Info ( tiny Go Settings , ĠCached Go Root Invalid ator ( project )) Ġ{ Ġ_, Ġoutput Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . trace ( output ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtiny Go Settings . extract Tiny Go Info ( output ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġupdate Ġall Ġui Ġfields ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperties Wrapper . reset () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġreset () Ġ{ ĊĠĠĠĠĠĠĠ Ġtiny Go Settings Ġ= ĠTiny Go Configuration With Tag Update ( project , Ġthis :: call Extractor ) ĊĠĠĠĠĠĠĠ Ġproperties Wrapper . reset () ĊĠĠĠĠĠĠĠ Ġsuper . reset () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġpropagate Go Flags () Ġ{ ĊĠĠĠĠĠĠĠ Ġpropagate Go Flags ( project , Ġtiny Go Settings ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Tiny Go Run Configurations () Ġ{ ĊĠĠĠĠĠĠĠ Ġupdate Tiny Go Run Configurations ( project , Ġtiny Go Settings ) ĊĠĠĠ Ġ} Ċ } Ċ