Можно ли оставить однострочные комментарии? (Написание грифмонки/пользовательских скриптов на CoffeeScript)

Я заметил, что при компиляции CoffeeScript ни один из однострочных комментариев не сохраняется.

Это проблематично, так как я пытаюсь написать Greasemonkey/userscript на CoffeeScript, и они полагаются на комментарии к блоку метаданных.

Я пытался использовать обратные кавычки, но, похоже, возникла проблема с обратными кавычками вокруг комментариев:

`// ==UserScript==
// @version       1.0
// ==/UserScript==`

alert "hello world"

становится

// ==UserScript==
// @version       1.0
// ==/UserScript==;alert("hello world");

И если я добавлю дополнительную строку перед закрывающей обратной галочкой, я получу:

// ==UserScript==
// @version       1.0
// ==/UserScript==
;alert("hello world");

Также было бы неплохо иметь удобный автоматический перенос.. но я полагаю, что без -bare блок метаданных также был бы обернут.

Есть ли лучший способ, которым я мог бы заняться этим?


person Acorn    schedule 28.06.2011    source источник


Ответы (1)


Я не использую CoffeeScript, но из документации вы можете использовать:

###
// ==UserScript==
// @version       1.0
// ==/UserScript==
###
alert "hello world"


Что даст:

/*
// ==UserScript==
// @version       1.0
// ==/UserScript==
*/
alert("hello world");

который отлично разбирается как скрипт GM. Метаданные читаются правильно.

person Brock Adams    schedule 28.06.2011
comment
Это почти работает... Однако, если вы пытаетесь использовать Sprockets, вы столкнетесь с ошибками при таком подходе (поскольку //= <something> заменяется кодом <something>, поэтому вы получаете /* //= require ‹something› / --› / (код чего-либо) */ - person AlexeyMK; 23.07.2011
comment
Я сомневаюсь, что они используют звездочки для разработки пользовательских скриптов. - person Andrew Burns; 20.07.2012
comment
Чтобы генерировать require потребляемый Sprockets (конвейер ресурсов Rails), вы можете использовать *=, например: gist.github. com/joliss/9480786 (если кому-то еще интересно) - person Jo Liss; 11.03.2014