/* Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 1 7 ĠJetBrains Ġs . r . o . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġorg . jetbrains . kotlin . idea . core . script Ċ Ċ import Ġcom . intellij . execution . configurations . CommandLine Tokenizer Ċ import Ġcom . intellij . openapi . external System . model . task . External System TaskId Ċ import Ġcom . intellij . openapi . external System . model . task . External System Task Notification Listener Adapter Ċ import Ġcom . intellij . openapi . external System . model . task . External System Task Type Ċ import Ġcom . intellij . openapi . external System . util . External System Api Util Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . openapi . vfs . Virtual File Ċ import Ġorg . gradle . tool ing . Project Connection Ċ import Ġorg . jetbrains . kotlin . idea . framework . GRAD LE _ SYSTEM _ ID Ċ import Ġorg . jetbrains . kotlin . lexer . Kotlin Lexer Ċ import Ġorg . jetbrains . kotlin . lexer . Kt Tokens Ċ import Ġorg . jetbrains . kotlin . script . Kotlin Script Definition Ċ import Ġorg . jetbrains . plugins . gradle . config . Gradle Settings Listener Adapter Ċ import Ġorg . jetbrains . plugins . gradle . service . execution . Gradle Execution Helper Ċ import Ġorg . jetbrains . plugins . gradle . settings . Distribution Type Ċ import Ġorg . jetbrains . plugins . gradle . settings . Gradle Execution Settings Ċ import Ġorg . jetbrains . plugins . gradle . settings . Gradle Settings Listener Ċ import Ġorg . jetbrains . plugins . gradle . util . Gradle Constants Ċ import Ġjava . io . File Ċ import Ġjava . util .* Ċ import Ġjava . util . concurrent . atomic . Atomic Boolean Ċ import Ġkotlin . script . dependencies . Environment Ċ import Ġkotlin . script . experimental . dependencies . Script Dependencies ĊĊ Ċ class ĠGradle Script Definitions Contributor ( private Ġval Ġproject : ĠProject ): ĠScript Definition Contributor Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġid : ĠString Ġ= Ġ" Gradle ĠKotlin ĠDSL " ĊĠĠĠ Ġprivate Ġval Ġfailed To Load Ġ= ĠAtomic Boolean ( false ) ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġsubscribe To Gradle Setting Changes () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsubscribe To Gradle Setting Changes () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlistener Ġ= Ġobject Ġ: ĠGradle Settings Listener Adapter () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Gradle Vm Options Change ( old Options : ĠString ?, Ġnew Options : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreload () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Gradle Home Change ( old Path : ĠString ?, Ġnew Path : ĠString ?, Ġlinked Project Path : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreload () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Service DirectoryPath Change ( old Path : ĠString ?, Ġnew Path : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreload () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Gradle Distribution Type Change ( current Value : ĠDistribution Type ?, Ġlinked Project Path : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreload () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġproject . message Bus . connect ( project ). subscribe ( Gradle Settings Listener . TOPIC , Ġlistener ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Definitions (): ĠList < Kotlin Script Definition > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdefinitions Ġ= Ġload Definitions () ĊĠĠĠĠĠĠĠ Ġfailed To Load . set ( definitions . isEmpty ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġdefinitions ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠNOTE : Ġcontrol Ġflow Ġhere Ġdepends Ġon Ġsuppress ing Ġexceptions Ġfrom Ġload Gradle Templates Ġcalls ĊĠĠĠ Ġ// ĠTODO : Ġpossibly Ġcombine Ġexceptions Ġfrom Ġevery Ġload Gradle Templates Ġcall , Ġbe Ġmind ful Ġof ĠK T - 1 9 2 7 6 ĊĠĠĠ Ġprivate Ġfun Ġload Definitions (): ĠList < Kotlin Script Definition > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġkotlin Dsl Dependency Selector Ġ= ĠRegex ("^ gradle -( ?: kotlin - dsl | core ). * \\. jar \$ ") ĊĠĠĠĠĠĠĠ Ġval Ġkotlin Dsl Additional Resolver Cp Ġ= Ġ:: kotlin Std lib And Compiler ĊĊĠĠĠĠĠĠĠ Ġ// ĠKotlin Build Script Ġshould Ġbe Ġlast Ġbecause Ġit Ġhas Ġwide Ġscript File Pattern ĊĠĠĠĠĠĠĠ Ġval Ġkotlin Dsl Templates Ġ= Ġload Gradle Templates ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemplate Class Ġ= Ġ" org . gradle . kotlin . dsl . Kotlin Init Script ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdependency Selector Ġ= Ġkotlin Dsl Dependency Selector , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadditional Resolver Classpath Ġ= Ġkotlin Dsl Additional Resolver Cp ĊĊĠĠĠĠĠĠĠ Ġ) Ġ+ Ġload Gradle Templates ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemplate Class Ġ= Ġ" org . gradle . kotlin . dsl . Kotlin Settings Script ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdependency Selector Ġ= Ġkotlin Dsl Dependency Selector , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadditional Resolver Classpath Ġ= Ġkotlin Dsl Additional Resolver Cp ĊĊĠĠĠĠĠĠĠ Ġ) Ġ+ Ġload Gradle Templates ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemplate Class Ġ= Ġ" org . gradle . kotlin . dsl . Kotlin Build Script ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdependency Selector Ġ= Ġkotlin Dsl Dependency Selector , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadditional Resolver Classpath Ġ= Ġkotlin Dsl Additional Resolver Cp ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġif Ġ( kotlin Dsl Templates . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġkotlin Dsl Templates ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġgradle Script Kotlin Legacy Templates Ġ= Ġload Gradle Templates ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtemplate Class Ġ= Ġ" org . gradle . script . lang . kotlin . Kotlin Build Script ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdependency Selector Ġ= ĠRegex ("^ gradle -( ?: script - kotlin | core ). * \\. jar \$ "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadditional Resolver Classpath Ġ= Ġ{ Ġempty List () Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġreturn Ġgradle Script Kotlin Legacy Templates ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠTODO : Ġcheck Ġthis Ġagainst Ġkotlin - dsl Ġbranch Ġthat Ġuses Ġdaemon ĊĠĠĠ Ġprivate Ġfun Ġkotlin Std lib And Compiler ( gradle Lib Dir : ĠFile ): ĠList < File > Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġaddition ally Ġneed Ġcompiler Ġjar Ġto Ġload Ġgradle Ġresolver ĊĠĠĠĠĠĠĠ Ġreturn Ġgradle Lib Dir . list Files Ġ{ Ġfile Ġ-> Ġfile . name . startsWith (" kotlin - compiler - embed d able ") Ġ|| Ġfile . name . startsWith (" kotlin - stdlib ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. first OrNull ()?. let (:: listOf ). or Empty () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġload Gradle Templates ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemplate Class : ĠString , Ġdependency Selector : ĠRegex , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadditional Resolver Classpath : Ġ( gradle Lib Dir : ĠFile ) Ġ-> ĠList < File > ĊĠĠĠ Ġ): ĠList < Kotlin Script Definition > Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Load Gradle Templates ( template Class , Ġdependency Selector , Ġadditional Resolver Classpath ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġcatch Ġ( t : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠTODO : Ġreview Ġexception Ġhandling ĊĠĠĠĠĠĠĠ Ġempty List () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġdo Load Gradle Templates ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemplate Class : ĠString , Ġdependency Selector : ĠRegex , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadditional Resolver Classpath : Ġ( gradle Lib Dir : ĠFile ) Ġ-> ĠList < File > ĊĠĠĠ Ġ): ĠList < Kotlin Script Definition > Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġcreate Environment ( gradle Exe Settings : ĠGradle Execution Settings ): ĠEnvironment Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgradle Jvm Options Ġ= Ġgradle Exe Settings . daemon Vm Options ?. let Ġ{ Ġvm Options Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCommandLine Tokenizer ( vm Options ). toList () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map NotNull Ġ{ Ġit ?. let Ġ{ Ġit Ġas ? ĠString Ġ} Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Not ( String :: isBlank ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. distinct () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġ?: Ġempty List () ĊĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" gradle Home " Ġto Ġgradle Exe Settings . gradle Home ?. let (:: File ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" project Root " Ġto Ġ( project . basePath Ġ?: Ġproject . base Dir . canonical Path )?. let (:: File ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" gradle With Connection " Ġto Ġ{ Ġaction : Ġ( Project Connection ) Ġ-> ĠUnit Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGradle Execution Helper (). execute ( project . basePath !! , Ġnull ) Ġ{ Ġaction ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" gradle Java Home " Ġto Ġgradle Exe Settings . java Home , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" gradle Jvm Options " Ġto Ġgradle Jvm Options , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" get Script Section Tokens " Ġto Ġ:: top Level Section Code Text Tokens ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġgradle Exe Settings Ġ= ĠExternal System Api Util . get Execution Settings < Gradle Execution Settings >( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠExternal System Api Util . to Canonical Path ( project . basePath !! ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGradle Constants . SYSTEM _ ID ) ĊĊĠĠĠĠĠĠĠ Ġval Ġgradle Home Ġ= Ġgradle Exe Settings . gradle Home Ġ?: Ġerror (" Unable Ġto Ġget ĠGradle Ġhome Ġdirectory ") ĊĊĠĠĠĠĠĠĠ Ġval Ġgradle Lib Dir Ġ= ĠFile ( gradle Home , Ġ" lib "). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . take If Ġ{ Ġit . exists () Ġ&& Ġit . isDirectory Ġ} Ġ?: Ġerror (" Invalid ĠGradle Ġlibraries Ġdirectory Ġ$ it ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġtemplate Classpath Ġ= Ġgradle Lib Dir . list Files Ġ{ Ġit Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/* Ġan Ġinference Ġproblem Ġwithout Ġexplicit Ġ' it ', ĠTODO : Ġremove Ġwhen Ġfixed Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdependency Selector . matches ( it . name ) ĊĠĠĠĠĠĠĠ Ġ}. take If Ġ{ Ġit . isNotEmpty () Ġ} ?. asList () Ġ?: Ġerror (" Missing Ġj ars Ġin Ġgradle Ġdirectory ") ĊĊĠĠĠĠĠĠĠ Ġreturn Ġload Definitions From Templates ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( template Class ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtemplate Classpath , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Environment ( gradle Exe Settings ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadditional Resolver Classpath ( gradle Lib Dir ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġreload If N ec cessary () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( failed To Load . compare AndSet ( true , Ġfalse )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreload () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġreload () Ġ{ ĊĠĠĠĠĠĠĠ ĠScript Definitions Manager . getInstance ( project ). reload Definitions By ( this ) ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ class ĠRe load Gradle Templates On Sync Ġ: ĠExternal System Task Notification Listener Adapter () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġon End ( id : ĠExternal System TaskId ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( id . type Ġ== ĠExternal System Task Type . RESOL VE _ PROJECT Ġ&& Ġid . project System Id Ġ== ĠGR AD LE _ SYSTEM _ ID ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġproject Ġ= Ġid . find Project () Ġ?: Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgradle Definitions Contributor Ġ= ĠScript Definition Contributor . find < Gradle Script Definitions Contributor >( project ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgradle Definitions Contributor ?. reload If N ec cessary () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠTop Level Section Tokens Enumerator ( script : ĠCharSequence , Ġidentifier : ĠString ) Ġ: ĠEnumeration < Kotlin Lexer > Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġlexer Ġ= ĠKotlin Lexer (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġstart ( script . replace ( Regex . from Literal ("\ r "), Ġ"")) ĊĠĠĠĠĠĠĠ Ġvar Ġdepth Ġ= Ġ 0 ĊĊĠĠĠĠĠĠĠ Ġloop @ Ġwhile Ġ( token Type Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( token Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠK t Tokens . IDENTIFIER Ġ-> Ġif Ġ( depth Ġ== Ġ 0 Ġ&& Ġtoken Text Ġ== Ġidentifier ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadvance () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġskip WhiteSpace And Comments () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( token Type Ġ== ĠK t Tokens . L BRACE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak @ loop ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠK t Tokens . L BRACE Ġ-> Ġdepth Ġ+= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠK t Tokens . R BRACE Ġ-> Ġdepth Ġ-= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadvance () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġdepth Ġ= Ġ 1 ĊĠĠĠ Ġprivate Ġvar Ġfinished Ġ= Ġfalse ĊĊĠĠĠ Ġoverride Ġfun Ġhas More Elements (): ĠBoolean Ġ= Ġ! finished Ġ&& Ġlexer . token Type Ġ!= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġnext Element (): ĠKotlin Lexer Ġ= Ġlexer . apply Ġ{ ĊĠĠĠĠĠĠĠ Ġadvance () ĊĠĠĠĠĠĠĠ Ġwhen Ġ( token Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠK t Tokens . L BRACE Ġ-> Ġdepth Ġ+= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ ĠK t Tokens . R BRACE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( depth Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinished Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdepth Ġ-= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠKotlin Lexer . skip WhiteSpace And Comments () Ġ{ ĊĠĠĠĠĠĠĠ Ġwhile Ġ( token Type Ġin ĠK t Tokens . WHITE _ SPACE _ OR _ COMMENT _ BIT _ SET ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadvance () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġtop Level Section Code Text Tokens ( script : ĠCharSequence , Ġsection Identifier : ĠString ): ĠSequence < CharSequence > Ġ= ĊĠĠĠĠĠĠĠ ĠTop Level Section Tokens Enumerator ( script , Ġsection Identifier ). as Sequence () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit . token Type Ġ! in ĠK t Tokens . WHITE _ SPACE _ OR _ COMMENT _ BIT _ SET Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . token Sequence Ġ} ĊĊ Ċ private Ġconst Ġval ĠK OT LIN _ BUILD _ FILE _ SUFFIX Ġ= Ġ". gradle . k ts " Ċ Ċ class ĠGradle Script Default Dependencies Provider ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġscript Dependencies Cache : ĠScript Dependencies Cache Ċ ) Ġ: ĠDefault Script Dependencies Provider Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġdefault Dependencies For ( script File : ĠVirtual File ): ĠScript Dependencies ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! script File . name . endsWith ( K OT LIN _ BUILD _ FILE _ SUFFIX )) Ġreturn Ġnull ĊĊĠĠĠĠĠĠĠ Ġreturn Ġpreviously Analy zed Scripts Combined Dependencies (). take Unless Ġ{ Ġit . classpath . isEmpty () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġpreviously Analy zed Scripts Combined Dependencies () Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscript Dependencies Cache . combine Dependencies Ġ{ Ġit . name . endsWith ( K OT LIN _ BUILD _ FILE _ SUFFIX ) Ġ} Ċ } Ċ