Eu tenho tentado configurar a dobra de código no Vim para JavaScript, mas o padrão não está funcionando corretamente. Tenho pouca experiência com o Vim e tenho dificuldade em entender os arquivos de ajuda (como comprovado por minhas tentativas frustradas de fazer isso sozinho).
O código JavaScript que cria problemas mais ou menos se parece com isso:
var x = {};
x.prototype = (function () {
// Variable declarations...
var y;
// Other content...
y = (function () {
// Stuff...
}());
// Other content continues... eg:
return {
// Other stuff...
};
}());
Quando eu dobrei y = (function () {}());
, é assim:
var x = {};
x.prototype = (function () {
// Variable declarations...
var y;
// Other content...
y = (function () {----------------------------------...
Observe como o restante da função desaparece! Na verdade, deve estar assim:
var x = {};
x.prototype = (function () {
// Variable declarations...
var y;
// Other content
y = (function () {----------------------------------...
// Other content continues... eg:
return {
// Other stuff...
};
}());
Como eu disse acima, tentei brincar com o arquivo de sintaxe, mas ele apenas quebrou a dobra.
Por conveniência, aqui está a seção de dobra de código do arquivo de sintaxe 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
Eu tenho 3 perguntas:
- É possível corrigir o código dobrando
~/.gvimrc
?
- Como corrijo o código?
- Como faço o código dobrado assumir este formato
y = (function () { ... }());
?