Как я могу вызвать меню завершения во фрагменте Sublime Text 2?
-
13-12-2019 - |
Вопрос
Могу ли я вызвать меню завершения кода во фрагменте Sublime Text 2?Я хочу, чтобы табуляция отображала меню завершения с опциями, а не просто выделяла текст.
Например, нажатие клавиши табуляции один раз в этом фрагменте выделит _link
.Вместо того, чтобы просто подчеркнуть _link
, можно отобразить меню завершения с другими параметрами, например _selector
, _content
, и сделать выбор?
<snippet>
<content><![CDATA[it \{ should${1:_not} have${2:_link} \}]]></content>
<tabTrigger>it</tabTrigger>
<scope>source.ruby</scope>
<description>it { should_? have_? }</description>
</snippet>
Решение
Ну, то, что вы хотите, на самом деле невозможно.Однако вы можете настроить макрос, который (1) вставит фрагмент и (2) активирует автозаполнение, но я не думаю, что это действительно то, что вам нужно, поскольку таким образом вы не можете иметь собственные параметры.Вы также можете рассмотреть возможность использования плагина ZenCoding.Плагин будет иметь такую вкладку: ${1:option1/option2/option3}
.По крайней мере, будут отображены параметры, но на самом деле они не позволят легко выбрать и могут очень быстро оказаться занятыми.Другой вариант — просто иметь фрагменты для ваших общих параметров и соответствующим образом настроить области.Например, там, где сказано <scope>...</scope>
, вы можете указать позицию, к которой будет применяться фрагмент, а не только источник по умолчанию.язык.Для получения дополнительной информации об областях я предлагаю вам обратиться к документации. здесь.Использование этого метода может быть самым простым и лучшим способом.Таким образом, в вашем фрагменте вы можете просто запустить автозаполнение, и параметры будут включать ваши фрагменты.Еще несколько вариантов, на которые следует обратить внимание, — это создание .sublime-completions
файл с настраиваемой областью действия или создав что-то похожее на Packages/HTML/html_completions.py
.