Sublime Snippet, если нет регулярных выражений, используйте строку "null"
Я пытаюсь написать фрагмент. Для этого поста я супер упростил его. Если я запускаю его на этом выборе:
arg1
фрагмент должен вывести:
doFunc ('arg1', 'null');
если я запускаю его на этом выборе:
arg1, arg2
фрагмент должен выводить
doFunc('arg1', arg2);
Я не могу понять, как использовать null
строка, если соответствие регулярному выражению не найдено. Это то, что я до сих пор:
doFunc('${SELECTION/([^,]+)(,.*)?/\1/}', ${SELECTION/([^,]+)(,.*)?/\2/});
Так что проблема здесь ${SELECTION/([^,]+)(,.*)?/\2/}
Я хочу сделать как высшее, так как \2 ? \2 : null
Это возможно?
Спасибо
1 ответ
Sublime Text Snippets использует библиотеку Boost, которая фактически поддерживает троичные операторы в части форматирования. Следовательно, вы можете просто написать (?{2}(\2):'null')
как троичный оператор.
Если вы измените свой фрагмент на этот, он будет иметь указанное поведение:
doFunc(${SELECTION/^([^,]+)(?:,\s*(.*))?/'\1', (?{2}(\2):'null')/});