package Ġcom . jetbrains . r ider . plugins . unity . quick Doc Ċ Ċ import Ġcom . intellij . lang . documentation . Documentation Provider Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . psi . Psi Element Ċ import Ġcom . intellij . psi . Psi Manager Ċ import Ġcom . intellij . util . io . exists Ċ import Ġcom . jetbrains . r ider . model . rd Unity Model Ċ import Ġcom . jetbrains . r ider . plugins . unity . util . Unity Installation Finder Ċ import Ġcom . jetbrains . r ider . project View . solution Ċ import Ġjava . nio . file . Path Ċ Ċ class ĠUnity Documentation Provider () Ġ: ĠDocumentation Provider Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠgetUrl For ( p 0 : ĠPsi Element ?, Ġp 1 : ĠPsi Element ?): ĠMutable List < String >? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġproject Ġ= Ġp 0 ?. project ĊĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= Ġproject ?. solution ?. rd Unity Model ?. external Doc Context ?. value OrNull ĊĠĠĠĠĠĠĠ Ġif Ġ( context Ġ!= Ġnull Ġ&& Ġ! context . isNull Or Blank ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġarray ListOf ( getUrl For Context ( context , Ġproject )) ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Quick Navigate Info ( p 0 : ĠPsi Element ?, Ġp 1 : ĠPsi Element ?): ĠString ? Ġ= Ġnull ĊĠĠĠ Ġoverride Ġfun Ġget Documentation Element For Lookup Item ( p 0 : ĠPsi Manager ?, Ġp 1 : ĠAny ?, Ġp 2 : ĠPsi Element ?): ĠPsi Element ? Ġ= Ġnull ĊĠĠĠ Ġoverride Ġfun Ġgenerate Doc ( p 0 : ĠPsi Element ?, Ġp 1 : ĠPsi Element ?): ĠString ? Ġ= Ġnull ĊĠĠĠ Ġoverride Ġfun Ġget Documentation Element For Link ( p 0 : ĠPsi Manager ?, Ġp 1 : ĠString ?, Ġp 2 : ĠPsi Element ?): ĠPsi Element ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġfun ĠgetUrl For Context ( context : ĠString , Ġproject : ĠProject ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠWe Ġknow Ġcontext Ġwill Ġbe Ġa Ġfully Ġqualified Ġtype Ġor Ġmethod Ġname , Ġstarting ĊĠĠĠĠĠĠĠ Ġ// Ġwith Ġeither Ġ` UnityEngine .` Ġor Ġ` Unity Editor .` ĊĠĠĠĠĠĠĠ Ġ// ĠTODO : ĠUse Ġthe Ġcurrent Ġversion Ġfor Ġthe Ġfallback Ġonline Ġsearch ĊĠĠĠĠĠĠĠ Ġ// ĠE . g . Ġhttps :// docs . unity 3 d . com / 2 0 1 7 . 4 / Documentation / Script Reference / 3 0 _ search . html ? q = ... ĊĠĠĠĠĠĠĠ Ġval Ġkeyword Ġ= Ġstrip Prefix ( context ) ĊĠĠĠĠĠĠĠ Ġval Ġdocumentation Root Ġ= Ġget Local Documentation Root ( project ) ĊĠĠĠĠĠĠĠ Ġreturn ĠgetFile Uri ( documentation Root , Ġ" Script Reference /$ keyword . html ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: ĠgetFile Uri ( documentation Root , Ġ" Script Reference /${ keyword . replace ('.', Ġ'-') }. html ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġ" https :// docs . unity 3 d . com / Script Reference / 3 0 _ search . html ? q =$ keyword " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġstrip Prefix ( context : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ 1 2 Ġfor Ġ` UnityEngine .` Ġor Ġ` Unity Editor .` ĊĠĠĠĠĠĠĠ Ġreturn Ġcontext . drop ( 1 2 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠgetFile Uri ( documentation Root : ĠPath ?, Ġhtml Path : ĠString ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( documentation Root Ġ== Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġpath Ġ= Ġdocumentation Root . resolve ( html Path ) ĊĠĠĠĠĠĠĠ Ġif Ġ( path . exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġpath . to Uri (). to ASCII String () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Local Documentation Root ( project : Project ): ĠPath ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠUnity Installation Finder . getInstance ( project ). get Documentation Root () ĊĠĠĠ Ġ} Ċ }