Позвольте мне дать вам несколько советов о том, как найти решение (поскольку это может быть более ценным, чем дать решение сразу)
Проблема в том, что aBuilder
верно? Ну из выражения
(aBuilder shortcut: #jumpToNextKeywordOfIt)
мы делаем вывод, что aBuilder
- это тот, кто отвечает на #shortcut:
. Cmd + m и вы получите 9 разработчиков #shortcut:
. У одного из них KMBuilder
есть интересное имя. Более того, его реализация shortcut:
является
shortcut: aKeymapName
^KMKeymapBuilder
for: aKeymapName
platform: platform
означает, что он ответит экземпляром KMKeymapBuilder
. Просмотрите этот класс и убедитесь, что он понимает следующее сообщение из вашего выражения:
category: RubSmalltalkEditor name
default: $y meta shift
do: [ :target | target editor jumpToNextKeywordOfIt: true ]
description: 'Jump to next keyword'.
Да! Так и должно быть! Чтобы проверить это, нам все еще нужен экземпляр KMBuilder
. Просмотрите класс, перейдите в сторону класса и найдите унарное сообщение #keymap
.
Это означает, что мы можем получить aBuilder
, оценив
KMBuilder keymap
Я люблю одинарные сообщения. Особенно, когда они на стороне класса!
Теперь перейдите к разработчику метода, который вы уже настроили #buildShortcutsOn:
. Это реализовано на стороне класса, и теперь мы можем оценить:
RubTextEditor buildShortcutsOn: KMBuilder keymap
Чтобы убедиться, что он работает, перейдите к нужному обработчику #jumpToNextKeywordOfIt:
и вставьте в него halt
. Это в том же классе, на стороне экземпляра.
Теперь давайте нажмите Cmd + Shift + y и посмотрим, остановимся ли мы ... Бинго! Я имею в виду, Стой!