2016-04-12 6 views
0

Я использую live templates for laravel. Когда я хочу, чтобы вставить фрагмент, например Route::get, жму ctrl + j, тип route, всплывающее окно показано:Живые шаблоны в PhpStorm

enter image description here

Как я могу перейти к Route::get без использования клавиш со стрелками? Когда я типа двоеточие (route:), она принимает первый фрагмент:

enter image description here

EDIT

Моя конфигурация завершение

enter image description here

+0

Работает отлично для меня в PhpStorm 2016.1.1 (я нахожусь в Windows 7, если это имеет значение). Протестировано с моими собственными шаблонами - назвали их «Route :: abc», «Route :: get» и «Route :: note» - нажав Ctrl + J, а затем набрав «route :: g' preselects» Route :: get' просто отлично.Ваше поведение может быть связано с вашими настройками - пожалуйста, покажите снимок экрана своих настроек/настроек | Редактор | Общий | Code Completion' – LazyOne

+0

Я думал, что если вы измените опцию «Case sensitive completion» от «First letter» до «None», она будет лучше ... но ей это не понравится. Я полагаю (и мои дополнительные эксперименты, похоже, доказывают это), что проблема в том, что 1) у вас есть такие вещи, как «Helper :: link_to_route' (ваши первые 2 совпадения в списке) и 2) вы вводите' route: '(small' r' - который соответствует вашим первым двум записям, но не тем, которые начинаются с «Маршрут ::». – LazyOne

+0

Попробуйте ввести «Маршрут:» - должен выполнить задание (теперь для меня добавлен дополнительный пользовательский шаблон «Помощник :: маршрут» чтобы лучше имитировать вашу ситуацию) .Если вы не хотите вводить 'Route:', тогда рассмотрите редактирование шаблонов (измените их аббревиатуры) и используйте 'route ::' там (аббревиатуры). Использование всех строчных букв для аббревиатур, безусловно, лучше идея (все стандартные шаблоны по умолчанию, похоже, используют их без заглавных букв) – LazyOne

ответ

0

Обычно, если вы знаете, ваши живые шаблоны аббревиатуры хорошо , вам не нужно нажимать Ctrl + J (Code | Insert Live Template...) - вы просто написали аббревиатуру и нажмите клавишу расширения (обычно это Tab). Например, у меня есть t[TAB], который должен быть расширен до $this-> и rt[TAB] в return $this;.

Точка, которую я пытаюсь сделать здесь .. заключается в том, что набирать Live Templates таким образом намного проще, если не беспокоить малыми/прописными буквами и печатать все мелкие.

Если вы проверили все стандартные шаблоны по умолчанию (за исключением объемных), вы заметите, что все они используют небольшие буквы в аббревиатурах и не имеют капитала.


Назад к данному случаю: с Live Templates, когда вы набрав route, то его лучше матчи первые два (Helper::link_to_route и Helper::route), чем фактические Route::xxx них. Следовательно, ввод route: (добавление символа без буквы) вызовет первый (наиболее подходящий) шаблон в списке.

Ваших вариантов:

  1. Использование капитализации - тип Route: (обратите внимание на капитал R) - это будет соответствовать Route::xxx лучше, чем другие два, где route присутствует

  2. Изменить фактические сокращения для те шаблоны Live - заставляют их использовать только небольшие буквы (например, это будет route::get). Таким образом, вам не нужно беспокоиться о случаях письма.

  3. Редактирование аббревиатур для этих живых шаблонов, чтобы быть чем-то короче, использует только маленькие буквы и быть уникальным. Например: переименовать Route::get в rget. Если вы используете такой шаблон, чаще всего вы можете извлечь из этого много преимуществ.