Автоматически сворачиваясь #defines в энергии

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

Это для ответа «Успех»

{  
   "ReturnCode":"1",
   "ReturnMsg":"Successfull Transaction",
   "ReturnValue":"",
   "Data":{  
      "EmployeeName":"Admin",
      "EmployeeID":1
   }
}

Это для ответа «Ошибка»

{
    "ReturnCode": "4",
    "ReturnMsg": "Invalid Username and Password",
    "ReturnValue": "",
    "Data": {}
}
5
задан Jon Tanner 23 September 2008 в 14:06
поделиться

5 ответов

Просто добавьте складной регион к своему синтаксису http://vim.wikia.com/wiki/Syntax_folding_of_Vim_scripts#Syntax_definitions

:syn region myFold start="\#IF" end="\#ENDIF" transparent fold
:syn sync fromstart
:set foldmethod=syntax
8
ответ дан 13 December 2019 в 22:19
поделиться

Для добавления к ответу @hometoasts можно добавить, что команда как комментарий в первых десяти или длится десять строк файла, и энергия будет автоматически использовать его для того файла.

    /* vim: syn region regionName start="regex" end="regex": */
2
ответ дан 13 December 2019 в 22:19
поделиться

Быстрое дополнение к дополнению Дентона: для использования нового синтаксического правила с любым C или кодом C++ добавьте его к файлу в $VIMRUNTIME/syntax/c.vim и cpp.vim. ($VIMRUNTIME то, где Ваш локальный код Vim живет: ~/.vim на Unix.) Кроме того, значения для start и end в синтаксисе определением являются регулярные выражения, таким образом, можно использовать ^#if и ^#endif для обеспечения они только соответствуют тем строкам в начале строки.

0
ответ дан 13 December 2019 в 22:19
поделиться

Я всегда использовал forldmethod=marker и определял мои собственные теги сгиба, помещенные в рамках комментариев.

это для определения символов, которые определяют открытые и близкие сгибы. в этом случае открытый" <(" и близко"),>", заменяют их тем, что Вы хотели бы.

set foldmethod=marker
set foldmarker=<(,)>

Это - моя пользовательская функция для решения что к дисплею свернутого текста:

set foldtext=GetCustomFoldText()
function GetCustomFoldText()
    let preline = substitute(getline(v:foldstart),'<(','<(+)','')
    let line = substitute(preline,"\t",'        ','g')
    let nextLnNum = v:foldstart + 1
    let nextline = getline(nextLnNum)
    let foldTtl = v:foldend - v:foldstart
    return line .  ' | ' . nextline . ' (' . foldTtl .  ' lines)>'
endfunction

Надежда, которая помогает.

0
ответ дан 13 December 2019 в 22:19
поделиться

У меня огромная база кода и поэтому большое количество #defines. В каждом файле есть множество #ifdef'ов. и в большинстве случаев они вложены друг в друга. Я перепробовал множество скриптов vim, но они всегда наталкивались на какую-нибудь ошибку в моем коде. В конце концов, я поместил все свои определения в заголовочный файл и включил его в файл, с которым я хотел работать, и сделал gcc на нем вот так

gcc -E -C -P source.cpp > output.cpp

Команда -E заставляет gcc запустить только препроцессор в файле, поэтому весь ненужный код в неопределенных #ifdef'ах удаляется. Опция -C сохраняет комментарии в файле. Опция -P запрещает генерацию маркеров строк в выводе препроцессора.

0
ответ дан 13 December 2019 в 22:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: