diff --git a/build.gradle.kts b/build.gradle.kts
index 51fedd6..79eb4f0 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -16,7 +16,7 @@ repositories {
 
 intellij {
 	type.set("IU")
-	version.set("2024.1.1")
+	version.set("2024.2")
 	updateSinceUntilBuild.set(false)
 	
 	plugins.add("com.intellij.java")
@@ -35,7 +35,7 @@ dependencies {
 }
 
 tasks.patchPluginXml {
-	sinceBuild.set("241")
+	sinceBuild.set("242")
 }
 
 tasks.test {
diff --git a/src/main/kotlin/com/chylex/intellij/keyboardmaster/feature/action/gotoError/GotoNextErrorInOtherModeAction.kt b/src/main/kotlin/com/chylex/intellij/keyboardmaster/feature/action/gotoError/GotoNextErrorInOtherModeAction.kt
index 0548516..e406f15 100644
--- a/src/main/kotlin/com/chylex/intellij/keyboardmaster/feature/action/gotoError/GotoNextErrorInOtherModeAction.kt
+++ b/src/main/kotlin/com/chylex/intellij/keyboardmaster/feature/action/gotoError/GotoNextErrorInOtherModeAction.kt
@@ -2,9 +2,10 @@ package com.chylex.intellij.keyboardmaster.feature.action.gotoError
 
 import com.intellij.codeInsight.CodeInsightActionHandler
 import com.intellij.codeInsight.daemon.impl.actions.GotoNextErrorAction
+import com.intellij.openapi.actionSystem.DataContext
 
 class GotoNextErrorInOtherModeAction : GotoNextErrorAction() {
-	override fun getHandler(): CodeInsightActionHandler {
+	override fun getHandler(dataContext: DataContext): CodeInsightActionHandler {
 		return GotoErrorInOtherModeHandler(forward = true)
 	}
 }
diff --git a/src/main/kotlin/com/chylex/intellij/keyboardmaster/feature/action/gotoError/GotoPreviousErrorInOtherModeAction.kt b/src/main/kotlin/com/chylex/intellij/keyboardmaster/feature/action/gotoError/GotoPreviousErrorInOtherModeAction.kt
index ec540c2..abc2b15 100644
--- a/src/main/kotlin/com/chylex/intellij/keyboardmaster/feature/action/gotoError/GotoPreviousErrorInOtherModeAction.kt
+++ b/src/main/kotlin/com/chylex/intellij/keyboardmaster/feature/action/gotoError/GotoPreviousErrorInOtherModeAction.kt
@@ -2,9 +2,10 @@ package com.chylex.intellij.keyboardmaster.feature.action.gotoError
 
 import com.intellij.codeInsight.CodeInsightActionHandler
 import com.intellij.codeInsight.daemon.impl.actions.GotoPreviousErrorAction
+import com.intellij.openapi.actionSystem.DataContext
 
 class GotoPreviousErrorInOtherModeAction : GotoPreviousErrorAction() {
-	override fun getHandler(): CodeInsightActionHandler {
+	override fun getHandler(dataContext: DataContext): CodeInsightActionHandler {
 		return GotoErrorInOtherModeHandler(forward = false)
 	}
 }
diff --git a/src/main/kotlin/com/chylex/intellij/keyboardmaster/feature/action/gotoType/GotoTypeInFileHandler.kt b/src/main/kotlin/com/chylex/intellij/keyboardmaster/feature/action/gotoType/GotoTypeInFileHandler.kt
index fb187dc..8ecae25 100644
--- a/src/main/kotlin/com/chylex/intellij/keyboardmaster/feature/action/gotoType/GotoTypeInFileHandler.kt
+++ b/src/main/kotlin/com/chylex/intellij/keyboardmaster/feature/action/gotoType/GotoTypeInFileHandler.kt
@@ -52,7 +52,7 @@ class GotoTypeInFileHandler(private val forward: Boolean) : CodeInsightActionHan
 	
 	private companion object {
 		fun getNavigationOffsets(file: PsiFile, searchedOffsetRange: IntRange): IntArray {
-			val structureViewBuilder = LanguageStructureViewBuilder.INSTANCE.getStructureViewBuilder(file)
+			val structureViewBuilder = LanguageStructureViewBuilder.getInstance().getStructureViewBuilder(file)
 			if (structureViewBuilder !is TreeBasedStructureViewBuilder) {
 				return intArrayOf()
 			}
diff --git a/src/main/kotlin/com/chylex/intellij/keyboardmaster/feature/codeCompletion/CodeCompletionPopupConfiguration.kt b/src/main/kotlin/com/chylex/intellij/keyboardmaster/feature/codeCompletion/CodeCompletionPopupConfiguration.kt
index 6aa7118..a517af5 100644
--- a/src/main/kotlin/com/chylex/intellij/keyboardmaster/feature/codeCompletion/CodeCompletionPopupConfiguration.kt
+++ b/src/main/kotlin/com/chylex/intellij/keyboardmaster/feature/codeCompletion/CodeCompletionPopupConfiguration.kt
@@ -1,13 +1,13 @@
 package com.chylex.intellij.keyboardmaster.feature.codeCompletion
 
-import com.intellij.util.containers.IntIntHashMap
+import it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap
 
 object CodeCompletionPopupConfiguration {
 	const val SHORTCUT_NONE = -1
 	const val SHORTCUT_NEXT_PAGE = -2
 	const val SHORTCUT_PREV_PAGE = -3
 	
-	private val charToShortcutMap = IntIntHashMap(16, SHORTCUT_NONE)
+	private val charToShortcutMap = Int2IntOpenHashMap(16).also { it.defaultReturnValue(SHORTCUT_NONE) }
 	private var hintTexts = mutableListOf<String>()
 	
 	val itemShortcutCount
diff --git a/src/main/kotlin/com/chylex/intellij/keyboardmaster/feature/vimNavigation/KeyStrokeNode.kt b/src/main/kotlin/com/chylex/intellij/keyboardmaster/feature/vimNavigation/KeyStrokeNode.kt
index 804815f..50b5e03 100644
--- a/src/main/kotlin/com/chylex/intellij/keyboardmaster/feature/vimNavigation/KeyStrokeNode.kt
+++ b/src/main/kotlin/com/chylex/intellij/keyboardmaster/feature/vimNavigation/KeyStrokeNode.kt
@@ -59,7 +59,7 @@ internal interface KeyStrokeNode<T> {
 		override fun performAction(holder: T, actionEvent: AnActionEvent, keyEvent: KeyEvent) {
 			val action = actionEvent.actionManager.getAction(name) ?: return
 			
-			val dataContext = CustomizedDataContext.create(actionEvent.dataContext) {
+			val dataContext = CustomizedDataContext.withProvider(actionEvent.dataContext) {
 				when {
 					PlatformDataKeys.CONTEXT_COMPONENT.`is`(it) -> holder.component
 					else                                        -> null
diff --git a/src/main/kotlin/com/chylex/intellij/keyboardmaster/feature/vimNavigation/VimNavigationDispatcher.kt b/src/main/kotlin/com/chylex/intellij/keyboardmaster/feature/vimNavigation/VimNavigationDispatcher.kt
index 52c1dd0..3d7def5 100644
--- a/src/main/kotlin/com/chylex/intellij/keyboardmaster/feature/vimNavigation/VimNavigationDispatcher.kt
+++ b/src/main/kotlin/com/chylex/intellij/keyboardmaster/feature/vimNavigation/VimNavigationDispatcher.kt
@@ -28,7 +28,8 @@ import javax.swing.KeyStroke
 
 internal open class VimNavigationDispatcher<T : JComponent>(final override val component: T, private val rootNode: KeyStrokeNode.Parent<VimNavigationDispatcher<T>>) : DumbAwareAction(), ComponentHolder {
 	companion object {
-		private val DISPOSABLE = ApplicationManager.getApplication().getService(PluginDisposableService::class.java)
+		private val DISPOSABLE
+			get() = ApplicationManager.getApplication().getService(PluginDisposableService::class.java)
 		
 		@JvmStatic
 		protected val ENTER_KEY: KeyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0)