Может кто-нибудь объяснить этот фрагмент текста Javascript мне, пожалуйста - PullRequest
0 голосов
/ 27 октября 2009

следующий код является фрагментом javascript textmate, кто-нибудь может объяснить, пожалуйста Потому что я хочу использовать эту функцию в моих собственных фрагментах. большое спасибо.

document.getElement${1/(T)|.*/(?1:s)/}By${1:T}${1/(T)|(I)|.*/(?1:agName)(?2:d)/}("$2")

Ответы [ 2 ]

5 голосов
/ 27 октября 2009

${1:T} - заполнитель первой вкладки со значением по умолчанию "T". Этот текст выделяется, когда вы набираете «get» и нажимаете «tab».

$2 - заполнитель второй вкладки. После того, как вы нажали «T» или «I», чтобы заполнить имя функции в заполнителе первой вкладки, вы можете нажать Tab, чтобы попасть сюда.

Те части, которые вы, вероятно, уже знали, но две другие немного хитрее.

${1/(T)|.*/(?1:s)/} является своего рода переключателем вставки. Он просматривает значение, которое вы вводите в качестве заполнителя первой вкладки, и выбирает соответствующее значение для вставки. Если вы введете «T», он вставит «s» (чтобы сделать слово «Элементы»); в противном случае ничего не вставляется.

${1/(T)|(I)|.*/(?1:agName)(?2:d)/} - это еще один переключатель вставки, который снова смотрит на значение, которое вы вводите в первый заполнитель вкладки (это то, что означает «1» в начале). Здесь есть две возможные вставки: если вы введете «T», он завершит его до «Tagname», а если вы наберете «I», он завершит его до «Id».

Общий результат заключается в том, что если вы вызовете фрагмент и введете "T", он завершится до 'getElementsByTagName ("")'. Если вы вызовете его и введете «I», он завершится до «getElementById (" ») '.

0 голосов
/ 27 октября 2009

Я ничего не знаю о textmate, но похоже, что он генерирует следующее:

document.getElementById(val);
document.getElementsByTagName(val);

Не это, хотя:

document.getElementsByName(val);
...