PriorMethodDefinition
возвращает имя первого определения метода над курсором.
Это делается путем search
обратного хода для строки, содержащей текст 'def'.Функция поиска возвращает номер строки, а getline
используется для извлечения содержимого этой строки.
Функция проверяет, что она нашла правильную строку, перед использованием регулярного выражения для получения имени методаи верните его.
Вы можете прочитать больше об этих функциях, если вам интересно узнать о специфике - см .:
:help search
:help getline
:help matchlist
Редактировать : вы также можете прочитать ошаблон регулярного выражения
:help pattern
Но сначала я нашел его немного запутанным, поэтому позвольте мне немного его объяснить.Вот используемое выражение:
'def \(\w\+\).*'
При этом будет выполнен поиск любого текста, соответствующего следующему шаблону: «текст def
, за которым следует один или несколько символов« слова »\w\+
, за которыми следует ноль или более символов .*
».Часть, соответствующая символам слова, помещается в группу (или атом), обозначенную экранированными паренами \(
& \)
.Более подробную информацию об определениях слов и т. Д. Можно найти в приведенной выше ссылке справки.
Функция matchlist
возвращает список совпадений, первый из которых [0]
- полный текст, соответствующий регулярному выражению,с последующим соответствием (то есть наша группа).Мы заинтересованы в первом подобном совпадении, следовательно, [1]
.