Scala и встроенный терминал в VS Code - PullRequest
3 голосов
/ 11 февраля 2020

Я использую Scala REPL со встроенным терминалом. Я открываю Scala REPL на терминале, а затем отправляю небольшие фрагменты с

workbench.action.terminal.runSelectedText

(которые я связал с ярлыком). Это прекрасно работает, когда фрагменты должны выполняться буквально. Но иногда, когда определения взаимно рекурсивны, Scala требует, чтобы я начал код с команды

scala> :paste

, а затем завершил sh с помощью ctrl + d. Есть ли способ, которым я могу автоматически обернуть выделенный текст в ": paste" + selected_text + "^ d"?

Спасибо, Кристиан

1 Ответ

1 голос
/ 11 февраля 2020

${selectedText} переменная содержит текущий выбранный текст, а sendSequence поддерживает подстановку переменных, поэтому в Open Keyboard Shortcuts (JSON) попробуйте добавить

[
    {
      "key": "cmd+shift+T",
      "command": "workbench.action.terminal.sendSequence",
      "args": {
        "text": ":paste\u000D${selectedText}\u000D\u0004"
    }
]

, где \u0004 равно Control+D, а \u000D равно Enter. Теперь попробуйте

  1. start console из sbt
  2. и выберите исходный код, который вы хотите вставить в console
  3. Hit cmd+shift+T
...