1
0
mirror of https://github.com/chylex/IntelliJ-IdeaVim.git synced 2025-02-27 17:45:59 +01:00

Pass editor to the message service

This commit is contained in:
Alex Plate 2022-12-01 14:29:54 +02:00
parent ec121fb327
commit dcac3be0da
No known key found for this signature in database
GPG Key ID: 0B97153C8FFEC09F
21 changed files with 71 additions and 85 deletions

View File

@ -189,10 +189,6 @@ public class VimPlugin implements PersistentStateComponent<Element>, Disposable
return ((WindowGroup)VimInjectorKt.getInjector().getWindow());
}
public static @NotNull TabService getTabService() {
return ApplicationManager.getApplication().getService(TabService.class);
}
public static @NotNull EditorGroup getEditor() {
return ApplicationManager.getApplication().getService(EditorGroup.class);
}
@ -293,12 +289,8 @@ public class VimPlugin implements PersistentStateComponent<Element>, Disposable
VimInjectorKt.getInjector().getMessages().clearError();
}
public static void showMode(String msg) {
VimInjectorKt.getInjector().getMessages().showMode(msg);
}
public static void showMessage(@Nls(capitalization = Nls.Capitalization.Sentence) @Nullable String msg) {
VimInjectorKt.getInjector().getMessages().showStatusBarMessage(msg);
VimInjectorKt.getInjector().getMessages().showStatusBarMessage(null, msg);
}
public static @NotNull VimPlugin getInstance() {

View File

@ -12,6 +12,7 @@ import com.intellij.openapi.application.ApplicationManager
import com.intellij.openapi.components.Service
import com.intellij.openapi.project.ProjectManager
import com.intellij.openapi.wm.WindowManager
import com.maddyhome.idea.vim.api.VimEditor
import com.maddyhome.idea.vim.api.VimMessagesBase
import com.maddyhome.idea.vim.api.injector
import com.maddyhome.idea.vim.helper.MessageHelper
@ -27,7 +28,7 @@ class IjVimMessages : VimMessagesBase() {
private var error = false
private var lastBeepTimeMillis = 0L
override fun showStatusBarMessage(message: String?) {
override fun showStatusBarMessage(editor: VimEditor?, message: String?) {
if (ApplicationManager.getApplication().isUnitTestMode) {
this.message = message
}

View File

@ -84,12 +84,12 @@ class RegExp {
*/
// EMSG_M_RET_null("E369: invalid item in %s%%[]", reg_magic == MAGIC_ALL)
private fun EMSG_RET_null(key: String) {
injector.messages.showStatusBarMessage(injector.messages.message(key))
injector.messages.showStatusBarMessage(null, injector.messages.message(key))
}
private fun EMSG_M_RET_null(key: String, isMagic: Boolean) {
val `val` = if (isMagic) "" else "\\"
injector.messages.showStatusBarMessage(injector.messages.message(key, `val`))
injector.messages.showStatusBarMessage(null, injector.messages.message(key, `val`))
}
private fun EMSG_ONE_RET_null() {
@ -155,7 +155,7 @@ class RegExp {
var len: Int
val flags = Flags()
if (expr == null) {
injector.messages.showStatusBarMessage(injector.messages.message(Msg.e_null))
injector.messages.showStatusBarMessage(null, injector.messages.message(Msg.e_null))
return null
}
r = regprog_T()
@ -274,7 +274,7 @@ class RegExp {
if (paren == REG_ZPAREN) {
/* Make a ZOPEN node. */
if (regnzpar >= NSUBEXP) {
injector.messages.showStatusBarMessage(injector.messages.message(Msg.E50))
injector.messages.showStatusBarMessage(null, injector.messages.message(Msg.E50))
return null
}
parno = regnzpar
@ -336,7 +336,7 @@ class RegExp {
/* Check for proper termination. */if (paren != REG_NOPAREN && getchr() != Magic.RPAREN) {
return if (paren == REG_ZPAREN) {
injector.messages.showStatusBarMessage(injector.messages.message(Msg.E52))
injector.messages.showStatusBarMessage(null, injector.messages.message(Msg.E52))
null
} else if (paren == REG_NPAREN) {
EMSG_M_RET_null(Msg.E53, reg_magic == MAGIC_ALL)
@ -350,7 +350,7 @@ class RegExp {
EMSG_M_RET_null(Msg.E55, reg_magic == MAGIC_ALL)
null
} else {
injector.messages.showStatusBarMessage(injector.messages.message(Msg.e_trailing))
injector.messages.showStatusBarMessage(null, injector.messages.message(Msg.e_trailing))
null
}
/* NOTREACHED */
@ -581,11 +581,11 @@ class RegExp {
/* Can't have a multi follow a multi. */
if (peekchr() == Magic.STAR) {
val `val` = if (reg_magic >= MAGIC_ON) "" else "\\"
injector.messages.showStatusBarMessage(injector.messages.message(Msg.E61, `val`))
injector.messages.showStatusBarMessage(null, injector.messages.message(Msg.E61, `val`))
} else {
val `val` = if (reg_magic >= MAGIC_ON) "" else "\\"
injector.messages.showStatusBarMessage(
injector.messages.message(
null, injector.messages.message(
Msg.E62,
`val`,
Character.toString(Magic.no_Magic(peekchr()).toChar())
@ -651,7 +651,7 @@ class RegExp {
}
val i = classchars.indexOf(Magic.no_Magic(c).toChar())
if (i == -1) {
injector.messages.showStatusBarMessage(injector.messages.message(Msg.E63))
injector.messages.showStatusBarMessage(null, injector.messages.message(Msg.E63))
return null
}
ret = regnode(classcodes[i] + extra)
@ -660,7 +660,7 @@ class RegExp {
Magic.DOT, Magic.i, Magic.I, Magic.k, Magic.K, Magic.f, Magic.F, Magic.p, Magic.P, Magic.s, Magic.S, Magic.d, Magic.D, Magic.x, Magic.X, Magic.o, Magic.O, Magic.w, Magic.W, Magic.h, Magic.H, Magic.a, Magic.A, Magic.l, Magic.L, Magic.u, Magic.U -> {
val i = classchars.indexOf(Magic.no_Magic(c).toChar())
if (i == -1) {
injector.messages.showStatusBarMessage(injector.messages.message(Msg.E63))
injector.messages.showStatusBarMessage(null, injector.messages.message(Msg.E63))
return null
}
ret = regnode(classcodes[i] + extra)
@ -689,7 +689,7 @@ class RegExp {
c = Magic.no_Magic(c)
val `val` = if (if (c == '*'.code) reg_magic >= MAGIC_ON else reg_magic == MAGIC_ALL) "" else "\\"
injector.messages.showStatusBarMessage(
injector.messages.message(
null,injector.messages.message(
Msg.E64,
`val`,
Character.toString(c.toChar())
@ -713,7 +713,7 @@ class RegExp {
}
}
} else {
injector.messages.showStatusBarMessage(injector.messages.message(Msg.e_nopresub))
injector.messages.showStatusBarMessage(null, injector.messages.message(Msg.e_nopresub))
return null
}
Magic.N1, Magic.N2, Magic.N3, Magic.N4, Magic.N5, Magic.N6, Magic.N7, Magic.N8, Magic.N9 -> {
@ -747,7 +747,7 @@ class RegExp {
when (c) {
'('.code -> {
if (reg_do_extmatch != REX_SET) {
injector.messages.showStatusBarMessage(injector.messages.message(Msg.E66))
injector.messages.showStatusBarMessage(null, injector.messages.message(Msg.E66))
return null
}
if (one_exactly) {
@ -763,7 +763,7 @@ class RegExp {
}
'1'.code, '2'.code, '3'.code, '4'.code, '5'.code, '6'.code, '7'.code, '8'.code, '9'.code -> {
if (reg_do_extmatch != REX_USE) {
injector.messages.showStatusBarMessage(injector.messages.message(Msg.E67))
injector.messages.showStatusBarMessage(null, injector.messages.message(Msg.E67))
return null
}
ret = regnode(ZREF + c - '0'.code)
@ -772,7 +772,7 @@ class RegExp {
's'.code -> ret = regnode(MOPEN)
'e'.code -> ret = regnode(MCLOSE)
else -> {
injector.messages.showStatusBarMessage(injector.messages.message(Msg.E68))
injector.messages.showStatusBarMessage(null, injector.messages.message(Msg.E68))
return null
}
}
@ -914,7 +914,7 @@ class RegExp {
endc = regparse!!.charAt().code
regparse!!.inc()
if (startc > endc) {
injector.messages.showStatusBarMessage(injector.messages.message(Msg.e_invrange))
injector.messages.showStatusBarMessage(null, injector.messages.message(Msg.e_invrange))
return null
}
while (++startc <= endc) {
@ -1071,7 +1071,7 @@ class RegExp {
regc('\u0000'.code)
prevchr_len = 1 /* last char was the ']' */
if (regparse!!.charAt() != ']') {
injector.messages.showStatusBarMessage(injector.messages.message(Msg.e_toomsbra))
injector.messages.showStatusBarMessage(null, injector.messages.message(Msg.e_toomsbra))
return null
}
skipchr() /* let's be friends with the lexer again */
@ -1408,7 +1408,7 @@ class RegExp {
}
if (regparse!!.charAt() != '}' || maxval == 0 && minval == 0) {
val `val` = if (reg_magic == MAGIC_ALL) "" else "\\"
injector.messages.showStatusBarMessage(injector.messages.message(Msg.synerror, `val`))
injector.messages.showStatusBarMessage(null, injector.messages.message(Msg.synerror, `val`))
return null
}
@ -1524,7 +1524,7 @@ class RegExp {
reg_endpos = reg_mmatch!!.endpos
/* Be paranoid... */if (prog == null) {
injector.messages.showStatusBarMessage(injector.messages.message(Msg.e_null))
injector.messages.showStatusBarMessage(null, injector.messages.message(Msg.e_null))
return false
}
@ -1566,7 +1566,7 @@ class RegExp {
retval = regtry(prog, col)
}
if (out_of_stack) {
injector.messages.showStatusBarMessage(injector.messages.message(Msg.E363))
injector.messages.showStatusBarMessage(null, injector.messages.message(Msg.E363))
}
return retval > 0
}
@ -1595,7 +1595,7 @@ class RegExp {
}
/* Be paranoid... */if (prog == null || line == null) {
injector.messages.showStatusBarMessage(injector.messages.message(Msg.e_null))
injector.messages.showStatusBarMessage(null, injector.messages.message(Msg.e_null))
return retval
}
@ -1666,7 +1666,7 @@ class RegExp {
}
}
if (out_of_stack) {
injector.messages.showStatusBarMessage(injector.messages.message(Msg.E363))
injector.messages.showStatusBarMessage(null, injector.messages.message(Msg.E363))
}
/* Didn't find a match. */
@ -2232,7 +2232,7 @@ class RegExp {
brace_max[no] = scan.OPERAND_MAX()
brace_count[no] = 0
} else {
injector.messages.showStatusBarMessage(injector.messages.message(Msg.e_internal))
injector.messages.showStatusBarMessage(null, injector.messages.message(Msg.e_internal))
return false
}
}
@ -2485,7 +2485,7 @@ class RegExp {
}
END -> return true /* Success! */
else -> {
injector.messages.showStatusBarMessage(injector.messages.message(Msg.e_re_corr))
injector.messages.showStatusBarMessage(null, injector.messages.message(Msg.e_re_corr))
return false
}
}
@ -2496,7 +2496,7 @@ class RegExp {
/*
* We get here only if there's trouble -- normally "case END" is the
* terminating point.
*/injector.messages.showStatusBarMessage(injector.messages.message(Msg.e_re_corr))
*/injector.messages.showStatusBarMessage(null, injector.messages.message(Msg.e_re_corr))
return false
}
@ -2798,7 +2798,7 @@ class RegExp {
break
}
}
else -> injector.messages.showStatusBarMessage(injector.messages.message(Msg.e_re_corr))
else -> injector.messages.showStatusBarMessage(null, injector.messages.message(Msg.e_re_corr))
}
if (mask != 0) {
while (count < maxcount) {
@ -2845,7 +2845,7 @@ class RegExp {
*/
private fun prog_magic_wrong(): Boolean {
if ((if (reg_match == null) reg_mmatch!!.regprog!!.program else reg_match!!.regprog!!.program)[0].code != REGMAGIC) {
injector.messages.showStatusBarMessage(injector.messages.message(Msg.e_re_corr))
injector.messages.showStatusBarMessage(null, injector.messages.message(Msg.e_re_corr))
return true
}
return false
@ -3183,7 +3183,7 @@ class RegExp {
var mode = 0
/* Be paranoid... */if (source == null) {
injector.messages.showStatusBarMessage(injector.messages.message(Msg.e_null))
injector.messages.showStatusBarMessage(null, injector.messages.message(Msg.e_null))
return null
}
if (prog_magic_wrong()) {
@ -3302,7 +3302,7 @@ class RegExp {
break
}
} else if (s!!.isNul) /* we hit '\u0000'. */ {
injector.messages.showStatusBarMessage(injector.messages.message(Msg.e_re_damg))
injector.messages.showStatusBarMessage(null, injector.messages.message(Msg.e_re_damg))
return dst.toString()
} else {
if (backslash && (s.charAt() == '\r' || s.charAt() == '\\')) {

View File

@ -99,7 +99,7 @@ class KeyHandler {
) as VimInt
).value
if (handleKeyRecursionCount >= mapMapDepth) {
injector.messages.showStatusBarMessage(injector.messages.message("E223"))
injector.messages.showStatusBarMessage(editor, injector.messages.message("E223"))
injector.messages.indicateError()
LOG.warn("Key handling, maximum recursion of the key received. maxdepth=$mapMapDepth")
return
@ -403,7 +403,7 @@ class KeyHandler {
mappingState.startMapExecution()
mappingInfo.execute(editor, context)
} catch (e: Exception) {
injector.messages.showStatusBarMessage(e.message)
injector.messages.showStatusBarMessage(editor, e.message)
injector.messages.indicateError()
LOG.warn(
"""
@ -412,7 +412,7 @@ class KeyHandler {
""".trimIndent()
)
} catch (e: NotImplementedError) {
injector.messages.showStatusBarMessage(e.message)
injector.messages.showStatusBarMessage(editor, e.message)
injector.messages.indicateError()
LOG.warn(
"""

View File

@ -49,7 +49,7 @@ class InsertRegisterAction : VimActionHandler.SingleExecution() {
}
} catch (e: ExException) {
injector.messages.indicateError()
injector.messages.showStatusBarMessage(e.message)
injector.messages.showStatusBarMessage(editor, e.message)
}
}
return true

View File

@ -35,6 +35,7 @@ abstract class VimDigraphGroupBase() : VimDigraphGroup {
if (ch.code < 0x100) {
injector.messages.showStatusBarMessage(
editor,
String.format(
"<%s> %d, Hex %02x, Oct %03o%s",
EngineStringHelper.toPrintableCharacter(KeyStroke.getKeyStroke(ch)),
@ -46,6 +47,7 @@ abstract class VimDigraphGroupBase() : VimDigraphGroup {
)
} else {
injector.messages.showStatusBarMessage(
editor,
String.format(
"<%s> %d, Hex %04x, Oct %o%s",
EngineStringHelper.toPrintableCharacter(KeyStroke.getKeyStroke(ch)),

View File

@ -15,6 +15,6 @@ abstract class VimFileBase : VimFile {
val offset = editor.currentCaret().offset.point
val ch = editor.text()[offset]
injector.messages.showStatusBarMessage(toHexString(ch.code.toLong()))
injector.messages.showStatusBarMessage(editor, toHexString(ch.code.toLong()))
}
}

View File

@ -9,7 +9,7 @@
package com.maddyhome.idea.vim.api
interface VimMessages {
fun showStatusBarMessage(message: String?)
fun showStatusBarMessage(editor: VimEditor?, message: String?)
fun getStatusBarMessage(): String?
fun indicateError()
fun clearError()
@ -18,7 +18,7 @@ interface VimMessages {
fun updateStatusBar()
fun showMode(msg: String) {
showStatusBarMessage(msg)
fun showMode(editor: VimEditor?, msg: String) {
showStatusBarMessage(editor, msg)
}
}

View File

@ -164,7 +164,7 @@ abstract class VimOptionServiceBase : OptionService {
if (result == null) {
logger.error("KeywordOptionHelper failed to parse $value")
injector.messages.indicateError()
injector.messages.showStatusBarMessage("Failed to parse iskeyword option value")
injector.messages.showStatusBarMessage(editor = null, "Failed to parse iskeyword option value")
}
return result ?: split(getDefaultValue().value)
}

View File

@ -8,6 +8,7 @@
package com.maddyhome.idea.vim.api.stubs
import com.maddyhome.idea.vim.api.VimEditor
import com.maddyhome.idea.vim.api.VimMessagesBase
import com.maddyhome.idea.vim.diagnostic.vimLogger
@ -16,7 +17,7 @@ class VimMessagesStub : VimMessagesBase() {
vimLogger<ExecutionContextManagerStub>().warn("VimMessagesStub is used. Please replace it with your own implementation of VimMessages.")
}
override fun showStatusBarMessage(message: String?) {
override fun showStatusBarMessage(editor: VimEditor?, message: String?) {
TODO("Not yet implemented")
}

View File

@ -293,7 +293,7 @@ class VimStateMachine(private val editor: VimEditor?) {
}
msg.append(injector.messages.message("show.mode.recording"))
}
injector.messages.showMode(msg.toString())
injector.messages.showMode(editor, msg.toString())
}
fun getStatusString(): String {

View File

@ -36,7 +36,7 @@ sealed class CommandAlias(
var compiledCommand = this.command
val cleanedInput = input.trim().removePrefix(name).trim()
if (minimumNumberOfArguments > 0 && cleanedInput.isEmpty()) {
injector.messages.showStatusBarMessage(injector.messages.message("e471.argument.required"))
injector.messages.showStatusBarMessage(editor = null, injector.messages.message("e471.argument.required"))
injector.messages.indicateError()
return GoalCommand.Ex.EMPTY
}

View File

@ -8,19 +8,9 @@
package com.maddyhome.idea.vim.group.visual
import com.maddyhome.idea.vim.api.VimCaret
import com.maddyhome.idea.vim.api.VimEditor
import com.maddyhome.idea.vim.api.VimMotionGroupBase
import com.maddyhome.idea.vim.api.VimVisualPosition
import com.maddyhome.idea.vim.api.getLineEndOffset
import com.maddyhome.idea.vim.api.injector
import com.maddyhome.idea.vim.api.isLineEmpty
import com.maddyhome.idea.vim.api.*
import com.maddyhome.idea.vim.command.VimStateMachine
import com.maddyhome.idea.vim.helper.inBlockSubMode
import com.maddyhome.idea.vim.helper.inSelectMode
import com.maddyhome.idea.vim.helper.inVisualMode
import com.maddyhome.idea.vim.helper.mode
import com.maddyhome.idea.vim.helper.subMode
import com.maddyhome.idea.vim.helper.*
fun setVisualSelection(selectionStart: Int, selectionEnd: Int, caret: VimCaret) {
val (start, end) = if (selectionStart > selectionEnd) selectionEnd to selectionStart else selectionStart to selectionEnd

View File

@ -69,7 +69,7 @@ data class CmdCommand(val ranges: Ranges, val argument: String) : Command.Single
return true
}
private fun addAlias(editor: VimEditor?): Boolean {
private fun addAlias(editor: VimEditor): Boolean {
var argument = argument.trim()
// Handle overwriting of aliases
@ -82,7 +82,7 @@ data class CmdCommand(val ranges: Ranges, val argument: String) : Command.Single
val match = arg.find(argument)
match?.range?.let {
argument = argument.removeRange(it)
injector.messages.showStatusBarMessage("'$message' is not supported by `command`")
injector.messages.showStatusBarMessage(editor, "'$message' is not supported by `command`")
}
}
@ -95,7 +95,7 @@ data class CmdCommand(val ranges: Ranges, val argument: String) : Command.Single
// in the actual alias being created, and we don't want to parse that one.
val trimmedInput = argument.takeWhile { it != ' ' }
val pattern = Regex("(?>-nargs=((|[-])\\d+|[?]|[+]|[*]))").find(trimmedInput) ?: run {
injector.messages.showStatusBarMessage(injector.messages.message("e176.invalid.number.of.arguments"))
injector.messages.showStatusBarMessage(editor, injector.messages.message("e176.invalid.number.of.arguments"))
return false
}
val nargForTrim = pattern.groupValues[0]
@ -118,7 +118,7 @@ data class CmdCommand(val ranges: Ranges, val argument: String) : Command.Single
// I missed something, since the regex limits the value to be ? + * or
// a valid number, its not possible (as far as I know) to have another value
// that regex would accept that is not valid.
injector.messages.showStatusBarMessage(injector.messages.message("e176.invalid.number.of.arguments"))
injector.messages.showStatusBarMessage(editor, injector.messages.message("e176.invalid.number.of.arguments"))
return false
}
}
@ -126,7 +126,7 @@ data class CmdCommand(val ranges: Ranges, val argument: String) : Command.Single
// Not sure why this isn't documented, but if you try to create a command in vim
// with an explicit number of arguments greater than 1 it returns this error.
if (argNum > 1 || argNum < 0) {
injector.messages.showStatusBarMessage(injector.messages.message("e176.invalid.number.of.arguments"))
injector.messages.showStatusBarMessage(editor, injector.messages.message("e176.invalid.number.of.arguments"))
return false
}
minNumberOfArgs = argNum
@ -148,12 +148,12 @@ data class CmdCommand(val ranges: Ranges, val argument: String) : Command.Single
// User-aliases need to begin with an uppercase character.
if (!alias[0].isUpperCase()) {
injector.messages.showStatusBarMessage(injector.messages.message("e183.user.defined.commands.must.start.with.an.uppercase.letter"))
injector.messages.showStatusBarMessage(editor, injector.messages.message("e183.user.defined.commands.must.start.with.an.uppercase.letter"))
return false
}
if (alias in BLACKLISTED_ALIASES) {
injector.messages.showStatusBarMessage(injector.messages.message("e841.reserved.name.cannot.be.used.for.user.defined.command"))
injector.messages.showStatusBarMessage(editor, injector.messages.message("e841.reserved.name.cannot.be.used.for.user.defined.command"))
return false
}
@ -169,7 +169,7 @@ data class CmdCommand(val ranges: Ranges, val argument: String) : Command.Single
// If we are not over-writing existing aliases, and an alias with the same command
// already exists then we want to do nothing.
if (!overrideAlias && injector.commandGroup.hasAlias(alias)) {
injector.messages.showStatusBarMessage(injector.messages.message("e174.command.already.exists.add.to.replace.it"))
injector.messages.showStatusBarMessage(editor, injector.messages.message("e174.command.already.exists.add.to.replace.it"))
return false
}

View File

@ -61,8 +61,8 @@ sealed class Command(var commandRanges: Ranges, val commandArgument: String) : E
@Throws(ExException::class)
override fun execute(editor: VimEditor, context: ExecutionContext): ExecutionResult {
checkRanges()
checkArgument()
checkRanges(editor)
checkArgument(editor)
if (editor.inVisualMode && Flag.SAVE_VISUAL !in argFlags.flags) {
editor.exitVisualMode()
}
@ -104,14 +104,14 @@ sealed class Command(var commandRanges: Ranges, val commandArgument: String) : E
return result
}
private fun checkRanges() {
private fun checkRanges(editor: VimEditor) {
if (RangeFlag.RANGE_FORBIDDEN == argFlags.rangeFlag && commandRanges.size() != 0) {
injector.messages.showStatusBarMessage(injector.messages.message(Msg.e_norange))
injector.messages.showStatusBarMessage(editor, injector.messages.message(Msg.e_norange))
throw NoRangeAllowedException()
}
if (RangeFlag.RANGE_REQUIRED == argFlags.rangeFlag && commandRanges.size() == 0) {
injector.messages.showStatusBarMessage(injector.messages.message(Msg.e_rangereq))
injector.messages.showStatusBarMessage(editor, injector.messages.message(Msg.e_rangereq))
throw MissingRangeException()
}
@ -120,14 +120,14 @@ sealed class Command(var commandRanges: Ranges, val commandArgument: String) : E
}
}
private fun checkArgument() {
private fun checkArgument(editor: VimEditor) {
if (ArgumentFlag.ARGUMENT_FORBIDDEN == argFlags.argumentFlag && commandArgument.isNotBlank()) {
injector.messages.showStatusBarMessage(injector.messages.message(Msg.e_argforb))
injector.messages.showStatusBarMessage(editor, injector.messages.message(Msg.e_argforb))
throw NoArgumentAllowedException()
}
if (ArgumentFlag.ARGUMENT_REQUIRED == argFlags.argumentFlag && commandArgument.isBlank()) {
injector.messages.showStatusBarMessage(injector.messages.message(Msg.e_argreq))
injector.messages.showStatusBarMessage(editor, injector.messages.message(Msg.e_argreq))
throw MissingArgumentException()
}
}

View File

@ -22,7 +22,7 @@ data class DelCmdCommand(val ranges: Ranges, val argument: String) : Command.Sin
override val argFlags = flags(RangeFlag.RANGE_FORBIDDEN, ArgumentFlag.ARGUMENT_REQUIRED, Access.READ_ONLY)
override fun processCommand(editor: VimEditor, context: ExecutionContext, operatorArguments: OperatorArguments): ExecutionResult {
if (!injector.commandGroup.hasAlias(argument)) {
injector.messages.showStatusBarMessage(injector.messages.message("e184.no.such.user.defined.command.0", argument))
injector.messages.showStatusBarMessage(editor, injector.messages.message("e184.no.such.user.defined.command.0", argument))
return ExecutionResult.Error
}

View File

@ -46,7 +46,7 @@ data class DeleteMarksCommand(val ranges: Ranges, val argument: String) : Comman
if (index != -1) {
val invalidIndex = if (processedArg[index] == '-') (index - 1).coerceAtLeast(0) else index
injector.messages.showStatusBarMessage(injector.messages.message(Msg.E475, processedArg.substring(invalidIndex)))
injector.messages.showStatusBarMessage(editor, injector.messages.message(Msg.E475, processedArg.substring(invalidIndex)))
return ExecutionResult.Error
}
}

View File

@ -30,7 +30,7 @@ data class MarkCommand(val ranges: Ranges, val argument: String) : Command.Singl
val result = if (mark.isLetter() || mark in "'`") {
injector.markGroup.setMark(editor, mark, offset)
} else {
injector.messages.showStatusBarMessage(injector.messages.message(Msg.E191))
injector.messages.showStatusBarMessage(editor, injector.messages.message(Msg.E191))
false
}
return if (result) ExecutionResult.Success else ExecutionResult.Error

View File

@ -34,7 +34,7 @@ data class TabCloseCommand(val ranges: Ranges, val argument: String) : Command.S
val select = if (index == current) index + 1 else current
injector.tabService.removeTabAt(index, select, context)
} else {
injector.messages.showStatusBarMessage(injector.messages.message("error.invalid.command.argument"))
injector.messages.showStatusBarMessage(editor, injector.messages.message("error.invalid.command.argument"))
}
return ExecutionResult.Success

View File

@ -60,7 +60,7 @@ data class UnknownCommand(val ranges: Ranges, val name: String, val argument: St
}
}
} else {
injector.messages.showStatusBarMessage(injector.messages.message("recursion.detected.maximum.alias.depth.reached"))
injector.messages.showStatusBarMessage(editor, injector.messages.message("recursion.detected.maximum.alias.depth.reached"))
injector.messages.indicateError()
return ExecutionResult.Error
}

View File

@ -66,7 +66,7 @@ data class DefinedFunctionHandler(val function: FunctionDeclaration) : FunctionH
if (exceptionsCaught.isNotEmpty()) {
injector.messages.indicateError()
injector.messages.showStatusBarMessage(exceptionsCaught.last().message)
injector.messages.showStatusBarMessage(editor, exceptionsCaught.last().message)
}
return returnValue ?: VimInt(0)
}