Я думаю, что за последние полтора года, экспериментируя с разработкой Cocoa и Cocoa Touch, я изо всех сил пытался заставить Xcode поддерживать своего рода ключевой макрос для обработки этого конкретного сценария кодирования...
Я часто ловлю себя на том, что не знаю заранее, сколько диспетчеров сообщений нужно связать вместе при наборе новой строки кода. Например, я мог бы ввести это... (Символ вертикальной черты представляет положение курсора)
someVariable = [someObject someMessage]|
... Затем я понимаю, что мне нужно связать сообщение из возвращаемого объекта (поскольку обмен сообщениями nil безопасен в ObjC, это обычная идиома.) Поэтому мне нужно изменить строку кода, чтобы она выглядела так...
someVariable = [[someObject someMessage] |
Большой проблемой является необходимость добавлять левую скобку перед парой скобок, в конце которой я нахожусь, что повлечет за собой использование мыши или множество повторных нажатий клавиш каждый раз, когда мне нужно это сделать. Потратив впустую около 40 или около того часов, пытаясь найти какое-либо ранее существовавшее сочетание клавиш или сценарий (я исследовал Perl, сценарии оболочки и даже немного сценариев emacs Lisp в своем гугле), я собрал это чудовище. в AppleScript, из всех вещей...
tell application "System Events"
delay 0.2
set editMenu to menu "Edit" of menu bar item "Edit" in menu bar 1 of
process "Xcode"
set kLeftArrowKey to 123
key code kLeftArrowKey
set theMenu to menu item "Balance" in menu "Format" of menu item
"Format" in editMenu
click theMenu
set theMenu to menu item "Bracket Expression" in menu "Objective C"
of menu item "Objective C" in menu "Insert Text Macro" of menu
item "Insert Text Macro" in editMenu
click theMenu
key code kLeftArrowKey
end tell
Должен быть лучший способ.
Я насчитал по крайней мере пять проблем с вышеизложенным... (которые я прокомментирую, если спросят). Я постоянно вижу частые онлайн-жалобы от новых разработчиков ObjC на этот синтаксис, и я подозреваю, что эта проблема с набором текста является основной проблемой. точка. Хотя мне нравится, как читается синтаксис (настолько, что я избегаю записи свойств через точку из соображений согласованности кода), то, как это сначала написано, отстой. (По иронии судьбы, как и AppleScript, учитывая мою текущую взломанную реализацию.)
Помоги мне положить конец моим страданиям, и ты, вероятно, положишь конец страданиям многих других разработчиков ObjC...