Завершение с использованием внешнего файла или файла, содержащегося в проекте? - PullRequest
1 голос
/ 10 октября 2009

Кто-нибудь знает, как заставить TextMate выполнить поиск по внешнему файлу (или даже файлам, содержащимся в «проекте» TextMate), с помощью которого можно завершить слова?

Я кодирую некоторые вещи на C64 (используя TextMate для написания кода), и у меня есть внешний файл, содержащий метки для всех аппаратных регистров / процедур ядра, например,

VIC2InteruptStatus = $D019

Было бы очень удобно иметь возможность, скажем, набрать 'VIC2I', затем нажать клавишу для завершения слова, и TextMate найдет совпадения во внешнем файле библиотеки. Вместо того, чтобы делать это сейчас, открыв файл библиотеки и скопировав имена регистров в мой код.

1 Ответ

1 голос
/ 13 октября 2009

После долгих проб и ошибок я получил это ... вроде.

Сначала вам необходим соответствующий комплект для вашего языка / типа файла. Затем в этом Bundle вам нужно использовать Bundle Editor, чтобы добавить новый «Preference». Назовите его так, как вам нравится, а затем перейдите на панель редактирования и добавьте его;

{completeCommand = 'grep -oh "\ w * $ {TM_CURRENT_WORD} \ w *" FILESPEC | сортировать | уник ';}

где FILESPEC - это один файл, содержащий ключевые слова, которые вы хотите предложить для дополнения слова.

Закройте редактор пакетов.

Теперь, если вы начнете вводить слово, находящееся в файле FILESPEC, нажмите ESC (или любую клавишу, с которой сопоставлено завершение), и TextMate предложит завершение отсортированного по алфавиту слова. Продолжайте нажимать ESC, чтобы перебрать все совпадения (SHIFT + ESC идет назад).

Что-то, чего я не мог понять, это как сделать регистр нечувствительным к регистру. Вы можете использовать опцию -i в GREP, но опция -o переопределяет ее. В идеале, если вы набрали;

ком Com COM

он найдет все слова во внешнем файле, которые начинаются с букв c, o, m. Вместо этого, если вы введете «COM», он будет соответствовать только словам, начинающимся с «COM», а не «com» ​​или «Com» и т. Д.

Если бы кто-нибудь, кто обладает большим мастерством в GREP, мог понять это, я был бы очень благодарен.

...