Ці магу я стварыць yasnippet з паўтаральным спісу зменнай даўжыні

Javascript Кутні маюць своеасаблівы ўзор для стварэння кантролераў, які выглядае наступным чынам:

myApp.controller('myController', ['$scope', 'foo', 'bar', 
                 function($scope, foo, bar) {
                     //do stuff...
                 }]);

<�Код> «$ сфера», «Foo», «бар» рэч паўтараецца ў выглядзе спісу параметраў у функцыі ўнутры квадратнай дужкі масіва.

Я думаў, што я мог зрабіць зрабіць гэта менш схільныя памылак пры напісанні yasnippet. Гэта выглядае наступным чынам:

# -*- mode: snippet -*-
# name: angctl
# key: angctl
# --
$1.controller('$2', ['$3', function($3) {
$0;
}]);

Гэта выдатна працуе, але толькі калі ёсць адзін параметр (у становішчы $ 3), як калі б я толькі з дапамогай $ вобласці бачнасці . Калі я хачу, каб выкарыстоўваць больш чым адзін, ён ламаецца.

Ці ёсць які-небудзь спосаб напісання фрагмента кода, так гэта зробіць падзелены коскамі спіс радкоў у двукоссі і паўтарыць праз коску спіс некотируемых радкоў дзе-небудзь яшчэ ў гэтым фрагменце?

1

1 адказы

Я думаю, што нешта падобнае можа працаваць:

# -*- mode: snippet -*-
# name: angctl
# key: angctl
# --
$1.controller('$2', [${3:$(mapconcat (lambda (x) (format "'%s'" x))
                                     (split-string yas-text "," t "[ \t]") ", ")}, function($3) {
$0;
}])

І ў дзеянні:

enter image description here

2
дададзена