Я пытался настроить сворачивание кода в Vim для JavaScript, но по умолчанию не работает правильно. У меня мало опыта работы с Vim, и мне трудно разобраться в файлах справки (что доказано моими неудачными попытками сделать это самостоятельно).
Код JavaScript, который создает проблемы более или менее, выглядит следующим образом:
var x = {};
x.prototype = (function () {
// Variable declarations...
var y;
// Other content...
y = (function () {
// Stuff...
}());
// Other content continues... eg:
return {
// Other stuff...
};
}());
Когда я сбрасываю y = (function () {}());
это выглядит так:
var x = {};
x.prototype = (function () {
// Variable declarations...
var y;
// Other content...
y = (function () {----------------------------------...
Обратите внимание, как исчезает остальная часть функции! На самом деле это должно выглядеть так:
var x = {};
x.prototype = (function () {
// Variable declarations...
var y;
// Other content
y = (function () {----------------------------------...
// Other content continues... eg:
return {
// Other stuff...
};
}());
Как я уже говорил выше, я попытался поиграться с файлом синтаксиса, но он только сломал фолдинг.
Для удобства ниже приведен раздел свертывания кода файла синтаксиса JavaScript:
if exists("javaScript_fold")
syn match javaScriptFunction "\<function\>"
syn region javaScriptFunctionFold start="\<function\>.*[^};]$" end="^\z1}.*$" transparent fold keepend
syn sync match javaScriptSync grouphere javaScriptFunctionFold "\<function\>"
syn sync match javaScriptSync grouphere NONE "^}"
setlocal foldmethod=syntax
setlocal foldtext=getline(v:foldstart)
else
syn keyword javaScriptFunction function
syn match javaScriptBraces "[{}\[\]]"
syn match javaScriptParens "[()]"
endif
syn sync fromstart
syn sync maxlines=100
У меня есть 3 вопроса:
- Можно ли исправить свертывание кода через
~/.gvimrc
? - Как мне исправить свертывание кода?
- Как заставить свернутый код принять эту форму
y = (function () { ... }());
?