Я работаю над миграцией проекта Scala Play, и из-за множества накопленных последствий становится сложной задачей выяснить доступные неявные переменные и их типы в разных точках кода, например, в контроллере Play Action
и прямо перед делегированием в представление, т.е.
@Singleton
class Application @Inject() (implicit
val verifier: RecaptchaVerifier,
config: Configuration,
env: Environment,
mat: Materializer,
indexView: views.html.index,
restrictedView: views.html.restricted,
profileView: views.html.profile,
loginView: views.html.login,
restrictedForbidCookieView: views.html.restricted_forbid_cookie,
reloginView: views.html.relogin,
googleAuthenticationView: views.html.google_authentication,
signupView: views.html.signup,
widgetHelper: WidgetHelper,
webJarUtil: WebJarsUtil,
deadbolt: DeadboltActions,
auth: PlayAuthenticate,
userService: UserService,
authProvider: MyAuthProvider,
formContext: FormContext,
googleAuthService: GoogleAuthService,
recaptchaWidget: recaptcha.recaptchaWidget) extends InjectedController with I18nSupport {
import scala.concurrent._
import ExecutionContext.Implicits.global
//-------------------------------------------------------------------
// public
//-------------------------------------------------------------------
def index =
TryCookieAuthAction { implicit jContext =>
deadbolt.WithAuthRequest()() { implicit request =>
Future {
implicit val lang = request.acceptLanguages.head
Ok(indexView(userService))
}
}
}
Мне известны Идеи Ctrl + Shift + Alt + + для включения неявных подсказок, но, к сожалению, он показывает только неявные аргументы, требуемые функцией, а не доступные импликации.Например, я хотел бы знать, есть ли доступный неявный lang: Lang
и его тип, так как я работаю над смешанным проектом Java и Scala для Play, этот lang
может превратиться в тип play.i18n.Lang
длябывший и play.api.i18n.Lang
для позднего.