আমি একটি পুনরাবৃত্ত পরিবর্তনশীল দৈর্ঘ্য তালিকা সঙ্গে একটি Yasnippet তৈরি করতে পারেন

জাভাস্ক্রিপ্ট Angular এই মত দেখতে কন্ট্রোলার তৈরি করার জন্য একটি অনন্য প্যাটার্ন আছে:

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

'$ scope', 'foo', 'bar' জিনিসটিকে বর্গক্ষেত্র-বন্ধনীযুক্ত অ্যারের ভিতরে ফাংশনে পরামিতি তালিকা হিসাবে পুনরাবৃত্তি করা হয়।

আমি ভেবেছিলাম আমি একটি ইয়াসিনিপেট লিখে এই কম ত্রুটি-প্রবণতা করতে পারব। এটা দেখে মনে হচ্ছে:

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

এটি জরিমানা কাজ করে, তবে শুধুমাত্র যদি একটি প্যারামিটার থাকে ($ 3 অবস্থানের মধ্যে), যেমন আমি যদি শুধুমাত্র $ scope ব্যবহার করছি। আমি যদি একাধিকবার ব্যবহার করতে চাই তবে তা ভেঙে পড়বে।

স্নিপেটটি লেখার কিছু উপায় আছে তাই এটি উদ্ধৃত স্ট্রিংগুলির একটি কমা সীমাবদ্ধ তালিকা তৈরি করবে এবং স্নিপেটের মধ্যে অন্য কোথাও অনির্দিষ্ট স্ট্রিংগুলির একটি কমা সীমাবদ্ধ তালিকা পুনরাবৃত্তি করবে?

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
যোগ