javascriptからVisual Studio Codeのスニペットへ変換
javascriptからVisual Studio Codeのスニペットへ変換:
VSCodeのスニペットを書くのが大変なので、変換してくれるツールが無いか調べたところ、見つけられなかったので、適当に自動変換してくれるものを作りました。
適当なので動作は保証できません。バグがあったら勝手に直してください。ブラウザのコンソールでの実行を想定しています。
こんな感じで変換できます。
スニペットの形で欲しい人はこちらをどうぞ。
VSCodeのスニペットを書くのが大変なので、変換してくれるツールが無いか調べたところ、見つけられなかったので、適当に自動変換してくれるものを作りました。
適当なので動作は保証できません。バグがあったら勝手に直してください。ブラウザのコンソールでの実行を想定しています。
{ document.body.innerHTML = 'TabSize: <input type="text" id="tabSize" value="4"></input><br>' + 'In:<textarea id="jsToSnippetIn" style="height: 300px; width: 100%;"></textarea>' + 'Out:<textarea id="jsToSnippetOut" style="height: 300px; width: 100%;"></textarea>'; const onChange = () => { const tabSize = document.querySelector('#tabSize').value; if (Number.isNaN(+tabSize)) { return; } document.querySelector('#jsToSnippetOut').value = '\n' + document.querySelector('#jsToSnippetIn').value .split('\n').map((row) => { row = row.replace(/\\/g, '\\\\\\\\'); row = row.replace(/"/g, '\\"'); row = row.replace(/^\t*/g, (matched) => '\\t'.repeat(matched.length)); row = row.replace(new RegExp(`^(${' '.repeat(+tabSize)})*`, 'g'), (matched) => '\\t'.repeat(matched.length / tabSize)); return '\t\t\t"' + row + '",'; }) .join('\n') + '\n'; }; document.querySelector('#jsToSnippetIn').addEventListener('change', onChange); document.querySelector('#jsToSnippetIn').addEventListener('keydown', onChange); document.querySelector('#jsToSnippetIn').addEventListener('keyup', onChange); }
スニペットの形で欲しい人はこちらをどうぞ。
"from Javascript to Snippet": { "prefix": "jssni", "body": [ "{", "\tdocument.body.innerHTML = ", "\t\t'TabSize: <input type=\"text\" id=\"tabSize\" value=\"4\"></input><br>' +", "\t\t'In:<textarea id=\"jsToSnippetIn\" style=\"height: 300px; width: 100%;\"></textarea>' +", "\t\t'Out:<textarea id=\"jsToSnippetOut\" style=\"height: 300px; width: 100%;\"></textarea>';", "\tconst onChange = () => {", "\t\tconst tabSize = document.querySelector('#tabSize').value;", "\t\tif (Number.isNaN(+tabSize)) {", "\t\t\treturn;", "\t\t}", "\t\tdocument.querySelector('#jsToSnippetOut').value = ", "\t\t\t'\\\\n' +", "\t\t\tdocument.querySelector('#jsToSnippetIn').value", "\t\t\t\t.split('\\\\n').map((row) => {", "\t\t\t\t\trow = row.replace(/\\\\\\\\/g, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\');", "\t\t\t\t\trow = row.replace(/\"/g, '\\\\\\\\\"');", "\t\t\t\t\trow = row.replace(/^\\\\t*/g, (matched) => '\\\\\\\\t'.repeat(matched.length));", "\t\t\t\t\trow = row.replace(new RegExp(`^(${' '.repeat(+tabSize)})*`, 'g'), (matched) => ", "\t\t\t\t\t\t'\\\\\\\\t'.repeat(matched.length / tabSize));", "\t\t\t\t\treturn '\\\\t\\\\t\\\\t\"' + row + '\",';", "\t\t\t\t})", "\t\t\t\t.join('\\\\n') +", "\t\t\t'\\\\n';", "\t};", "\tdocument.querySelector('#jsToSnippetIn').addEventListener('change', onChange);", "\tdocument.querySelector('#jsToSnippetIn').addEventListener('keydown', onChange);", "\tdocument.querySelector('#jsToSnippetIn').addEventListener('keyup', onChange);", "}", ], "description": "from Javascript to Snippet", },
コメント
コメントを投稿