Почему сочетание клавиш Eclipse для запуска Ant Build работает только для определенных расширений файлов?

Если я нахожусь в файле .txt и делаю либо Alt-Shift-X,Q, либо использую созданный мной Alt-R ярлык, он запускает build.xml для этого проекта.

Если я нахожусь в файле .js и делаю то же самое, это ничего не делает.

Я тестировал разные файлы, типы файлов и редакторы, и именно расширение файла определяет, работает ли оно.

Другие сочетания клавиш (с тем же «Когда» из «В Windows») отлично работают во всех файлах.

Некоторые расширения работают (.txt, .cfm, .xml), а другие (.html, .js, .less, .cfg) — нет.

Единственная связь, которую я вижу между рабочими, заключается в том, что при просмотре в «Настройки»> «Основные»> «Редакторы»> «Ассоциации файлов» те, которые работают, имеют locked by 'X' content type рядом с по крайней мере одним связанным редактором.

После тестирования добавление *.js к типу контента «Текст» позволяет ярлыку работать с файлами JS.

Почему наличие выделенного "типа содержимого" позволяет файлу с определенным расширением запускать файл сборки Ant?

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


person Peter Boughton    schedule 22.08.2012    source источник


Ответы (1)


Привязки клавиш не существуют глобально, но определяются для данного контекста. Все существующие контексты в Eclipse составляют иерархию, например. «Редактирование текста» имеет «В окнах» в качестве родителя, который имеет «В диалогах и окнах» в качестве родителя.

Если определенный контекст активирован (плагин явно должен это сделать), то доступны все привязки клавиш этого контекста и всех родителей в этой иерархии. Поскольку команда «Запустить Ant Build» привязана к контексту «Работа в Windows», я предполагаю, что нерабочие редакторы устанавливают этот контекст только в том случае, если активен определенный тип контента, как описано вами ( который я бы оценил как ошибку). Или они определяют контекст, который имеет «В диалогах и Windows» в качестве прямого родителя, тем самым «обходя» контекст «В Windows», где определен ваш ярлык.

Возможным обходным решением может быть изменение контекста привязки клавиш в настройках с «В Windows» на «В диалоговых окнах и Windows».

person Bananeweizen    schedule 23.08.2012
comment
Ах, я не знал, что существует прямая иерархия, просто думал, что она подразумевается. Во всяком случае, я попытался перейти на «В диалогах» и «Виндовс», но, к сожалению, это не сработало. - person Peter Boughton; 23.08.2012