diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/api/VimSearchGroupBase.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/api/VimSearchGroupBase.kt index 24f394424..777c51607 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/api/VimSearchGroupBase.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/api/VimSearchGroupBase.kt @@ -29,7 +29,7 @@ import com.maddyhome.idea.vim.regexp.match.VimMatchResult import com.maddyhome.idea.vim.register.RegisterConstants import com.maddyhome.idea.vim.state.mode.inVisualMode import com.maddyhome.idea.vim.vimscript.model.VimLContext -import com.maddyhome.idea.vim.vimscript.model.functions.handlers.SubmatchFunctionHandler +import com.maddyhome.idea.vim.vimscript.model.functions.handlers.stringFunctions.SubmatchFunctionHandler import org.jetbrains.annotations.TestOnly import java.text.NumberFormat import java.text.ParsePosition diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/GetCmdTypeFunctionHandler.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/commandLineFunctions/GetCmdTypeFunctionHandler.kt similarity index 96% rename from vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/GetCmdTypeFunctionHandler.kt rename to vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/commandLineFunctions/GetCmdTypeFunctionHandler.kt index 73487679f..dec27923b 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/GetCmdTypeFunctionHandler.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/commandLineFunctions/GetCmdTypeFunctionHandler.kt @@ -1,12 +1,12 @@ /* - * Copyright 2003-2024 The IdeaVim authors + * Copyright 2003-2025 The IdeaVim authors * * Use of this source code is governed by an MIT-style * license that can be found in the LICENSE.txt file or at * https://opensource.org/licenses/MIT. */ -package com.maddyhome.idea.vim.vimscript.model.functions.handlers +package com.maddyhome.idea.vim.vimscript.model.functions.handlers.commandLineFunctions import com.intellij.vim.annotations.VimscriptFunction import com.maddyhome.idea.vim.api.ExecutionContext diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/ColLineFunctionHandler.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/cursorFunctions/ColLineFunctionHandler.kt similarity index 99% rename from vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/ColLineFunctionHandler.kt rename to vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/cursorFunctions/ColLineFunctionHandler.kt index 46c5a6a39..6db76e347 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/ColLineFunctionHandler.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/cursorFunctions/ColLineFunctionHandler.kt @@ -6,7 +6,7 @@ * https://opensource.org/licenses/MIT. */ -package com.maddyhome.idea.vim.vimscript.model.functions.handlers +package com.maddyhome.idea.vim.vimscript.model.functions.handlers.cursorFunctions import com.intellij.vim.annotations.VimscriptFunction import com.maddyhome.idea.vim.api.ExecutionContext diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/AbsFunctionHandler.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/floatFunctions/AbsFunctionHandler.kt similarity index 95% rename from vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/AbsFunctionHandler.kt rename to vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/floatFunctions/AbsFunctionHandler.kt index aee7a5dfe..9a8e2c058 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/AbsFunctionHandler.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/floatFunctions/AbsFunctionHandler.kt @@ -1,12 +1,12 @@ /* - * Copyright 2003-2023 The IdeaVim authors + * Copyright 2003-2025 The IdeaVim authors * * Use of this source code is governed by an MIT-style * license that can be found in the LICENSE.txt file or at * https://opensource.org/licenses/MIT. */ -package com.maddyhome.idea.vim.vimscript.model.functions.handlers +package com.maddyhome.idea.vim.vimscript.model.functions.handlers.floatFunctions import com.intellij.vim.annotations.VimscriptFunction import com.maddyhome.idea.vim.api.ExecutionContext diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/SinFunctionHandler.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/floatFunctions/SinFunctionHandler.kt similarity index 95% rename from vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/SinFunctionHandler.kt rename to vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/floatFunctions/SinFunctionHandler.kt index 8467863d6..f9f1b723b 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/SinFunctionHandler.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/floatFunctions/SinFunctionHandler.kt @@ -1,12 +1,12 @@ /* - * Copyright 2003-2023 The IdeaVim authors + * Copyright 2003-2025 The IdeaVim authors * * Use of this source code is governed by an MIT-style * license that can be found in the LICENSE.txt file or at * https://opensource.org/licenses/MIT. */ -package com.maddyhome.idea.vim.vimscript.model.functions.handlers +package com.maddyhome.idea.vim.vimscript.model.functions.handlers.floatFunctions import com.intellij.vim.annotations.VimscriptFunction import com.maddyhome.idea.vim.api.ExecutionContext diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/JoinFunctionHandler.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/listFunctions/JoinFunctionHandler.kt similarity index 99% rename from vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/JoinFunctionHandler.kt rename to vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/listFunctions/JoinFunctionHandler.kt index 20296f107..5e08efbaa 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/JoinFunctionHandler.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/listFunctions/JoinFunctionHandler.kt @@ -6,7 +6,7 @@ * https://opensource.org/licenses/MIT. */ -package com.maddyhome.idea.vim.vimscript.model.functions.handlers +package com.maddyhome.idea.vim.vimscript.model.functions.handlers.listFunctions import com.intellij.vim.annotations.VimscriptFunction import com.maddyhome.idea.vim.api.ExecutionContext diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/SplitFunctionHandler.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/listFunctions/SplitFunctionHandler.kt similarity index 99% rename from vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/SplitFunctionHandler.kt rename to vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/listFunctions/SplitFunctionHandler.kt index 125f08326..6b0b65efe 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/SplitFunctionHandler.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/listFunctions/SplitFunctionHandler.kt @@ -6,7 +6,7 @@ * https://opensource.org/licenses/MIT. */ -package com.maddyhome.idea.vim.vimscript.model.functions.handlers +package com.maddyhome.idea.vim.vimscript.model.functions.handlers.listFunctions import com.intellij.vim.annotations.VimscriptFunction import com.maddyhome.idea.vim.api.ExecutionContext diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/EscapeFunctionHandler.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/stringFunctions/EscapeFunctionHandler.kt similarity index 86% rename from vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/EscapeFunctionHandler.kt rename to vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/stringFunctions/EscapeFunctionHandler.kt index 484d0cc35..d687528b5 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/EscapeFunctionHandler.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/stringFunctions/EscapeFunctionHandler.kt @@ -1,4 +1,12 @@ -package com.maddyhome.idea.vim.vimscript.model.functions.handlers +/* + * Copyright 2003-2025 The IdeaVim authors + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE.txt file or at + * https://opensource.org/licenses/MIT. + */ + +package com.maddyhome.idea.vim.vimscript.model.functions.handlers.stringFunctions import com.intellij.vim.annotations.VimscriptFunction import com.maddyhome.idea.vim.api.ExecutionContext @@ -8,6 +16,7 @@ import com.maddyhome.idea.vim.vimscript.model.datatypes.VimDataType import com.maddyhome.idea.vim.vimscript.model.datatypes.VimString import com.maddyhome.idea.vim.vimscript.model.expressions.Expression import com.maddyhome.idea.vim.vimscript.model.functions.FunctionHandler +import kotlin.text.iterator /** * Implementation of Vim's escape() function. @@ -42,4 +51,4 @@ internal class EscapeFunctionHandler : FunctionHandler() { return VimString(result.toString()) } -} \ No newline at end of file +} diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/SubmatchFunctionHandler.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/stringFunctions/SubmatchFunctionHandler.kt similarity index 98% rename from vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/SubmatchFunctionHandler.kt rename to vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/stringFunctions/SubmatchFunctionHandler.kt index 392673379..c308f68a6 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/SubmatchFunctionHandler.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/stringFunctions/SubmatchFunctionHandler.kt @@ -6,7 +6,7 @@ * https://opensource.org/licenses/MIT. */ -package com.maddyhome.idea.vim.vimscript.model.functions.handlers +package com.maddyhome.idea.vim.vimscript.model.functions.handlers.stringFunctions import com.intellij.vim.annotations.VimscriptFunction import com.maddyhome.idea.vim.api.ExecutionContext diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/TolowerFunctionHandler.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/stringFunctions/TolowerFunctionHandler.kt similarity index 98% rename from vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/TolowerFunctionHandler.kt rename to vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/stringFunctions/TolowerFunctionHandler.kt index 29c6233b6..7b371c49c 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/TolowerFunctionHandler.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/stringFunctions/TolowerFunctionHandler.kt @@ -6,7 +6,7 @@ * https://opensource.org/licenses/MIT. */ -package com.maddyhome.idea.vim.vimscript.model.functions.handlers +package com.maddyhome.idea.vim.vimscript.model.functions.handlers.stringFunctions import com.intellij.vim.annotations.VimscriptFunction import com.maddyhome.idea.vim.api.ExecutionContext diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/ToupperFunctionHandler.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/stringFunctions/ToupperFunctionHandler.kt similarity index 98% rename from vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/ToupperFunctionHandler.kt rename to vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/stringFunctions/ToupperFunctionHandler.kt index 207f4eef6..aa24e5fbf 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/ToupperFunctionHandler.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/stringFunctions/ToupperFunctionHandler.kt @@ -6,7 +6,7 @@ * https://opensource.org/licenses/MIT. */ -package com.maddyhome.idea.vim.vimscript.model.functions.handlers +package com.maddyhome.idea.vim.vimscript.model.functions.handlers.stringFunctions import com.intellij.vim.annotations.VimscriptFunction import com.maddyhome.idea.vim.api.ExecutionContext diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/FunctionFunctionHandler.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/varFunctions/FunctionFunctionHandler.kt similarity index 99% rename from vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/FunctionFunctionHandler.kt rename to vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/varFunctions/FunctionFunctionHandler.kt index b5a4cffe7..05064ae2a 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/FunctionFunctionHandler.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/varFunctions/FunctionFunctionHandler.kt @@ -6,7 +6,7 @@ * https://opensource.org/licenses/MIT. */ -package com.maddyhome.idea.vim.vimscript.model.functions.handlers +package com.maddyhome.idea.vim.vimscript.model.functions.handlers.varFunctions import com.intellij.vim.annotations.VimscriptFunction import com.maddyhome.idea.vim.api.ExecutionContext diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/ExistsFunctionHandler.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/variousFunctions/ExistsFunctionHandler.kt similarity index 93% rename from vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/ExistsFunctionHandler.kt rename to vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/variousFunctions/ExistsFunctionHandler.kt index 1be9beac4..d7b9caf90 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/ExistsFunctionHandler.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/functions/handlers/variousFunctions/ExistsFunctionHandler.kt @@ -1,12 +1,12 @@ /* - * Copyright 2003-2023 The IdeaVim authors + * Copyright 2003-2025 The IdeaVim authors * * Use of this source code is governed by an MIT-style * license that can be found in the LICENSE.txt file or at * https://opensource.org/licenses/MIT. */ -package com.maddyhome.idea.vim.vimscript.model.functions.handlers +package com.maddyhome.idea.vim.vimscript.model.functions.handlers.variousFunctions import com.intellij.vim.annotations.VimscriptFunction import com.maddyhome.idea.vim.api.ExecutionContext @@ -45,6 +45,6 @@ internal class ExistsFunctionHandler : FunctionHandler() { else -> throw ExException("exists function is not fully implemented") } - return if (result) VimInt.ONE else VimInt.ZERO + return if (result) VimInt.Companion.ONE else VimInt.Companion.ZERO } } diff --git a/vim-engine/src/main/resources/ksp-generated/engine_vimscript_functions.json b/vim-engine/src/main/resources/ksp-generated/engine_vimscript_functions.json index 2d6fa03e7..dc0121730 100644 --- a/vim-engine/src/main/resources/ksp-generated/engine_vimscript_functions.json +++ b/vim-engine/src/main/resources/ksp-generated/engine_vimscript_functions.json @@ -1,23 +1,23 @@ { - "abs": "com.maddyhome.idea.vim.vimscript.model.functions.handlers.AbsFunctionHandler", + "abs": "com.maddyhome.idea.vim.vimscript.model.functions.handlers.floatFunctions.AbsFunctionHandler", "and": "com.maddyhome.idea.vim.vimscript.model.functions.handlers.bitwiseFunctions.AndFunctionHandler", - "col": "com.maddyhome.idea.vim.vimscript.model.functions.handlers.ColFunctionHandler", + "col": "com.maddyhome.idea.vim.vimscript.model.functions.handlers.cursorFunctions.ColFunctionHandler", "empty": "com.maddyhome.idea.vim.vimscript.model.functions.handlers.EmptyFunctionHandler", - "escape": "com.maddyhome.idea.vim.vimscript.model.functions.handlers.EscapeFunctionHandler", - "exists": "com.maddyhome.idea.vim.vimscript.model.functions.handlers.ExistsFunctionHandler", - "funcref": "com.maddyhome.idea.vim.vimscript.model.functions.handlers.FuncrefFunctionHandler", - "function": "com.maddyhome.idea.vim.vimscript.model.functions.handlers.FunctionFunctionHandler", + "escape": "com.maddyhome.idea.vim.vimscript.model.functions.handlers.stringFunctions.EscapeFunctionHandler", + "exists": "com.maddyhome.idea.vim.vimscript.model.functions.handlers.variousFunctions.ExistsFunctionHandler", + "funcref": "com.maddyhome.idea.vim.vimscript.model.functions.handlers.varFunctions.FuncrefFunctionHandler", + "function": "com.maddyhome.idea.vim.vimscript.model.functions.handlers.varFunctions.FunctionFunctionHandler", "get": "com.maddyhome.idea.vim.vimscript.model.functions.handlers.GetFunctionHandler", - "getcmdtype": "com.maddyhome.idea.vim.vimscript.model.functions.handlers.GetCmdTypeFunctionHandler", + "getcmdtype": "com.maddyhome.idea.vim.vimscript.model.functions.handlers.commandLineFunctions.GetCmdTypeFunctionHandler", "invert": "com.maddyhome.idea.vim.vimscript.model.functions.handlers.bitwiseFunctions.InvertFunctionHandler", - "join": "com.maddyhome.idea.vim.vimscript.model.functions.handlers.JoinFunctionHandler", + "join": "com.maddyhome.idea.vim.vimscript.model.functions.handlers.listFunctions.JoinFunctionHandler", "len": "com.maddyhome.idea.vim.vimscript.model.functions.handlers.LenFunctionHandler", - "line": "com.maddyhome.idea.vim.vimscript.model.functions.handlers.LineFunctionHandler", + "line": "com.maddyhome.idea.vim.vimscript.model.functions.handlers.cursorFunctions.LineFunctionHandler", "or": "com.maddyhome.idea.vim.vimscript.model.functions.handlers.bitwiseFunctions.OrFunctionHandler", - "sin": "com.maddyhome.idea.vim.vimscript.model.functions.handlers.SinFunctionHandler", - "split": "com.maddyhome.idea.vim.vimscript.model.functions.handlers.SplitFunctionHandler", - "submatch": "com.maddyhome.idea.vim.vimscript.model.functions.handlers.SubmatchFunctionHandler", - "tolower": "com.maddyhome.idea.vim.vimscript.model.functions.handlers.TolowerFunctionHandler", - "toupper": "com.maddyhome.idea.vim.vimscript.model.functions.handlers.ToupperFunctionHandler", + "sin": "com.maddyhome.idea.vim.vimscript.model.functions.handlers.floatFunctions.SinFunctionHandler", + "split": "com.maddyhome.idea.vim.vimscript.model.functions.handlers.listFunctions.SplitFunctionHandler", + "submatch": "com.maddyhome.idea.vim.vimscript.model.functions.handlers.stringFunctions.SubmatchFunctionHandler", + "tolower": "com.maddyhome.idea.vim.vimscript.model.functions.handlers.stringFunctions.TolowerFunctionHandler", + "toupper": "com.maddyhome.idea.vim.vimscript.model.functions.handlers.stringFunctions.ToupperFunctionHandler", "xor": "com.maddyhome.idea.vim.vimscript.model.functions.handlers.bitwiseFunctions.XorFunctionHandler" } \ No newline at end of file