Раньше я использовал такой класс. statusCode устанавливается, когда возникает ошибка с сообщением об ошибке, установленным в сообщении . Данные хранятся либо на карте, либо в списке по мере необходимости.
/**
*
*/
package com.test.presentation.response;
import java.util.Collection;
import java.util.Map;
/**
* A simple POJO to send JSON response to ajax requests. This POJO enables us to
* send messages and error codes with the actual objects in the application.
*
*
*/
@SuppressWarnings("rawtypes")
public class GenericResponse {
/**
* An array that contains the actual objects
*/
private Collection rows;
/**
* An Map that contains the actual objects
*/
private Map mapData;
/**
* A String containing error code. Set to 1 if there is an error
*/
private int statusCode = 0;
/**
* A String containing error message.
*/
private String message;
/**
* An array that contains the actual objects
*
* @return the rows
*/
public Collection getRows() {
return rows;
}
/**
* An array that contains the actual objects
*
* @param rows
* the rows to set
*/
public void setRows(Collection rows) {
this.rows = rows;
}
/**
* An Map that contains the actual objects
*
* @return the mapData
*/
public Map getMapData() {
return mapData;
}
/**
* An Map that contains the actual objects
*
* @param mapData
* the mapData to set
*/
public void setMapData(Map mapData) {
this.mapData = mapData;
}
/**
* A String containing error code.
*
* @return the errorCode
*/
public int getStatusCode() {
return statusCode;
}
/**
* A String containing error code.
*
* @param errorCode
* the errorCode to set
*/
public void setStatusCode(int errorCode) {
this.statusCode = errorCode;
}
/**
* A String containing error message.
*
* @return the errorMessage
*/
public String getMessage() {
return message;
}
/**
* A String containing error message.
*
* @param errorMessage
* the errorMessage to set
*/
public void setMessage(String errorMessage) {
this.message = errorMessage;
}
}
Надеюсь, это поможет.
Существует плагин vim-markdown на https://github.com/plasticboy/vim-markdown .
Код, связанный со свертыванием оттуда, выглядит так:
" fold region for headings
syn region mkdHeaderFold
\ start="^\s*\z(#\+\)"
\ skip="^\s*\z1#\+"
\ end="^\(\s*#\)\@="
\ fold contains=TOP
" fold region for lists
syn region mkdListFold
\ start="^\z(\s*\)\*\z(\s*\)"
\ skip="^\z1 \z2\s*[^#]"
\ end="^\(.\)\@="
\ fold contains=TOP
syn sync fromstart
setlocal foldmethod=syntax
По материалам Jeromy & amp; По совету Омара, я придумал это (для моего vimrc), чтобы автоматически и однозначно свернуть мои файлы DokuWiki (в которых заголовок верхнего уровня отмечен ====== в начале строки, вплоть до заголовка четвертого уровня, отмеченного == =):
function! DWTitleLevel()
let j = len(matchstr(getline(v:lnum), '^=\+'))
if j =~ 6 | return ">1"
elseif j =~ 5 | return ">2"
elseif j =~ 4 | return ">3"
elseif j =~ 3 | return ">4"
endif
endfunction
'^ = +' означает совпадение с начала строки любого числа смежных '='
. Тогда это в модеме vim делает его хорошо работающим для файл DokuWiki:
foldmethod=expr foldexpr=DWTitleLevel() foldcolumn=5
И для Markdown мне нужно было написать код Омара так:
if empty(j) | return "=" | else | return ">".len(j) | endif
Для этого на GitHub есть приложение strike>.
Когда вы редактируете файлы Markdown с помощью Vim, вы, вероятно, также захотите установить плагин Tim Pope's Markdown.
VOoM: двухпанельный контур Vim стоит проверить.
Он не только обеспечивает базовое свертывание, но также обеспечивает навигацию по контурам через 2-ю панель просмотра контуров (аналогично карте документа в MS Word). И он поддерживает большое количество языков разметки, включая другие, упомянутые в других ответах - Markdown, viki, reStructuredText, vimwiki, org и многие другие.
Для получения дополнительной информации см. Скриншоты и справочную страницу .