1
0
mirror of https://github.com/chylex/IntelliJ-IdeaVim.git synced 2025-05-12 09:34:06 +02:00

Fix LazyVimscriptFunction

This commit is contained in:
filipp 2023-05-06 20:53:05 +03:00
parent 8aeab29303
commit 74237365f1
2 changed files with 8 additions and 2 deletions
annotation-processors/src/main/kotlin/com/intellij/vim/model
vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions

View File

@ -12,7 +12,7 @@ import java.lang.invoke.MethodHandles
import java.lang.invoke.MethodType
open class LazyInstance<T>(private val className: String, private val classLoader: ClassLoader) {
val instance: T by lazy {
open val instance: T by lazy {
val aClass = classLoader.loadClass(className)
val lookup = MethodHandles.privateLookupIn(aClass, MethodHandles.lookup())
val instance = lookup.findConstructor(aClass, MethodType.methodType(Void.TYPE)).invoke()

View File

@ -11,4 +11,10 @@ package com.maddyhome.idea.vim.vimscript.model.functions
import com.intellij.vim.model.LazyInstance
public class LazyVimscriptFunction(public val name: String, className: String, classLoader: ClassLoader):
LazyInstance<FunctionHandler>(className, classLoader)
LazyInstance<FunctionHandler>(className, classLoader) {
override val instance: FunctionHandler by lazy {
val function = super.instance
function.name = name
function
}
}