3

テキストを崇高にするのは初めてで、いくつかの補完を設定しようとしています。スニペットがたくさんあり、スニペットごとに個別のファイルではなく、1 つのファイルを使用したいだけです。

以下のコードを保存すると、予期しない改行でファイルを解析できないというエラーが表示されます。改行を使用しているためだと思います。補完は短い 1 行のコードのみですか? 以下のような長いコードがある場合、スニペットに個々のファイルを使用する必要がないようにできることはありますか?

{
    "completions":
    [
            { "trigger": "clearforms", "contents":
                "//clear form fields
                \$(function() {
                    \$.fn.clearInput = function() {
                        return this.focus(function() {
                            if( this.value == this.defaultValue ) {
                                this.value = "";
                            }
                        }).blur(function() {
                            if( !this.value.length ) {
                                this.value = this.defaultValue;
                            }
                        });
                };

                    \$('#subscribe').clearInput();
                    \$('#search').clearInput(); 
                });"
            }
    ]

}

4

1 に答える 1

3

JSONでは複数行の文字列を使用できません。改行は としてエンコードする必要があります\n。シンボルは soの$ようにダブル エスケープする必要が\\$あり、コメントのフォワード スラッシュは so - のようにシングルエスケープする必要があります\/\/。したがって、補完ファイルは次のようにする必要があります。

{
    "completions":
        [
            { "trigger": "clearforms", "contents": "\/\/ clear forms \n\\$(function() { \n\\$.fn.clearInput = function() { \nreturn this.focus(function() { \nif( this.value == this.defaultValue ) { \nthis.value = \"\"; \n} \n}).blur(function() { \nif( !this.value.length ) { \nthis.value = this.defaultValue; \n} \n}); \n}; \n\n\\$('#subscribe').clearInput(); \n\\$('#search').clearInput(); \n});" }
        ]

}

各改行の後に適切な空白を入れるのはあなた次第です。個々のスニペット ファイルを使用するのは少し「煩雑」になるかもしれませんが、改行エスケープを必要とせずに複数行のエントリを使用できるため、出力をより簡単にフォーマットできることに注意してください。ただし、$おそらく JS コメントにはエスケープが必要な場合があります。

于 2013-08-14T17:23:07.393 に答える