Я немного взломал это и стал ближе, но он еще не полностью функционален. Решение, которое я имею, состоит в том, чтобы добавить запись в align-rules-list
, чтобы простой M-x align
справился с задачей. Проблема в том, что вам нужно дважды запустить align
, чтобы заставить его работать.
(obj-c-colons
(regexp . "^\\(\\s-*[^:]+\\):")
(justify . t)
(repeat . t)
(modes obj-c-mode)) ;; <= Replace with actual name of major mode
На самом деле я не знаю, как называется режим target-c, поэтому вам придется заменить obj-c-mode
на то, что этот режим на самом деле называется. Вы можете добавить это к align-rules-list
с помощью:
(add-to-list 'align-rules-list
'(obj-c-colons
(regexp . "^\\(\\s-*[^:]+\\):")
(justify . t)
(repeat . t)
(modes obj-c-mode)))
На данный момент вы должны выполнить align
дважды; первый раз выстроится только так:
NSTimer *timer =
[NSTimer timerWithTimeInterval:1.0
target:self
selector:@selector(callback:)
userInfo:nil
repeats:YES];
Обратите внимание, что двоеточия - это два символа слишком далеко слева. Второй align
исправит это. Не спрашивай меня почему.
Существует много всего, что происходит с командой align
, поэтому выяснить это сложно. Надеюсь, кто-то придумает способ улучшить это. В любом случае, посмотрите на соответствующую страницу EmacsWiki для получения дополнительной информации о выравнивании.